{
    "openapi": "3.0.0",
    "info": {
        "title": "Sift API",
        "version": "1.0"
    },
    "tags": [
        {
            "name": "TagService",
            "description": "Service to programmatically interact with [tags](/glossary#tag)."
        },
        {
            "name": "ProtobufDescriptorService",
            "description": "Service to programmatically interact with protobuf descriptors used for protobuf ingestion.",
            "externalDocs": {
                "description": "Read more about what protobuf ingestion.",
                "url": "/ingestion/protobuf_ingestion"
            }
        },
        {
            "name": "PanelConfigurationService",
            "description": "Service to programmatically interact with panel configurations."
        },
        {
            "name": "PrincipalAttributeService",
            "description": "Service to manage ABAC principal attributes."
        },
        {
            "name": "DlqErrorsService"
        },
        {
            "name": "UserGroupService"
        },
        {
            "name": "ArtifactService"
        },
        {
            "name": "MetadataService"
        },
        {
            "name": "ExternalSyncService"
        },
        {
            "name": "PolicyService",
            "description": "Service to manage ABAC policies."
        },
        {
            "name": "UserService",
            "description": "Service to programmatically interact with user objects."
        },
        {
            "name": "DataImportService"
        },
        {
            "name": "FamilyService",
            "description": "Service to programmatically interact with family configurations."
        },
        {
            "name": "AnnotationService",
            "description": "Service to programmatically interact with annotations.",
            "externalDocs": {
                "description": "Read more about annotations.",
                "url": "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265486685"
            }
        },
        {
            "name": "ReportService"
        },
        {
            "name": "ResourceAttributeService",
            "description": "Service to manage ABAC resource attributes (entity attributes)."
        },
        {
            "name": "PingService"
        },
        {
            "name": "TestReportService",
            "description": "Service to manage test reports"
        },
        {
            "name": "ApiKeyService"
        },
        {
            "name": "AssetService",
            "description": "Service to programmatically interact with [assets](/glossary#asset).",
            "externalDocs": {
                "description": "Read more about what assets are.",
                "url": "/data-model"
            }
        },
        {
            "name": "CommentService",
            "description": "Service to programmatically interact with comments attached to resources in the platform."
        },
        {
            "name": "ChannelService",
            "description": "Service to programmatically interact with [channels](/glossary#channel).",
            "externalDocs": {
                "description": "Read more about what channels are.",
                "url": "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265453943"
            }
        },
        {
            "name": "JobService"
        },
        {
            "name": "DataService",
            "description": "Service to query data"
        },
        {
            "name": "ChannelSchemaService",
            "description": "Service to programmatically interact with channel schemas"
        },
        {
            "name": "SavedSearchService"
        },
        {
            "name": "RuleService",
            "description": "Service to programmatically interact with rules.",
            "externalDocs": {
                "description": "Read more about what rules are.",
                "url": "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265421102"
            }
        },
        {
            "name": "CalculatedChannelsService",
            "description": "Service to programmatically interact with calculated channels.",
            "externalDocs": {
                "description": "Read more about calculated channels.",
                "url": "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265421153"
            }
        },
        {
            "name": "CalculatedChannelService"
        },
        {
            "name": "AnnotationLogService",
            "description": "Service to programmatically interact with [annotation logs](/glossary#annotation).",
            "externalDocs": {
                "description": "Read more about annotations.",
                "url": "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265486685"
            }
        },
        {
            "name": "AutomationService"
        },
        {
            "name": "RunService",
            "description": "Service to programmatically interact with [runs](/glossary#run).",
            "externalDocs": {
                "description": "Read more about what runs are.",
                "url": "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265454053"
            }
        },
        {
            "name": "RuleEvaluationService",
            "description": "Service to evaluate rules.",
            "externalDocs": {
                "description": "Read more about what rules are.",
                "url": "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265421102"
            }
        },
        {
            "name": "IngestionConfigService",
            "description": "Service to programmatically interact with [ingestion configs](/glossary#ingestion-config).",
            "externalDocs": {
                "description": "Read more about what ingestion configs are.",
                "url": "/ingestion/creating-amend-ingestion-config"
            }
        },
        {
            "name": "UnitService"
        },
        {
            "name": "UserDefinedFunctionService"
        },
        {
            "name": "RoleService"
        },
        {
            "name": "ReportTemplateService"
        },
        {
            "name": "DocsService"
        },
        {
            "name": "RemoteFileService"
        },
        {
            "name": "MeService"
        },
        {
            "name": "WebhookService"
        },
        {
            "name": "CampaignService"
        },
        {
            "name": "ExportService"
        },
        {
            "name": "NotificationService",
            "description": "Service to programmatically interact with in-app notifications."
        },
        {
            "name": "IngestService"
        },
        {
            "name": "ViewService",
            "description": "Service to programmatically interact with views.",
            "externalDocs": {
                "description": "Read more about what views are.",
                "url": "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/298188809"
            }
        }
    ],
    "paths": {
        "/api/v1/annotation-logs": {
            "get": {
                "summary": "GET /api/v1/annotation-logs",
                "description": "Retrieves annotation logs using an optional filter.",
                "operationId": "AnnotationLogService_ListAnnotationLogs2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListAnnotationLogsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "annotationId",
                        "description": "The ID of the parent annotation associated with the annotation logs.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "pageSize",
                        "description": "The maximum number of annotation logs to return.\nThe service may return fewer than this value.\nIf unspecified, at most 50 annotation logs will be returned.\nThe maximum value is 1000; values above 1000 will be coerced to 1000.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListAnnotationLogs` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListAnnotationLogs` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `annotation_log_id`, `annotation_id`, `created_by_user_id`,\n`annotation_id`, `created_date`, `modified_date`, and `kind`.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "AnnotationLogService"
                ]
            }
        },
        "/api/v1/annotations": {
            "get": {
                "summary": "ListAnnotation",
                "description": "Retrieves annotations using an optional filter.",
                "operationId": "AnnotationService_ListAnnotations",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListAnnotationsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of annotations to return. The service may return fewer than this value.\nIf unspecified, at most 50 annotations will be returned. The maximum value is 1000; values above\n1000 will be coerced to 1000. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListAnnotations` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListAnnotations` must match\nthe call that provided the page token. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `annotation_id`, `start_time`, `end_time`,\n`created_date`, `modified_date`, `run_id`, `name`, `description`, `state`, `created_by_user_id`, `created_by_rule_condition_version_id`, `rule_id`,\n`annotation_type`, `tag_name`, `report_id`, `asset_id`, `asset_name`, `pending`, `assignee`, `campaign_reports`, `metadata`, `archived_date`, and `is_archived`.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "organizationId",
                        "description": "This field is only required if your user belongs to multiple organizations.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved annotations. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `created_date`, `modified_date`, `start_time`, `end_time`, `name`, and `description`.\nIf left empty, items are ordered by `created_date` in descending order (newest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc,modified_date\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "AnnotationService"
                ]
            },
            "post": {
                "summary": "CreateAnnotation",
                "description": "Creates an annotation.",
                "operationId": "AnnotationService_CreateAnnotation",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CreateAnnotationResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1CreateAnnotationRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `AnnotationService_CreateAnnotation` to create a new annotation.\nAt least one of `run_id`, `assets`, or `linked_channels` must be specified.\nTags are label metadata and do not satisfy this association requirement.",
                    "required": true
                },
                "tags": [
                    "AnnotationService"
                ]
            },
            "patch": {
                "summary": "UpdateAnnotation",
                "description": "Updates an existing annotation using using the list of fields specified in `update_mask`.",
                "operationId": "AnnotationService_UpdateAnnotation",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UpdateAnnotationResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1UpdateAnnotationRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `AnnotationService_UpdateAnnotation` to update an annotation.",
                    "required": true
                },
                "tags": [
                    "AnnotationService"
                ]
            }
        },
        "/api/v1/annotations/{annotationId}": {
            "get": {
                "summary": "GetAnnotation",
                "description": "Retrieves an annotation",
                "operationId": "AnnotationService_GetAnnotation",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetAnnotationResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "annotationId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "AnnotationService"
                ]
            },
            "delete": {
                "summary": "DeleteAnnotation",
                "description": "Archives an annotation.",
                "operationId": "AnnotationService_DeleteAnnotation",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1DeleteAnnotationResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "annotationId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "AnnotationService"
                ]
            }
        },
        "/api/v1/annotations/{annotationId}/logs": {
            "get": {
                "summary": "by annotationId",
                "description": "Retrieves annotation logs using an optional filter.",
                "operationId": "AnnotationLogService_ListAnnotationLogs",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListAnnotationLogsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "annotationId",
                        "description": "The ID of the parent annotation associated with the annotation logs.",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "pageSize",
                        "description": "The maximum number of annotation logs to return.\nThe service may return fewer than this value.\nIf unspecified, at most 50 annotation logs will be returned.\nThe maximum value is 1000; values above 1000 will be coerced to 1000.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListAnnotationLogs` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListAnnotationLogs` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `annotation_log_id`, `annotation_id`, `created_by_user_id`,\n`annotation_id`, `created_date`, `modified_date`, and `kind`.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "AnnotationLogService"
                ]
            },
            "post": {
                "summary": "CreateAnnotationLog",
                "description": "Creates an annotation log on an annotation.",
                "operationId": "AnnotationLogService_CreateAnnotationLog",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CreateAnnotationLogResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "annotationId",
                        "description": "The ID of the parent annotation associated to associate with the new annotation log.",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "kind": {
                                        "$ref": "#/components/schemas/v1AnnotationLogKind"
                                    },
                                    "assigned": {
                                        "$ref": "#/components/schemas/v1AnnotationLogAssignedProperties"
                                    },
                                    "stateUpdate": {
                                        "$ref": "#/components/schemas/v1AnnotationLogStateUpdateProperties"
                                    },
                                    "comment": {
                                        "$ref": "#/components/schemas/v1AnnotationLogCommentProperties"
                                    }
                                },
                                "description": "The request for a call to `AnnotationLogService_CreateAnnotationLog` to create an annotation log.",
                                "required": [
                                    "kind"
                                ]
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "AnnotationLogService"
                ]
            }
        },
        "/api/v1/annotations/{annotationId}/logs/{annotationLogId}": {
            "delete": {
                "summary": "DeleteAnnotationLog",
                "description": "Deletes an annotation log.",
                "operationId": "AnnotationLogService_DeleteAnnotationLog",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1DeleteAnnotationLogResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "annotationId",
                        "description": "The ID of the parent annotation associated with the annotation log to be deleted.",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "annotationLogId",
                        "description": "ID of the annotation log to be deleted.",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "AnnotationLogService"
                ]
            }
        },
        "/api/v1/annotations/{annotationId}:archive": {
            "post": {
                "summary": "ArchiveAnnotation",
                "description": "Archives an annotation.",
                "operationId": "AnnotationService_ArchiveAnnotation",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ArchiveAnnotationResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "annotationId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "description": "The request for a call to `AnnotationService_ArchiveAnnotation`."
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "AnnotationService"
                ]
            }
        },
        "/api/v1/annotations/{annotationId}:unarchive": {
            "post": {
                "summary": "UnarchiveAnnotation",
                "description": "Unarchives an annotation.",
                "operationId": "AnnotationService_UnarchiveAnnotation",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UnarchiveAnnotationResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "annotationId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "description": "The request for a call to `AnnotationService_UnarchiveAnnotation`."
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "AnnotationService"
                ]
            }
        },
        "/api/v1/annotations:batchArchive": {
            "post": {
                "summary": "BatchArchiveAnnotations",
                "description": "Batch archives annotations.",
                "operationId": "AnnotationService_BatchArchiveAnnotations",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1BatchArchiveAnnotationsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1BatchArchiveAnnotationsRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `AnnotationService_BatchArchiveAnnotations`.",
                    "required": true
                },
                "tags": [
                    "AnnotationService"
                ]
            }
        },
        "/api/v1/annotations:batchDelete": {
            "post": {
                "summary": "BatchDeleteAnnotation",
                "description": "Batch archives annotations.",
                "operationId": "AnnotationService_BatchDeleteAnnotations",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1BatchDeleteAnnotationsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1BatchDeleteAnnotationsRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "AnnotationService"
                ]
            }
        },
        "/api/v1/annotations:batchUnarchive": {
            "post": {
                "summary": "BatchUnarchiveAnnotations",
                "description": "Batch unarchives annotations.",
                "operationId": "AnnotationService_BatchUnarchiveAnnotations",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1BatchUnarchiveAnnotationsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1BatchUnarchiveAnnotationsRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `AnnotationService_BatchUnarchiveAnnotations`.",
                    "required": true
                },
                "tags": [
                    "AnnotationService"
                ]
            }
        },
        "/api/v1/artifacts": {
            "get": {
                "summary": "ListArtifacts",
                "description": "List artifacts in the caller's organization, optionally filtered to one conversation.",
                "operationId": "ArtifactService_ListArtifactsV1",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListArtifactsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "conversationId",
                        "description": "Unset lists every artifact in the caller's organization.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "pageSize",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec)\nfilter string. Available fields are artifact_id, organization_id,\ncreated_by_user_id, storage_class, created_via,\ntitle, file_name, file_type, version, created_date, version_created_date (last updated),\narchived_date, the include_archived\ndirective, and metadata through `metadata[\"<key>\"]`. File type is the\nlowercase extension or MIME subtype; images use \"image\", structured\nartifacts use \"json\", and artifacts without a file use \"file\".\nLinks can be filtered\nwith a comprehension such as `links.exists(l, l.relation == \"ATTACHED_TO\"\n&& l.entity_type == \"CONVERSATION\" && l.entity_id == \"<id>\")`. Link\nsub-fields are relation, entity_type, entity_id, and artifact_version_id.\nEnum fields compare against proto value names without the prefix, for\nexample `storage_class == \"STRUCTURED\"`, `relation == \"ATTACHED_TO\"`, and\n`entity_type == \"CONVERSATION\"`. The conversation_id field on this message\ncombines with filter.\n\nArchived artifacts are excluded unless the query says otherwise, either\nthrough `include_archived == true` or by filtering on archived_date, which\ngoverns archival on its own.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "A comma-separated [AIP-132](https://google.aip.dev/132#ordering) ordering\nstring over created_date, version_created_date (last updated), archived_date,\ntitle, version, and file_type. Fields\nsort ascending by default and support a `desc` suffix. The default is\ncreated_date ascending.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ArtifactService"
                ]
            },
            "post": {
                "summary": "CreateArtifact",
                "description": "Create a new artifact.",
                "operationId": "ArtifactService_CreateArtifactV1",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CreateArtifactResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1CreateArtifactRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "ArtifactService"
                ]
            }
        },
        "/api/v1/artifacts/{artifactId}": {
            "get": {
                "summary": "GetArtifact",
                "description": "Get one artifact, resolved to the latest version unless artifact_version_id pins one.",
                "operationId": "ArtifactService_GetArtifactV1",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetArtifactResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "artifactId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "artifactVersionId",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ArtifactService"
                ]
            },
            "patch": {
                "summary": "UpdateArtifact",
                "description": "Add a version to an artifact, changing only the fields named in update_mask.",
                "operationId": "ArtifactService_UpdateArtifactV1",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UpdateArtifactResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "artifactId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "artifact": {
                                        "$ref": "#/components/schemas/v1ArtifactDetails"
                                    },
                                    "links": {
                                        "type": "array",
                                        "items": {
                                            "$ref": "#/components/schemas/v1ArtifactLinkInput"
                                        },
                                        "description": "Links written at the new version, when update_mask names `links`. The\nprevious version's ATTACHED_TO rows carry forward and these are added to\nthem."
                                    },
                                    "updateMask": {
                                        "type": "string",
                                        "description": "The fields to write. Available paths are `artifact_version.title`,\n`artifact_version.summary`, `artifact_version.payload`,\n`artifact_version.metadata`, `artifact_version.remote_file_id`, and\n`links`. A path the service does not know is rejected.\n\n`artifact_version.remote_file_id` is a declaration, not a value: it says\nthe caller is about to upload new bytes for the returned version, so the\nprevious version's remote_files rows are not carried forward. The current\nversion stays unchanged until the upload commits. The request value is\nignored. Leave the path out to keep the existing bytes."
                                    }
                                },
                                "required": [
                                    "updateMask"
                                ]
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "ArtifactService"
                ]
            }
        },
        "/api/v1/artifacts/{artifactId}/archive": {
            "post": {
                "summary": "ArchiveArtifact",
                "description": "Archive an artifact. Versions, bytes, and links are left in place.",
                "operationId": "ArtifactService_ArchiveArtifactV1",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ArchiveArtifactResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "artifactId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ArtifactService"
                ]
            }
        },
        "/api/v1/artifacts/{artifactId}/conversations/{conversationId}:link": {
            "post": {
                "summary": "LinkArtifactToConversation",
                "description": "Link an existing artifact to a conversation.",
                "operationId": "ArtifactService_LinkArtifactToConversationV1",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1LinkArtifactToConversationResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "artifactId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "conversationId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ArtifactService"
                ]
            }
        },
        "/api/v1/artifacts/{artifactId}/conversations/{conversationId}:unlink": {
            "post": {
                "summary": "UnlinkArtifactFromConversation",
                "description": "Remove a conversation's link to an artifact.",
                "operationId": "ArtifactService_UnlinkArtifactFromConversationV1",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UnlinkArtifactFromConversationResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "artifactId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "conversationId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ArtifactService"
                ]
            }
        },
        "/api/v1/artifacts/{artifactId}/unarchive": {
            "post": {
                "summary": "UnarchiveArtifact",
                "description": "Unarchive an artifact.",
                "operationId": "ArtifactService_UnarchiveArtifactV1",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UnarchiveArtifactResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "artifactId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ArtifactService"
                ]
            }
        },
        "/api/v1/artifacts/{artifactId}/versions": {
            "get": {
                "summary": "ListArtifactVersions",
                "description": "List the version history of one artifact, newest first.",
                "operationId": "ArtifactService_ListArtifactVersionsV1",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListArtifactVersionsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "artifactId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "pageSize",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ArtifactService"
                ]
            }
        },
        "/api/v1/artifacts/{artifactId}/versions/{artifactVersionId}:promote": {
            "post": {
                "summary": "PromoteArtifactVersion",
                "description": "Write a new latest version of an artifact with the content of an older version.",
                "operationId": "ArtifactService_PromoteArtifactVersionV1",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1PromoteArtifactVersionResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "artifactId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "artifactVersionId",
                        "description": "The version whose content becomes the new latest version.",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ArtifactService"
                ]
            }
        },
        "/api/v1/assets": {
            "get": {
                "summary": "ListAssets",
                "description": "Retrieves assets using an optional filter.",
                "operationId": "AssetService_ListAssets",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListAssetsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of assets to return.\nThe service may return fewer than this value.\nIf unspecified, at most 50 assets will be returned.\nThe maximum value is 1000; values above 1000 will be coerced to 1000.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListAssets` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListAssets` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `asset_id`, `created_by_user_id`, `modified_by_user_id`,\n`created_date`, `modified_date`, `name`, 'name_lower', `tag_id`, `tag_name`, 'archived_date', `is_archived`, and `metadata`. Metadata can be used in filters by using `metadata.{metadata_key_name}` as the field name.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved assets. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `name`, `created_date`, `modified_date` and `archived_date`.\nIf left empty, items are ordered by `created_date` in descending order (newest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc,modified_date\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "AssetService"
                ]
            },
            "post": {
                "summary": "CreateAsset",
                "description": "Creates a new, empty asset.",
                "operationId": "AssetService_CreateAsset",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CreateAssetResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1CreateAssetRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `AssetService_CreateAsset` to create a single new, empty asset.",
                    "required": true
                },
                "tags": [
                    "AssetService"
                ]
            },
            "patch": {
                "summary": "UpdateAsset",
                "description": "Update fields on an asset.",
                "operationId": "AssetService_UpdateAsset",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UpdateAssetResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1UpdateAssetRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `AssetService_UpdateAsset` to update a single existing asset.",
                    "required": true
                },
                "tags": [
                    "AssetService"
                ]
            }
        },
        "/api/v1/assets/{assetId}": {
            "get": {
                "summary": "GetAsset",
                "description": "Retrieves an asset.",
                "operationId": "AssetService_GetAsset",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetAssetResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "assetId",
                        "description": "The id of the asset to be retrieved. Required.",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "AssetService"
                ]
            },
            "delete": {
                "summary": "DeleteAsset",
                "description": "Deletes an asset.",
                "operationId": "AssetService_DeleteAsset",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1DeleteAssetResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "assetId",
                        "description": "The id of the asset to be archived. Required.",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "archiveRuns",
                        "description": "If true, will archive all runs associated with the asset.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "tags": [
                    "AssetService"
                ]
            }
        },
        "/api/v1/assets/{assetId}/archive": {
            "post": {
                "summary": "ArchiveAsset",
                "description": "Archives an asset.",
                "operationId": "AssetService_ArchiveAsset",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ArchiveAssetResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "assetId",
                        "description": "The id of the asset to be archived. Required.",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "archiveRuns",
                        "description": "If true, will archive all runs associated with the asset.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "tags": [
                    "AssetService"
                ]
            }
        },
        "/api/v1/automation-triggered-events": {
            "get": {
                "summary": "ListAutomationTriggeredEvents",
                "description": "Retrieve and optionally filter a list of automation triggered events.",
                "operationId": "AutomationService_ListAutomationTriggeredEvents",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListAutomationTriggeredEventsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "CEL filter. Available fields: `automation_triggered_event_id`,\n`automation_trigger_id`, `automation_trigger_name`, `run_id`, `run_name`, `state`.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "Order-by. Available fields: `created_date`, `dispatch_after`.\nDefault: `created_date desc`.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "AutomationService"
                ]
            }
        },
        "/api/v1/automation-triggers": {
            "get": {
                "summary": "ListAutomationTriggers",
                "description": "Retrieve and optionally filter a list of automation triggers.",
                "operationId": "AutomationService_ListAutomationTriggers",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListAutomationTriggersResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "CEL filter. Available fields: `automation_trigger_id`, `canvas_id`,\n`name`, `action_kind`, `trigger_kind`, `is_enabled`, `is_archived`,\n`archived_date`.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "Order-by. Available fields: `created_date`, `modified_date`, `name`,\n`next_fire_at`. Default: `created_date desc`.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "AutomationService"
                ]
            },
            "post": {
                "summary": "CreateAutomationTrigger",
                "description": "Create an automation trigger.",
                "operationId": "AutomationService_CreateAutomationTrigger",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CreateAutomationTriggerResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1CreateAutomationTriggerRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `AutomationService_CreateAutomationTrigger`.",
                    "required": true
                },
                "tags": [
                    "AutomationService"
                ]
            },
            "patch": {
                "summary": "UpdateAutomationTrigger",
                "description": "Update select fields of an existing automation trigger.",
                "operationId": "AutomationService_UpdateAutomationTrigger",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UpdateAutomationTriggerResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1UpdateAutomationTriggerRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `AutomationService_UpdateAutomationTrigger`.\nFields apply only when named in `update_mask`. Archive by setting\n`archived_date` in the mask; unarchive by clearing it.",
                    "required": true
                },
                "tags": [
                    "AutomationService"
                ]
            }
        },
        "/api/v1/automation-triggers/{automationTriggerId}": {
            "get": {
                "summary": "GetAutomationTrigger",
                "description": "Retrieve an automation trigger by ID.",
                "operationId": "AutomationService_GetAutomationTrigger",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetAutomationTriggerResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "automationTriggerId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "AutomationService"
                ]
            },
            "delete": {
                "summary": "DeleteAutomationTrigger",
                "description": "Soft-delete an automation trigger by setting its archived_date.",
                "operationId": "AutomationService_DeleteAutomationTrigger",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1DeleteAutomationTriggerResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "automationTriggerId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "AutomationService"
                ]
            }
        },
        "/api/v1/calculated-channels:expression-identifiers": {
            "get": {
                "summary": "ListExpressionIdentifiers",
                "description": "Retrieves a list of valid identifiers that can be used as part of a calculated channel expression.",
                "operationId": "CalculatedChannelsService_ListExpressionIdentifiers",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListExpressionIdentifiersResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "Defaults to 1000. Max of 10,000.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "mode",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "EXPRESSION_MODE_UNSPECIFIED",
                                "EXPRESSION_MODE_RULES",
                                "EXPRESSION_MODE_CALCULATED_CHANNELS",
                                "EXPRESSION_MODE_RULER",
                                "EXPRESSION_MODE_STRUCTURED_DATA"
                            ],
                            "default": "EXPRESSION_MODE_UNSPECIFIED"
                        }
                    }
                ],
                "tags": [
                    "CalculatedChannelsService"
                ]
            }
        },
        "/api/v1/calculated-channels:validate-expression": {
            "post": {
                "summary": "ValidateExpression",
                "description": "Used to validate whether or not an expression used for a calculated channel is valid.",
                "operationId": "CalculatedChannelsService_ValidateExpression",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ValidateExpressionResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1ValidateExpressionRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "CalculatedChannelsService"
                ]
            }
        },
        "/api/v1/campaigns": {
            "get": {
                "summary": "ListCampaigns",
                "description": "List campaigns.",
                "operationId": "CampaignService_ListCampaigns",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListCampaignsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of campaigns to return. The service may return fewer than this value.\nIf unspecified, at most 50 campaigns will be returned. The maximum value is 1000; values above\n1000 will be coerced to 1000. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListCampaigns` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListCampaigns` must match\nthe call that provided the page token. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are:\n`created_by_user_id`, `tag_id`, `tag_name`, `report_id`, `report_name`, `campaign_id`, `client_key`, `description`, `run_id`, `name`, `is_archived`, and `metadata`.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).\nFor more information about the fields used for filtering, please refer to this definition. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "organizationId",
                        "description": "This field is only required if your user belongs to multiple organizations.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "includeArchived",
                        "description": "If `true` then archived campaigns will be included in the query. Defaults to `false`.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved campaigns. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `name`, `created_date` and `modified_date`.\nIf left empty, items are ordered by `created_date` in descending order (newest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc,modified_date\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "skipReportSummaries",
                        "description": "If `true`, the response will omit the summary fields on each campaign's reports\nand set reports_include_summaries to false on the Campaign message.\nReports will still be included with report_id and report_name populated.\nThis significantly improves response times for campaigns with many reports. Defaults to `false`.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "tags": [
                    "CampaignService"
                ]
            },
            "post": {
                "summary": "CreateCampaign",
                "description": "Create a campaign.",
                "operationId": "CampaignService_CreateCampaign",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CreateCampaignResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1CreateCampaignRequest"
                            }
                        }
                    },
                    "description": "The request of a call to `CampaignService_CreateCampaign` to create a campaign.",
                    "required": true
                },
                "tags": [
                    "CampaignService"
                ]
            },
            "patch": {
                "summary": "UpdateCampaign",
                "description": "Updates an existing campaign using the list of fields specified in `update_mask`.",
                "operationId": "CampaignService_UpdateCampaign",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UpdateCampaignResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1UpdateCampaignRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `CampaignService_UpdateCampaign` to update a campaign. When updating\ntags or rules, the update will perform a full replace. Additionally, when updating rules, only the rule ID or the rule client key\nis required, but it is okay to provide both. If some rules contain only client keys and others only rule IDs, they will be consolidated.",
                    "required": true
                },
                "tags": [
                    "CampaignService"
                ]
            }
        },
        "/api/v1/campaigns/{campaignId}": {
            "get": {
                "summary": "by campaignId",
                "description": "Retrieve a campaign.",
                "operationId": "CampaignService_GetCampaign",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetCampaignResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "campaignId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "clientKey",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "organizationId",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "skipReportSummaries",
                        "description": "If `true`, the response will omit the summary fields on the campaign's reports\nand set reports_include_summaries to false on the Campaign message.\nReports will still be included with report_id and report_name populated.\nThis significantly improves response times for campaigns with many reports. Defaults to `false`.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "tags": [
                    "CampaignService"
                ]
            }
        },
        "/api/v1/campaigns/{campaignId}/annotations": {
            "get": {
                "summary": "ListCampaignAnnotations",
                "description": "List annotations for a campaign.",
                "operationId": "CampaignService_ListCampaignAnnotations",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListCampaignAnnotationsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "campaignId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "pageSize",
                        "description": "The maximum number of annotations to return. The service may return fewer than this value.\nIf unspecified, at most 50 annotations will be returned. The maximum value is 1000; values above\n1000 will be coerced to 1000. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListAnnotations` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListAnnotations` must match\nthe call that provided the page token. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `annotation_id`, `start_time`, `end_time`,\n`created_date`, `modified_date`, `run_id`, `name`, `description`, `state`, `created_by_user_id`, `created_by_rule_condition_version_id`,\n`annotation_type`, `tag_name`, `report_id`, `asset_id`, `asset_name`, `pending`, `assignee`, and `metadata`.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved annotations. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `created_date`, `modified_date`, `start_time`, and `end_time`.\nIf left empty, items are ordered by `created_date` in ascending order (oldest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc,modified_date\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "CampaignService"
                ]
            }
        },
        "/api/v1/campaigns:report-summaries": {
            "post": {
                "summary": "GetCampaignReportSummaries",
                "description": "Returns per-campaign report summaries in bulk.",
                "operationId": "CampaignService_GetCampaignReportSummaries",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetCampaignReportSummariesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1GetCampaignReportSummariesRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "CampaignService"
                ]
            }
        },
        "/api/v1/channel-schemas": {
            "post": {
                "summary": "CreateChannelSchema v1",
                "description": "Create a channel schema",
                "operationId": "ChannelSchemaService_CreateChannelSchema",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/channel_schemasv1CreateChannelSchemaResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/channel_schemasv1CreateChannelSchemaRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `ChannelSchemaService_CreateChannelSchema`.",
                    "required": true
                },
                "tags": [
                    "ChannelSchemaService"
                ]
            }
        },
        "/api/v1/channel-schemas:batch-create": {
            "post": {
                "summary": "BatchCreateChannelSchemas v1",
                "description": "Create a batch of channel schemas",
                "operationId": "ChannelSchemaService_BatchCreateChannelSchemas",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/channel_schemasv1BatchCreateChannelSchemasResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/channel_schemasv1BatchCreateChannelSchemasRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `ChannelSchemaService_BatchCreateChannelSchemas`.",
                    "required": true
                },
                "tags": [
                    "ChannelSchemaService"
                ]
            }
        },
        "/api/v1/comments": {
            "get": {
                "summary": "ListComments",
                "description": "Retrieves comments using an optional filter.",
                "operationId": "CommentService_ListComments",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListCommentsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of comments to return. Defaults to 50, max 1000.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListComments` call.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `comment_id`, `resource_id`, `entity_type`,\n`created_by_user_id`, `created_date`, and `modified_date`.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved comments. Formatted as a comma-separated string\ni.e. \"FIELD_NAME[ desc],...\". Available fields to order_by are `created_date`\nand `modified_date`. Defaults to `created_date` ascending (oldest-first).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "CommentService"
                ]
            },
            "post": {
                "summary": "CreateComment",
                "description": "Creates a comment on a resource.",
                "operationId": "CommentService_CreateComment",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CreateCommentResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1CreateCommentRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `CommentService_CreateComment`.",
                    "required": true
                },
                "tags": [
                    "CommentService"
                ]
            }
        },
        "/api/v1/comments/{comment.commentId}": {
            "patch": {
                "summary": "UpdateComment",
                "description": "Updates the body of an existing comment.",
                "operationId": "CommentService_UpdateComment",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UpdateCommentResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "comment.commentId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "comment": {
                                        "type": "object",
                                        "properties": {
                                            "resourceId": {
                                                "type": "string",
                                                "description": "The ID of the resource the comment is attached to (e.g. a canvas_cell_execution_id)."
                                            },
                                            "entityType": {
                                                "$ref": "#/components/schemas/v1CommentEntityType"
                                            },
                                            "createdDate": {
                                                "type": "string",
                                                "format": "date-time"
                                            },
                                            "modifiedDate": {
                                                "type": "string",
                                                "format": "date-time"
                                            },
                                            "createdByUserId": {
                                                "type": "string"
                                            },
                                            "createdByUserName": {
                                                "type": "string"
                                            },
                                            "body": {
                                                "type": "array",
                                                "items": {
                                                    "$ref": "#/components/schemas/v1CommentBodyElement"
                                                },
                                                "description": "The rich-text body of the comment."
                                            }
                                        },
                                        "description": "A single comment attached to a resource."
                                    },
                                    "updateMask": {
                                        "type": "string",
                                        "description": "Comma-separated list of fields to update. Only `body` is supported."
                                    }
                                },
                                "description": "The request for a call to `CommentService_UpdateComment`.",
                                "required": [
                                    "resourceId",
                                    "entityType",
                                    "createdDate",
                                    "modifiedDate",
                                    "createdByUserId",
                                    "createdByUserName",
                                    "body",
                                    "updateMask"
                                ]
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "CommentService"
                ]
            }
        },
        "/api/v1/comments/{commentId}": {
            "delete": {
                "summary": "DeleteComment",
                "description": "Deletes a comment.",
                "operationId": "CommentService_DeleteComment",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1DeleteCommentResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "commentId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "CommentService"
                ]
            }
        },
        "/api/v1/data": {
            "post": {
                "summary": "GetData v1",
                "description": "Query data",
                "operationId": "DataService_GetData",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/datav1GetDataResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/datav1GetDataRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "DataService"
                ]
            }
        },
        "/api/v1/docs:read": {
            "get": {
                "summary": "ReadDoc",
                "description": "Read the full markdown of a Sift documentation page by path.",
                "operationId": "DocsService_ReadDocV1",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ReadDocResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "path",
                        "description": "Doc path returned by SearchDocs, e.g.\n\"documentation/ingest/asset-channels.mdx\". Required.",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "offset",
                        "description": "1-indexed start line. Defaults to 1. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int32"
                        }
                    },
                    {
                        "name": "limit",
                        "description": "Number of lines to return. Defaults to all remaining lines. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int32"
                        }
                    }
                ],
                "tags": [
                    "DocsService"
                ]
            }
        },
        "/api/v1/docs:search": {
            "get": {
                "summary": "SearchDocs",
                "description": "Keyword search across Sift's product documentation.",
                "operationId": "DocsService_SearchDocsV1",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1SearchDocsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "query",
                        "description": "Keyword query, e.g. \"asset channels CEL\". Required.",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "maxResults",
                        "description": "Maximum hits to return. Defaults to 10; values above the hard cap of 25 are\ncoerced to 25. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int32"
                        }
                    }
                ],
                "tags": [
                    "DocsService"
                ]
            }
        },
        "/api/v1/entities/batch-resource-attributes": {
            "post": {
                "summary": "Batch lists all resource-attributes for multiple entities. Excludes archived by default.",
                "operationId": "ResourceAttributeService_BatchListResourceAttributesByEntity",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1BatchListResourceAttributesByEntityResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1BatchListResourceAttributesByEntityRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "ResourceAttributeService"
                ]
            }
        },
        "/api/v1/entities/{entity.entityId}/resource-attributes": {
            "get": {
                "summary": "Lists all resource-attributes for a specific entity. Excludes archived by default.",
                "operationId": "ResourceAttributeService_ListResourceAttributesByEntity",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListResourceAttributesByEntityResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "entity.entityId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "entity.entityType",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "RESOURCE_ATTRIBUTE_ENTITY_TYPE_UNSPECIFIED",
                                "RESOURCE_ATTRIBUTE_ENTITY_TYPE_ASSET",
                                "RESOURCE_ATTRIBUTE_ENTITY_TYPE_CHANNEL",
                                "RESOURCE_ATTRIBUTE_ENTITY_TYPE_RUN"
                            ],
                            "default": "RESOURCE_ATTRIBUTE_ENTITY_TYPE_UNSPECIFIED"
                        }
                    },
                    {
                        "name": "includeArchived",
                        "description": "Whether to include archived resource-attributes. Defaults to false.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "pageSize",
                        "description": "The maximum number of resource-attributes to return. The service may return fewer than this value.\nIf unspecified, at most 50 resource-attributes will be returned. The maximum value is 100; values above\n100 will be coerced to 100.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListResourceAttributesByEntity` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListResourceAttributesByEntity` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ResourceAttributeService"
                ]
            }
        },
        "/api/v1/export": {
            "post": {
                "summary": "ExportData",
                "description": "Export data.",
                "operationId": "ExportService_ExportData",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ExportDataResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1ExportDataRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "ExportService"
                ]
            }
        },
        "/api/v1/export/{jobId}/download-url": {
            "get": {
                "summary": "GetDownloadUrl",
                "description": "Retrieve the download URL for a completed job.",
                "operationId": "ExportService_GetDownloadUrl",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetDownloadUrlResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "jobId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ExportService"
                ]
            }
        },
        "/api/v1/external-sync": {
            "get": {
                "summary": "GetTokenDetails",
                "description": "Get details about the most recent token generated, does not include the token itself",
                "operationId": "ExternalSyncService_GetExternalSync",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetExternalSyncResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "tags": [
                    "ExternalSyncService"
                ]
            },
            "post": {
                "summary": "SyncOrganization",
                "description": "Synchronizes an organization's users and groups",
                "operationId": "ExternalSyncService_SyncOrganization",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1SyncOrganizationResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1SyncOrganizationRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "ExternalSyncService"
                ]
            }
        },
        "/api/v1/external-sync/runs/{externalSyncRunId}": {
            "get": {
                "summary": "GetExternalSyncRun",
                "description": "Get one external sync run including the full diff payload",
                "operationId": "ExternalSyncService_GetExternalSyncRun",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetExternalSyncRunResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "externalSyncRunId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ExternalSyncService"
                ]
            }
        },
        "/api/v1/external-sync:generate-token": {
            "post": {
                "summary": "GenerateToken",
                "description": "Generates a token for synchronizing an organization's users and groups",
                "operationId": "ExternalSyncService_GenerateToken",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GenerateTokenResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1GenerateTokenRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "ExternalSyncService"
                ]
            }
        },
        "/api/v1/external-sync:is-org-externally-provisioned": {
            "get": {
                "summary": "GetIsOrgExternallyProvisioned",
                "description": "Returns whether the organization is configured for external (SCIM) user provisioning",
                "operationId": "ExternalSyncService_GetIsOrgExternallyProvisioned",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetIsOrgExternallyProvisionedResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "tags": [
                    "ExternalSyncService"
                ]
            }
        },
        "/api/v1/external-sync:list-runs": {
            "get": {
                "summary": "ListExternalSyncRuns",
                "description": "List historical external sync runs for the organization (newest first by default)",
                "operationId": "ExternalSyncService_ListExternalSyncRuns",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListExternalSyncRunsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ExternalSyncService"
                ]
            }
        },
        "/api/v1/external-sync:list-tokens": {
            "get": {
                "summary": "ListExternalSyncTokens",
                "description": "List all tokens created by org",
                "operationId": "ExternalSyncService_ListExternalSyncTokens",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListExternalSyncTokensResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of tokens to return. The service may return fewer than this value.\nIf unspecified, at most 50 tokens will be returned. The maximum value is 1000; values above\n1000 will be coerced to 1000. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListExternalSyncTokens` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListExternalSyncTokens` must match\nthe call that provided the page token. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nThere are currently no available fields.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved user defined functions. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable field to order_by is `created_date`.\nIf left empty, items are ordered by `created_date` in descending order (newest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date asc\".",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ExternalSyncService"
                ]
            }
        },
        "/api/v1/families": {
            "get": {
                "summary": "ListFamilies",
                "description": "Retrieves families using an optional filter.",
                "operationId": "FamilyService_ListFamilies",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListFamiliesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of families to return. The service may return fewer than this value, even if\nthere are additional pages. If unspecified, the limit defaults to 50. The maximum value is 100.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListFamilies` call. Provide this to retrieve the\nsubsequent page. When paginating, all other parameters provided to `ListFamilies` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are: `family_id`, `client_key`, `organization_id`, `archived_date`, `is_archived`, `created_by_user_id`, `created_date`, `modified_by_user_id`, `modified_date`, `name`, `description`, `run_query`, `run_id_includes`, `run_id_excludes`, `alignment_name`, `alignment_description`, `metadata`.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved families. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are: `created_date`, `modified_date`, `archived_date`.\nIf left empty, items are ordered by `created_date` in descending order.\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "FamilyService"
                ]
            },
            "post": {
                "summary": "CreateFamily",
                "description": "Creates a new family.",
                "operationId": "FamilyService_CreateFamily",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CreateFamilyResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1CreateFamilyRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "FamilyService"
                ]
            }
        },
        "/api/v1/families/alignments/{familyAlignmentId}/points": {
            "get": {
                "summary": "ListFamilyAlignmentPoints",
                "description": "Lists all alignment points for a specific family version alignment.",
                "operationId": "FamilyService_ListFamilyAlignmentPoints",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListFamilyAlignmentPointsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "familyAlignmentId",
                        "description": "Provide family_alignment_id to identify the family to list alignments points.",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "pageSize",
                        "description": "The maximum number of family version alignment points to return. The service may return fewer than this value, even if\nthere are additional pages. If unspecified, the limit defaults to 200. The maximum value is 1000.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are: `family_run_id`, and for the associated Run: `name`, `description`, `start_time`, `end_time`, `duration`.\nNote: `name`, `description`, `start_time`, `end_time`, and `duration` are filters on the associated run.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListFamilyAlignmentPoints` call. Provide this to retrieve the\nsubsequent page. When paginating, all other parameters provided to `ListFamilyAlignmentPoints` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "FamilyService"
                ]
            }
        },
        "/api/v1/families/candidate-runs": {
            "get": {
                "summary": "ListFamilyCandidateRuns",
                "description": "Lists runs that match a candidate-run CEL filter. Supports `include_archived` as a CEL directive (archived runs are excluded by default; pass `include_archived == true` in the filter to include them). When `family_id` is provided, runs already on that family's persisted membership (both included and excluded) are filtered out so the response only contains runs not yet on the family.",
                "operationId": "FamilyService_ListFamilyCandidateRuns",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListFamilyCandidateRunsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of runs to return.\nThe service may return fewer than this value.\nIf unspecified, at most 50 runs will be returned.\nThe maximum value is 1000; values above 1000 will be coerced to 1000.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nSupports all ListRuns filter fields plus `include_archived`.\nWhen `include_archived` is not present in the filter, archived runs are excluded by default.\nSet `include_archived == true` in the filter to include archived runs.\nNote: `include_archived` is a directive and must appear at the top level of the filter\n(or within a top-level AND chain). It cannot be used inside an OR expression.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved runs. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `name`, `description`, `created_date`, `modified_date`, `start_time`, and `stop_time`.\nIf left empty, items are ordered by `created_date` in descending order (newest-first).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "familyId",
                        "description": "Optional family ID to filter out runs already on the family's persisted membership.\nWhen set, the response excludes runs that are already included or excluded in the family.\nOmit this field when working with draft membership changes.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "FamilyService"
                ]
            }
        },
        "/api/v1/families/client_key/{clientKey}": {
            "get": {
                "summary": "GetFamily by clientKey",
                "description": "Retrieves the latest version of a family.",
                "operationId": "FamilyService_GetFamily2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetFamilyResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "clientKey",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "familyId",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "FamilyService"
                ]
            },
            "patch": {
                "summary": "UpdateFamily by clientKey",
                "description": "Updates an existing family using the list of fields specified in `update_mask`.",
                "operationId": "FamilyService_UpdateFamily2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UpdateFamilyResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "clientKey",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "familyId": {
                                        "type": "string"
                                    },
                                    "family": {
                                        "$ref": "#/components/schemas/v1FamilyDetails"
                                    },
                                    "updateMask": {
                                        "type": "string",
                                        "description": "Note: Whenever the family is updated, the family stats are also updated to point to the new family version to ensure the family stats are always up to date.\nclient_key can only be updated if it is not already set. It must be passed in via the family request and cannot be used as identifier."
                                    }
                                },
                                "required": [
                                    "family",
                                    "updateMask"
                                ]
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "FamilyService"
                ]
            }
        },
        "/api/v1/families/client_key/{clientKey}/export": {
            "get": {
                "summary": "ExportFamily by clientKey",
                "description": "Exports a family to YAML.",
                "operationId": "FamilyService_ExportFamily2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ExportFamilyResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "clientKey",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "familyId",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "familyVersionId",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "FamilyService"
                ]
            }
        },
        "/api/v1/families/client_key/{clientKey}/import-update": {
            "patch": {
                "summary": "ImportUpdateFamily by clientKey",
                "description": "Updates an existing family from YAML.",
                "operationId": "FamilyService_ImportUpdateFamily2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ImportUpdateFamilyResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "clientKey",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "familyId": {
                                        "type": "string"
                                    },
                                    "familyYaml": {
                                        "type": "string",
                                        "description": "The source to update the family from. Must provide family_yaml. The contents of the source\nshould match the shape of UpdateFamilyRequest FamilyDetails. The update_mask is optional and defaults to updating provided fields."
                                    },
                                    "updateMask": {
                                        "type": "string",
                                        "title": "See UpdateFamilyRequest"
                                    }
                                },
                                "required": [
                                    "familyYaml"
                                ]
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "FamilyService"
                ]
            }
        },
        "/api/v1/families/stat-range/name": {
            "post": {
                "summary": "GenerateFamilyStatRangeName",
                "description": "Derives a name for a family range based on the range configuration. Nothing is persisted to the database.",
                "operationId": "FamilyService_GenerateFamilyStatRangeName",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GenerateFamilyStatRangeNameResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "familyAlignmentName",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "windowStart.familyAlignmentName",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "windowStart.duration",
                        "description": "Duration relative to the alignment used to compare the data. Defaults to 0 seconds.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "windowEnd.familyAlignmentName",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "windowEnd.duration",
                        "description": "Duration relative to the alignment used to compare the data. Defaults to 0 seconds.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "FamilyService"
                ]
            }
        },
        "/api/v1/families/versions": {
            "get": {
                "summary": "ListFamilyVersions",
                "description": "Lists all versions of a family.",
                "operationId": "FamilyService_ListFamilyVersions",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListFamilyVersionsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of family versions to return. The service may return fewer than this value, even if\nthere are additional pages. If unspecified, the max limit defaults to 50. The maximum value is 200.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are: `family_id`, `family_version_id`, `organization_id`, `name`, `description`, `run_query`, `user_notes`, `change_message`, `created_by_user_id`, `created_date`, `modified_by_user_id`, `modified_date`, `archived_date`, `is_archived`, `run_id_includes`, `run_id_excludes`, `alignment_name`, `alignment_description`.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListFamilyVersions` call. Provide this to retrieve the\nsubsequent page. When paginating, all other parameters provided to `ListFamilyVersions` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved family versions. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are: `created_date`, `modified_date`, `name`.\nIf left empty, items are ordered by `created_date` in descending order.\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "FamilyService"
                ]
            }
        },
        "/api/v1/families/versions/{familyVersionId}": {
            "get": {
                "summary": "GetFamilyVersion",
                "description": "Retrieves a specific version of a family.",
                "operationId": "FamilyService_GetFamilyVersion",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetFamilyVersionResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "familyVersionId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "FamilyService"
                ]
            }
        },
        "/api/v1/families/versions/{familyVersionId}/alignments": {
            "get": {
                "summary": "ListFamilyAlignments",
                "description": "Lists all alignments for a specific family version.",
                "operationId": "FamilyService_ListFamilyAlignments",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListFamilyAlignmentsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "familyVersionId",
                        "description": "Provide family_id to identify the family to list alignments.",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "pageSize",
                        "description": "The maximum number of family version alignments to return. The service may return fewer than this value, even if\nthere are additional pages. If unspecified, the limit defaults to 200. The maximum value is 1000.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are: `name`, `description`.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListFamilyAlignments` call. Provide this to retrieve the\nsubsequent page. When paginating, all other parameters provided to `ListFamilyAlignments` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "FamilyService"
                ]
            }
        },
        "/api/v1/families/versions/{familyVersionId}/candidate-run-count": {
            "get": {
                "summary": "GetFamilyCandidateRunCount",
                "description": "Returns the count of candidate runs for a family version that are not already included or excluded.",
                "operationId": "FamilyService_GetFamilyCandidateRunCount",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetFamilyCandidateRunCountResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "familyVersionId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "FamilyService"
                ]
            }
        },
        "/api/v1/families/versions/{familyVersionId}/candidate-runs": {
            "get": {
                "summary": "GetFamilyCandidateRuns",
                "description": "Retrieves the candidate runs for a family version based on the run query stored in the family version.",
                "operationId": "FamilyService_GetFamilyCandidateRuns",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetFamilyCandidateRunsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "familyVersionId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "FamilyService"
                ]
            }
        },
        "/api/v1/families/versions/{familyVersionId}/export": {
            "get": {
                "summary": "ExportFamily by familyVersionId",
                "description": "Exports a family to YAML.",
                "operationId": "FamilyService_ExportFamily3",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ExportFamilyResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "familyVersionId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "familyId",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "clientKey",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "FamilyService"
                ]
            }
        },
        "/api/v1/families/versions/{familyVersionId}/members": {
            "get": {
                "summary": "ListFamilyMembers",
                "description": "Lists all members of a family version.",
                "operationId": "FamilyService_ListFamilyMembers",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListFamilyMembersResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "familyVersionId",
                        "description": "Provide family_version_id to identify the family to list members for.",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "pageSize",
                        "description": "The maximum number of family members to return. The service may return fewer than this value, even if\nthere are additional pages. If unspecified, the max limit defaults to 200. The maximum value is 500.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are: `is_exclusion`, `rationale`, `added_date`, `added_by_user_id`, `added_in_version_id`, and for the associated Run:`name`, `description`, `start_time`, `end_time`, `duration`.\nNote: `name`, `description`, `start_time`, `end_time`, and `duration` are filters on the associated run.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListFamilyMembers` call. Provide this to retrieve the\nsubsequent page. When paginating, all other parameters provided to `ListFamilyMembers` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "FamilyService"
                ]
            }
        },
        "/api/v1/families/{familyId}": {
            "get": {
                "summary": "GetFamily by familyId",
                "description": "Retrieves the latest version of a family.",
                "operationId": "FamilyService_GetFamily",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetFamilyResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "familyId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "clientKey",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "FamilyService"
                ]
            },
            "patch": {
                "summary": "UpdateFamily by familyId",
                "description": "Updates an existing family using the list of fields specified in `update_mask`.",
                "operationId": "FamilyService_UpdateFamily",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UpdateFamilyResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "familyId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "clientKey": {
                                        "type": "string"
                                    },
                                    "family": {
                                        "$ref": "#/components/schemas/v1FamilyDetails"
                                    },
                                    "updateMask": {
                                        "type": "string",
                                        "description": "Note: Whenever the family is updated, the family stats are also updated to point to the new family version to ensure the family stats are always up to date.\nclient_key can only be updated if it is not already set. It must be passed in via the family request and cannot be used as identifier."
                                    }
                                },
                                "required": [
                                    "family",
                                    "updateMask"
                                ]
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "FamilyService"
                ]
            }
        },
        "/api/v1/families/{familyId}/export": {
            "get": {
                "summary": "ExportFamily by familyId",
                "description": "Exports a family to YAML.",
                "operationId": "FamilyService_ExportFamily",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ExportFamilyResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "familyId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "clientKey",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "familyVersionId",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "FamilyService"
                ]
            }
        },
        "/api/v1/families/{familyId}/import-update": {
            "patch": {
                "summary": "ImportUpdateFamily by familyId",
                "description": "Updates an existing family from YAML.",
                "operationId": "FamilyService_ImportUpdateFamily",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ImportUpdateFamilyResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "familyId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "clientKey": {
                                        "type": "string"
                                    },
                                    "familyYaml": {
                                        "type": "string",
                                        "description": "The source to update the family from. Must provide family_yaml. The contents of the source\nshould match the shape of UpdateFamilyRequest FamilyDetails. The update_mask is optional and defaults to updating provided fields."
                                    },
                                    "updateMask": {
                                        "type": "string",
                                        "title": "See UpdateFamilyRequest"
                                    }
                                },
                                "required": [
                                    "familyYaml"
                                ]
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "FamilyService"
                ]
            }
        },
        "/api/v1/families/{familyId}/rule-dependencies": {
            "get": {
                "summary": "GetFamilyRuleDependencies",
                "description": "Retrieves all rules that reference the specified family across any of its stats.",
                "operationId": "FamilyService_GetFamilyRuleDependencies",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetFamilyRuleDependenciesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "familyId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "FamilyService"
                ]
            }
        },
        "/api/v1/families:batchGet": {
            "post": {
                "summary": "GetFamilies",
                "description": "Retrieves the latest versions of multiple families.",
                "operationId": "FamilyService_GetFamilies",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetFamiliesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1GetFamiliesRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "FamilyService"
                ]
            }
        },
        "/api/v1/families:import": {
            "post": {
                "summary": "ImportFamily",
                "description": "Imports a new family from YAML.",
                "operationId": "FamilyService_ImportFamily",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ImportFamilyResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1ImportFamilyRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "FamilyService"
                ]
            }
        },
        "/api/v1/families:validateClientKey": {
            "post": {
                "summary": "ValidateFamilyClientKey",
                "description": "Used to validate whether or not a client key is valid.",
                "operationId": "FamilyService_ValidateFamilyClientKey",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ValidateFamilyClientKeyResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1ValidateFamilyClientKeyRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "FamilyService"
                ]
            }
        },
        "/api/v1/families:validateFamilyName": {
            "post": {
                "summary": "ValidateFamilyName",
                "description": "Used to validate whether or not a family name is valid.",
                "operationId": "FamilyService_ValidateFamilyName",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ValidateFamilyNameResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1ValidateFamilyNameRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "FamilyService"
                ]
            }
        },
        "/api/v1/family_stats/create-ranges": {
            "post": {
                "summary": "CreateFamilyStatRanges",
                "description": "Creates family stat ranges for existing family stats (within a given family).",
                "operationId": "FamilyService_CreateFamilyStatRanges",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CreateFamilyStatRangesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1CreateFamilyStatRangesRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "FamilyService"
                ]
            }
        },
        "/api/v1/family_stats/{familyStatId}": {
            "get": {
                "summary": "GetFamilyStat",
                "description": "Retrieves a family stat configuration.",
                "operationId": "FamilyService_GetFamilyStat",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetFamilyStatResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "familyStatId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "FamilyService"
                ]
            }
        },
        "/api/v1/family_stats/{familyVersionId}": {
            "get": {
                "summary": "GetFamilyStats",
                "description": "Retrieves family stats configurations for a family version.",
                "operationId": "FamilyService_GetFamilyStats",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetFamilyStatsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "familyVersionId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "FamilyService"
                ]
            }
        },
        "/api/v1/ingestion-configs": {
            "get": {
                "summary": "ListIngestionConfigs v1",
                "description": "List ingestion configs using an optional filter.",
                "operationId": "IngestionConfigService_ListIngestionConfigs",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ingestion_configsv1ListIngestionConfigsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of ingestion configs to return. The service may return fewer than this value.\nIf unspecified, at most 50 ingestion configs will be returned. The maximum value is 1000; values above\n1000 will be coerced to 1000. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListIngestionConfigs` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListIngestionConfigs` must match\nthe call that provided the page token. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `ingestion_config_id`, `client_key`, `asset_id`, `created_date`, and `modified_date`.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "IngestionConfigService"
                ]
            },
            "post": {
                "summary": "CreateIngestionConfig v1",
                "description": "Create an ingestion config.",
                "operationId": "IngestionConfigService_CreateIngestionConfig",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ingestion_configsv1CreateIngestionConfigResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ingestion_configsv1CreateIngestionConfigRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `IngestionConfigService_CreateIngestionConfig` to create an ingestion configs.",
                    "required": true
                },
                "tags": [
                    "IngestionConfigService"
                ]
            }
        },
        "/api/v1/ingestion-configs/{ingestionConfigId}": {
            "get": {
                "summary": "GetIngestionConfig v1",
                "description": "Retrieves an ingestion config.",
                "operationId": "IngestionConfigService_GetIngestionConfig",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ingestion_configsv1GetIngestionConfigResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "ingestionConfigId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "IngestionConfigService"
                ]
            }
        },
        "/api/v1/ingestion-configs/{ingestionConfigId}/flows": {
            "get": {
                "summary": "ListIngestionConfigFlows v1",
                "description": "List ingestion config flows using an optional filter.",
                "operationId": "IngestionConfigService_ListIngestionConfigFlows",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ingestion_configsv1ListIngestionConfigFlowsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "ingestionConfigId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "pageSize",
                        "description": "The maximum number of ingestion config flows to return. The service may return fewer than this value.\nIf unspecified, at most 50 ingestion config flows will be returned. The maximum value is 1000; values above\n1000 will be coerced to 1000. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListIngestionConfigFlows` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListIngestionConfigFlows` must match\nthe call that provided the page token. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `flow_name`, `flow_id`, `created_date`, and `modified_date`.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "IngestionConfigService"
                ]
            },
            "post": {
                "summary": "CreateIngestionConfigFlows v1",
                "description": "Create ingestion config flows.",
                "operationId": "IngestionConfigService_CreateIngestionConfigFlows",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ingestion_configsv1CreateIngestionConfigFlowsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "ingestionConfigId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "flows": {
                                        "type": "array",
                                        "items": {
                                            "$ref": "#/components/schemas/ingestion_configsv1FlowConfig"
                                        },
                                        "description": "These flows must have unique names. If you try to send a flow with a name that already exists for an ingestion config, it will return an error."
                                    }
                                },
                                "description": "The request for a call to `IngestionConfigService_CreateIngestionConfigFlows` to create ingestion config flows."
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "IngestionConfigService"
                ]
            }
        },
        "/api/v1/jobs": {
            "get": {
                "summary": "ListJobs",
                "description": "List jobs.",
                "operationId": "JobService_ListJobs",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListJobsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of jobs to return. The service may return fewer than this value.\nIf unspecified, at most 50 jobs will be returned.\nThe maximum value is 1000; values above 1000 will be coerced to 1000. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListJobs` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListJobs` must match\nthe call that provided the page token. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are:\n`job_id`, `created_by_user_id`, `modified_by_user_id`, `created_date`, `modified_date`, `started_date`, `completed_date`, and `job_status`\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).\nFor more information about the fields used for filtering, please refer to this definition. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "organizationId",
                        "description": "This field is only required if your user belongs to multiple organizations.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved jobs. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `created_date`, `modified_date`, `started_date`, `completed_date`, `job_status`.\nIf left empty, items are ordered by `created_date` in descending order (newest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc,modified_date\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "JobService"
                ]
            }
        },
        "/api/v1/jobs/{jobId}:cancel": {
            "post": {
                "summary": "CancelJob",
                "description": "Requests cancellation of a job.",
                "operationId": "JobService_CancelJob",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CancelJobResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "jobId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "JobService"
                ]
            }
        },
        "/api/v1/jobs/{jobId}:retry": {
            "post": {
                "summary": "RetryJob",
                "description": "Manually retries a job.",
                "operationId": "JobService_RetryJob",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1RetryJobResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "jobId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "JobService"
                ]
            }
        },
        "/api/v1/metadata-key-usage": {
            "get": {
                "summary": "ListMetadataUsage",
                "description": "List metadata key usage.",
                "operationId": "MetadataService_ListMetadataUsage",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListMetadataUsageResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of metadata key usages to return. The service may return fewer than this value.\nIf unspecified, at most 50 metadata key usages will be returned. The maximum value is 1000; values above\n1000 will be coerced to 1000. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListMetadataUsage` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListMetadataUsage` must match\nthe call that provided the page token. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are:\n`entity_name`, `entity_type`, `key_name`,`value_string`, `value_number`, and `value_boolean`.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).\nFor more information about the fields used for filtering, please refer to this definition. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved metadata key usages. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `created_date`, `entity_id` and `entity_type`.\nIf left empty, items are ordered by `created_date` in ascending order (oldest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "MetadataService"
                ]
            }
        },
        "/api/v1/metadata-keys": {
            "get": {
                "summary": "ListMetadataKeys",
                "description": "List metadata keys.",
                "operationId": "MetadataService_ListMetadataKeys",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListMetadataKeysResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of metadata keys to return. The service may return fewer than this value.\nIf unspecified, at most 50 metadata keys will be returned. The maximum value is 1000; values above\n1000 will be coerced to 1000. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListMetadataKeys` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListMetadataKeys` must match\nthe call that provided the page token. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are:\n`name`, `archived_date`, and `is_archived`.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).\nFor more information about the fields used for filtering, please refer to this definition. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved metadata keys. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `created_date` and `name`.\nIf left empty, items are ordered by `created_date` in ascending order (oldest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc,modified_date\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "MetadataService"
                ]
            },
            "post": {
                "summary": "CreateMetadataKey",
                "description": "Create a metadata key.",
                "operationId": "MetadataService_CreateMetadataKey",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CreateMetadataKeyResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1CreateMetadataKeyRequest"
                            }
                        }
                    },
                    "description": "The request of a call to `MetadataService_CreateMetadataKey` to create a metadata key.",
                    "required": true
                },
                "tags": [
                    "MetadataService"
                ]
            }
        },
        "/api/v1/metadata-keys/archive": {
            "post": {
                "summary": "ArchiveMetadataKeys",
                "description": "Archive metadata keys.",
                "operationId": "MetadataService_ArchiveMetadataKeys",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ArchiveMetadataKeysResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1ArchiveMetadataKeysRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "MetadataService"
                ]
            }
        },
        "/api/v1/metadata-keys/delete": {
            "post": {
                "summary": "DeleteMetadataKeys",
                "description": "Delete metadata keys.",
                "operationId": "MetadataService_DeleteMetadataKeys",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1DeleteMetadataKeysResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1DeleteMetadataKeysRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "MetadataService"
                ]
            }
        },
        "/api/v1/metadata-keys/unarchive": {
            "post": {
                "summary": "UnarchiveMetadataKeys",
                "description": "Unarchive metadata keys.",
                "operationId": "MetadataService_UnarchiveMetadataKeys",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UnarchiveMetadataKeysResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1UnarchiveMetadataKeysRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "MetadataService"
                ]
            }
        },
        "/api/v1/metadata-values": {
            "get": {
                "summary": "ListMetadataValues",
                "description": "List metadata values.",
                "operationId": "MetadataService_ListMetadataValues",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListMetadataValuesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of metadata values to return. The service may return fewer than this value.\nIf unspecified, at most 50 metadata values will be returned. The maximum value is 1000; values above\n1000 will be coerced to 1000. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListMetadataValues` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListMetadataValues` must match\nthe call that provided the page token. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are:\n`value_string`, `value_number`, `value_boolean`, `archived_date`, and `is_archived`.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).\nFor more information about the fields used for filtering, please refer to this definition. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved metadata keys. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `created_date` and `name`.\nIf left empty, items are ordered by `created_date` in ascending order (oldest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc,modified_date\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "metadataKeyName",
                        "description": "The name of the metadata key to list values for.",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "MetadataService"
                ]
            },
            "post": {
                "summary": "Create a metadata value.",
                "operationId": "MetadataService_CreateMetadataValue",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CreateMetadataValueResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1CreateMetadataValueRequest"
                            }
                        }
                    },
                    "description": "The request of a call to `MetadataService_CreateMetadataValue` to create a metadata value.",
                    "required": true
                },
                "tags": [
                    "MetadataService"
                ]
            }
        },
        "/api/v1/metadata-values/archive": {
            "post": {
                "summary": "ArchiveMetadataValues",
                "description": "Archive metadata values.",
                "operationId": "MetadataService_ArchiveMetadataValues",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ArchiveMetadataValuesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1ArchiveMetadataValuesRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "MetadataService"
                ]
            }
        },
        "/api/v1/metadata-values/delete": {
            "post": {
                "summary": "DeleteMetadataValues",
                "description": "Delete metadata values.",
                "operationId": "MetadataService_DeleteMetadataValues",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1DeleteMetadataValuesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1DeleteMetadataValuesRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "MetadataService"
                ]
            }
        },
        "/api/v1/metadata-values/unarchive": {
            "post": {
                "summary": "UnarchiveMetadataValues",
                "description": "Unarchive metadata values.",
                "operationId": "MetadataService_UnarchiveMetadataValues",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UnarchiveMetadataValuesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1UnarchiveMetadataValuesRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "MetadataService"
                ]
            }
        },
        "/api/v1/notifications": {
            "get": {
                "summary": "ListNotifications",
                "description": "Retrieves notifications using an optional filter.",
                "operationId": "NotificationService_ListNotifications",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListNotificationsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of notifications to return.\nThe service may return fewer than this value.\nIf unspecified, at most 50 notifications will be returned.\nThe maximum value is 1000; values above 1000 will be coerced to 1000.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListNotifications` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListNotifications` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `notification_id`, `created_by_user_id`, `recipient_user_id`,\n`created_date`, `notification_type`, and `is_read`.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "NotificationService"
                ]
            }
        },
        "/api/v1/notifications:batchUpdate": {
            "post": {
                "summary": "BatchUpdateNotifications",
                "description": "Batch updates a list of notifications using the list of fields specified in their respective `update_mask`s.",
                "operationId": "NotificationService_BatchUpdateNotifications",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1BatchUpdateNotificationsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1BatchUpdateNotificationsRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `NotificationService_BatchUpdateNotifications` to update notifications.\nA maximum of 1000 notifications can be modified in a batch.",
                    "required": true
                },
                "tags": [
                    "NotificationService"
                ]
            }
        },
        "/api/v1/panel-configurations": {
            "get": {
                "summary": "ListPanelConfigurations",
                "description": "Retrieves panel configurations using an optional filter.",
                "operationId": "PanelConfigurationService_ListPanelConfigurations",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListPanelConfigurationsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of panel configurations to return.\nThe service may return fewer than this value.\nIf unspecified, at most 50 panel configurations will be returned.\nThe maximum value is 1000; values above 1000 will be coerced to 1000.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListPanelConfigurations` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListPanelConfigurations` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string\nAvailable fields to filter by are 'name', 'created_date', 'modified_date', 'is_archived', and `metadata`.\nMetadata can be used in filters by using `metadata.{metadata_key_name}` as the field name.\nFolder membership is filterable via the `folders` and `activeFolders` fields. Both contain the ids of the folders\nthe panel configuration belongs to; `activeFolders` excludes archived folders. Use `\"<folder_id>\" in folders` to\nreturn panel configurations in the given folder, and `size(activeFolders) == 0` to return uncategorized panel\nconfigurations (panel configurations whose only memberships are in archived folders count as uncategorized).\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved panel configurations. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `name`.\nIf left empty, items are ordered by `name` in ascending order (alphabetical).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"name\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "runIds",
                        "in": "query",
                        "required": false,
                        "explode": true,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    },
                    {
                        "name": "assetIds",
                        "in": "query",
                        "required": false,
                        "explode": true,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    }
                ],
                "tags": [
                    "PanelConfigurationService"
                ]
            },
            "post": {
                "summary": "CreatePanelConfiguration",
                "description": "Creates a panel configuration.",
                "operationId": "PanelConfigurationService_CreatePanelConfiguration",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CreatePanelConfigurationResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1CreatePanelConfigurationRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "PanelConfigurationService"
                ]
            }
        },
        "/api/v1/panel-configurations/{panelConfiguration.panelConfigurationId}": {
            "patch": {
                "summary": "UpdatePanelConfiguration",
                "description": "Updates an existing panel configuration using using the list of fields specified in `update_mask`.",
                "operationId": "PanelConfigurationService_UpdatePanelConfiguration",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UpdatePanelConfigurationResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "panelConfiguration.panelConfigurationId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "panelConfiguration": {
                                        "type": "object",
                                        "properties": {
                                            "versionId": {
                                                "type": "string"
                                            },
                                            "version": {
                                                "type": "integer",
                                                "format": "int64"
                                            },
                                            "changeMessage": {
                                                "type": "string"
                                            },
                                            "name": {
                                                "type": "string"
                                            },
                                            "channelConfigurations": {
                                                "type": "array",
                                                "items": {
                                                    "$ref": "#/components/schemas/v1ChannelConfigurations"
                                                }
                                            },
                                            "chartSettings": {
                                                "type": "object"
                                            },
                                            "createdDate": {
                                                "type": "string",
                                                "format": "date-time"
                                            },
                                            "modifiedDate": {
                                                "type": "string",
                                                "format": "date-time"
                                            },
                                            "archivedDate": {
                                                "type": "string",
                                                "format": "date-time"
                                            },
                                            "createdByUserId": {
                                                "type": "string"
                                            },
                                            "modifiedByUserId": {
                                                "type": "string"
                                            },
                                            "isArchived": {
                                                "type": "boolean"
                                            },
                                            "metadata": {
                                                "type": "array",
                                                "items": {
                                                    "$ref": "#/components/schemas/v1MetadataValue"
                                                }
                                            },
                                            "folderIds": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                },
                                                "description": "Ids of the folders this panel configuration belongs to."
                                            }
                                        },
                                        "description": "The panel configuration to update.",
                                        "title": "The panel configuration to update."
                                    },
                                    "updateMask": {
                                        "type": "string",
                                        "description": "The list of fields to be updated. The fields available to be updated are `name`, `channel_configurations`,\n`chart_settings`, `is_archived`, and `metadata`."
                                    }
                                },
                                "description": "The request for a call to `PanelConfigurationService_UpdatePanelConfiguration` to update a panel configuration. Updating a panel\nconfiguration creates a new version of the panel configuration, leaving the previous untouched. If no update is deemed necessary, then the\nthe current version is returned. Use `is_archived` to archive/unarchive a panel configuration.",
                                "required": [
                                    "updateMask"
                                ]
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "PanelConfigurationService"
                ]
            }
        },
        "/api/v1/panel-configurations/{panelConfigurationId}": {
            "get": {
                "summary": "GetPanelConfiguration",
                "description": "Retrieves a panel configuration.",
                "operationId": "PanelConfigurationService_GetPanelConfiguration",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetPanelConfigurationResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "panelConfigurationId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "PanelConfigurationService"
                ]
            }
        },
        "/api/v1/ping": {
            "get": {
                "operationId": "PingService_Ping",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1PingResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "tags": [
                    "PingService"
                ],
                "summary": "PingService_Ping"
            }
        },
        "/api/v1/policies": {
            "get": {
                "summary": "ListPolicies",
                "description": "Retrieve policies using an optional filter.",
                "operationId": "PolicyService_ListPolicies",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListPoliciesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of policies to return. The service may return fewer than this value.\nIf unspecified, at most 50 policies will be returned. The maximum value is 100; values above\n100 will be coerced to 100. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListPolicies` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListPolicies` must match\nthe call that provided the page token. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `policy_id`, `organization_id`, `name`, `description`,\n`created_by_user_id`, `modified_by_user_id`, `created_date`, and `modified_date`.\nArchive state is controlled via the `include_archived` field below, not via filter.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved policies. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `created_date`, `modified_date`, and `name`.\nIf left empty, items are ordered by `created_date` in descending order (newest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc,modified_date\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "includeArchived",
                        "description": "Whether to include archived policies in the response. If false or unset, archived policies are excluded.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "tags": [
                    "PolicyService"
                ]
            },
            "post": {
                "summary": "CreatePolicy",
                "description": "Create a new policy.",
                "operationId": "PolicyService_CreatePolicy",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CreatePolicyResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1CreatePolicyRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `PolicyService_CreatePolicy` to create a new policy.",
                    "required": true
                },
                "tags": [
                    "PolicyService"
                ]
            },
            "patch": {
                "summary": "UpdatePolicy",
                "description": "Update a policy.",
                "operationId": "PolicyService_UpdatePolicy",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UpdatePolicyResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1UpdatePolicyRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `PolicyService_UpdatePolicy` to update a policy.",
                    "required": true
                },
                "tags": [
                    "PolicyService"
                ]
            }
        },
        "/api/v1/policies/{policyId}": {
            "get": {
                "summary": "GetPolicy",
                "description": "Retrieve a policy.",
                "operationId": "PolicyService_GetPolicy",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetPolicyResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "policyId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "PolicyService"
                ]
            }
        },
        "/api/v1/policies/{policyId}/archive": {
            "post": {
                "summary": "ArchivePolicy",
                "description": "Archive a policy.",
                "operationId": "PolicyService_ArchivePolicy",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ArchivePolicyResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "policyId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "PolicyService"
                ]
            }
        },
        "/api/v1/policies/{policyId}/unarchive": {
            "post": {
                "summary": "UnarchivePolicy",
                "description": "Unarchive a previously-archived policy.",
                "operationId": "PolicyService_UnarchivePolicy",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UnarchivePolicyResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "policyId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "PolicyService"
                ]
            }
        },
        "/api/v1/policies:validate": {
            "post": {
                "summary": "ValidatePolicy",
                "description": "Validate a Cedar policy configuration.",
                "operationId": "PolicyService_ValidatePolicy",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ValidatePolicyResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1ValidatePolicyRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `PolicyService_ValidatePolicy`.",
                    "required": true
                },
                "tags": [
                    "PolicyService"
                ]
            }
        },
        "/api/v1/principal-attribute-enum-values": {
            "post": {
                "summary": "CreatePrincipalAttributeEnumValue",
                "description": "Create a principal attribute enum value.",
                "operationId": "PrincipalAttributeService_CreatePrincipalAttributeEnumValue",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CreatePrincipalAttributeEnumValueResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1CreatePrincipalAttributeEnumValueRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "PrincipalAttributeService"
                ]
            }
        },
        "/api/v1/principal-attribute-enum-values/batch-archive": {
            "post": {
                "summary": "BatchArchivePrincipalAttributeEnumValues",
                "description": "Archives multiple principal attribute enum values and migrates all principal attribute values with those enum values to their respective replacement enum values.",
                "operationId": "PrincipalAttributeService_BatchArchivePrincipalAttributeEnumValues",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1BatchArchivePrincipalAttributeEnumValuesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1BatchArchivePrincipalAttributeEnumValuesRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "PrincipalAttributeService"
                ]
            }
        },
        "/api/v1/principal-attribute-enum-values/batch-unarchive": {
            "post": {
                "summary": "BatchUnarchivePrincipalAttributeEnumValues",
                "description": "Unarchives multiple principal attribute enum values.",
                "operationId": "PrincipalAttributeService_BatchUnarchivePrincipalAttributeEnumValues",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1BatchUnarchivePrincipalAttributeEnumValuesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1BatchUnarchivePrincipalAttributeEnumValuesRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "PrincipalAttributeService"
                ]
            }
        },
        "/api/v1/principal-attribute-enum-values/{archivedEnumValueId}/archive": {
            "post": {
                "summary": "ArchivePrincipalAttributeEnumValue",
                "description": "Archives a principal attribute enum value and migrates all principal attribute values with that enum value to a replacement enum value.",
                "operationId": "PrincipalAttributeService_ArchivePrincipalAttributeEnumValue",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ArchivePrincipalAttributeEnumValueResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "archivedEnumValueId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "replacementEnumValueId": {
                                        "type": "string",
                                        "description": "When the archived_enum_value_id is archived all principal attribute values that reference it will be migrated to the replacement_enum_value_id\nif provided. Otherwise, user-attributes that reference it will be archived as well."
                                    }
                                }
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "PrincipalAttributeService"
                ]
            }
        },
        "/api/v1/principal-attribute-enum-values/{principalAttributeEnumValueId}": {
            "get": {
                "summary": "GetPrincipalAttributeEnumValue",
                "description": "Retrieves a principal attribute enum value.",
                "operationId": "PrincipalAttributeService_GetPrincipalAttributeEnumValue",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetPrincipalAttributeEnumValueResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "principalAttributeEnumValueId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "PrincipalAttributeService"
                ]
            },
            "patch": {
                "summary": "UpdatePrincipalAttributeEnumValue",
                "description": "Updates an existing principal attribute enum value.",
                "operationId": "PrincipalAttributeService_UpdatePrincipalAttributeEnumValue",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UpdatePrincipalAttributeEnumValueResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "principalAttributeEnumValueId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "$ref": "#/components/requestBodies/PrincipalAttributeService_UpdatePrincipalAttributeEnumValueBody"
                },
                "tags": [
                    "PrincipalAttributeService"
                ]
            }
        },
        "/api/v1/principal-attribute-enum-values/{principalAttributeEnumValueId}/unarchive": {
            "post": {
                "summary": "UnarchivePrincipalAttributeEnumValue",
                "description": "Unarchives a principal attribute enum value.",
                "operationId": "PrincipalAttributeService_UnarchivePrincipalAttributeEnumValue",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UnarchivePrincipalAttributeEnumValueResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "principalAttributeEnumValueId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "PrincipalAttributeService"
                ]
            }
        },
        "/api/v1/principal-attribute-keys": {
            "get": {
                "summary": "ListPrincipalAttributeKeys",
                "description": "Lists principal attribute keys.",
                "operationId": "PrincipalAttributeService_ListPrincipalAttributeKeys",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListPrincipalAttributeKeysResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of principal attribute keys to return. The service may return fewer than this value.\nIf unspecified, at most 50 principal attribute keys will be returned. The maximum value is 1000. Values\nabove 1000 will be coerced to 1000. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListPrincipalAttributeKeys` call.\nProvide this to retrieve a subsequent page of principal attribute keys.\nWhen paginating, all other parameters provided to `ListPrincipalAttributeKeys` must match the previous call\nthat provided the page token. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are:\n'principal_attribute_key_id', 'display_name', 'value_type', 'created_by_user_id', 'created_date', 'modified_by_user_id, 'modified_date'\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).\nFor more information about the fields used for filtering, please refer to this definition. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved principal attribute keys. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `created_date`, 'modified_date', 'display_name', 'principal_attribute_key_id', 'value_type', 'description'\nIf left empty, items are ordered by `created_date` in ascending order (oldest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc,modified_date\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "organizationId",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "includeArchived",
                        "description": "If true, includes archived keys. Defaulta to false. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "tags": [
                    "PrincipalAttributeService"
                ]
            },
            "post": {
                "summary": "CreatePrincipalAttributeKey",
                "description": "Create a principal attribute key.",
                "operationId": "PrincipalAttributeService_CreatePrincipalAttributeKey",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CreatePrincipalAttributeKeyResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1CreatePrincipalAttributeKeyRequest"
                            }
                        }
                    },
                    "description": "CreatePrincipalAttributeKeyRequest is used to create a new principal attribute key.",
                    "required": true
                },
                "tags": [
                    "PrincipalAttributeService"
                ]
            }
        },
        "/api/v1/principal-attribute-keys/archive": {
            "post": {
                "summary": "ArchivePrincipalAttributeKeys",
                "description": "Archive principal attribute keys.",
                "operationId": "PrincipalAttributeService_ArchivePrincipalAttributeKeys",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ArchivePrincipalAttributeKeysResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1ArchivePrincipalAttributeKeysRequest"
                            }
                        }
                    },
                    "description": "ArchivePrincipalAttributeKeysRequest is used to batch archive principal attribute keys by id.",
                    "required": true
                },
                "tags": [
                    "PrincipalAttributeService"
                ]
            }
        },
        "/api/v1/principal-attribute-keys/unarchive": {
            "post": {
                "summary": "UnarchivePrincipalAttributeKeys",
                "description": "Unarchive principal attribute keys.",
                "operationId": "PrincipalAttributeService_UnarchivePrincipalAttributeKeys",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UnarchivePrincipalAttributeKeysResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1UnarchivePrincipalAttributeKeysRequest"
                            }
                        }
                    },
                    "description": "UnarchivePrincipalAttributeKeysRequest is used to batch unarchive principal attribute keys by id.",
                    "required": true
                },
                "tags": [
                    "PrincipalAttributeService"
                ]
            }
        },
        "/api/v1/principal-attribute-keys/{principalAttributeKeyId}": {
            "get": {
                "summary": "GetPrincipalAttributeKey",
                "description": "Retrieves a principal attribute key.",
                "operationId": "PrincipalAttributeService_GetPrincipalAttributeKey",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetPrincipalAttributeKeyResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "principalAttributeKeyId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "PrincipalAttributeService"
                ]
            },
            "patch": {
                "summary": "UpdatePrincipalAttributeKey",
                "description": "Updates an existing principal attribute key.",
                "operationId": "PrincipalAttributeService_UpdatePrincipalAttributeKey",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UpdatePrincipalAttributeKeyResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "principalAttributeKeyId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "displayName": {
                                        "type": "string"
                                    },
                                    "description": {
                                        "type": "string"
                                    },
                                    "updateMask": {
                                        "type": "string",
                                        "description": "The list of fields to be updated. The fields available to be updated are 'description'."
                                    }
                                },
                                "description": "UpdatePrincipalAttributeKeyRequest is used to update an existing principal attribute key.",
                                "required": [
                                    "updateMask"
                                ]
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "PrincipalAttributeService"
                ]
            }
        },
        "/api/v1/principal-attribute-keys/{principalAttributeKeyId}/archive-impact": {
            "get": {
                "summary": "CheckPrincipalAttributeKeyArchiveImpact",
                "description": "Returns the count of active user principal-attribute values that would be archived with this key, and the count of active user-group principal-attribute value rows for this key (those rows stop contributing to evaluation once the key is archived).",
                "operationId": "PrincipalAttributeService_CheckPrincipalAttributeKeyArchiveImpact",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CheckPrincipalAttributeKeyArchiveImpactResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "principalAttributeKeyId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "PrincipalAttributeService"
                ]
            }
        },
        "/api/v1/principal-attribute-keys/{principalAttributeKeyId}/enum-values": {
            "get": {
                "summary": "ListPrincipalAttributeEnumValues",
                "description": "Lists principal attribute enum values for a given principal attribute key.",
                "operationId": "PrincipalAttributeService_ListPrincipalAttributeEnumValues",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListPrincipalAttributeEnumValuesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "principalAttributeKeyId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "pageSize",
                        "description": "The maximum number of enum values to return. The service may return fewer than this value.\nIf unspecified, at most 50 enum values will be returned. The maximum value is 100; values above\n100 will be coerced to 100.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListPrincipalAttributeEnumValues` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListPrincipalAttributeEnumValues` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `principal_attribute_enum_value_id`, `name`, `display_name`, `description`,\n`created_by_user_id`, `modified_by_user_id`, `created_date`, and `modified_date`.\nArchive state is controlled via the `include_archived` field below, not via filter.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved enum values. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `created_date`, `modified_date`, and `display_name`.\nIf left empty, items are ordered by `created_date` in descending order (newest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"display_name,created_date desc\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "includeArchived",
                        "description": "Whether to include archived enum values. Defaults to false.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "tags": [
                    "PrincipalAttributeService"
                ]
            }
        },
        "/api/v1/principal-attribute-keys/{principalAttributeKeyId}/principal-attribute-values": {
            "get": {
                "summary": "ListPrincipalAttributeKeyValues",
                "description": "Lists principal attribute values for a given principal attribute key.",
                "operationId": "PrincipalAttributeService_ListPrincipalAttributeKeyValues",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListPrincipalAttributeKeyValuesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "principalAttributeKeyId",
                        "description": "The id of the principal attribute key to list values for.",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "principalType",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_UNSPECIFIED",
                                "PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_USER",
                                "PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_USER_GROUP",
                                "PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_SERVICE_ACCOUNT"
                            ],
                            "default": "PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_UNSPECIFIED"
                        }
                    },
                    {
                        "name": "pageSize",
                        "description": "The maximum number of principal attribute values to return. The service may return fewer than this value.\nIf unspecified, at most 50 principal attribute values will be returned. The maximum value is 1000. Values\nabove 1000 will be coerced to 1000. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListPrincipalAttributeKeyValues` call.\nProvide this to retrieve a subsequent page of principal attribute values.\nWhen paginating, all other parameters provided to `ListPrincipalAttributeKeyValues` must match the previous call\nthat provided the page token. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are:\n'principal_attribute_value_id', 'principal_attribute_key_id', 'principal_attribute_enum_value_id', 'number_value', 'boolean_value', 'created_date', 'created_by_user_id', 'principal_id', and 'principal_type'\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).\nFor more information about the fields used for filtering, please refer to this definition. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved principal attribute values. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `created_date`\nIf left empty, items are ordered by `created_date` in ascending order (oldest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "includeArchived",
                        "description": "If true, include archived values. Defaults to false. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "tags": [
                    "PrincipalAttributeService"
                ]
            }
        },
        "/api/v1/principal-attribute-values": {
            "get": {
                "summary": "ListPrincipalAttributeValues",
                "description": "Lists principal attribute values.",
                "operationId": "PrincipalAttributeService_ListPrincipalAttributeValues",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListPrincipalAttributeValuesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "principalType",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_UNSPECIFIED",
                                "PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_USER",
                                "PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_USER_GROUP",
                                "PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_SERVICE_ACCOUNT"
                            ],
                            "default": "PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_UNSPECIFIED"
                        }
                    },
                    {
                        "name": "pageSize",
                        "description": "The maximum number of principal attribute values to return. The service may return fewer than this value.\nIf unspecified, at most 50 principal attribute values will be returned. The maximum value is 1000. Values\nabove 1000 will be coerced to 1000. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListPrincipalAttributeValues` call.\nProvide this to retrieve a subsequent page of principal attribute values.\nWhen paginating, all other parameters provided to `ListPrincipalAttributeValues` must match the previous call\nthat provided the page token. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are:\n'principal_attribute_value_id', 'principal_attribute_key_id', 'principal_attribute_enum_value_id', 'number_value', 'boolean_value', 'created_date', 'created_by_user_id', 'principal_id', and 'principal_type'.\nArchive state is controlled via the `include_archived` field below, not via filter.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).\nFor more information about the fields used for filtering, please refer to this definition. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved principal attribute values. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `created_date`\nIf left empty, items are ordered by `created_date` in ascending order (oldest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "includeArchived",
                        "description": "If true, include archived values. Defaults to false. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "tags": [
                    "PrincipalAttributeService"
                ]
            }
        },
        "/api/v1/principal-attribute-values/archive": {
            "post": {
                "summary": "ArchivePrincipalAttributeValues",
                "description": "Archive principal attribute values.",
                "operationId": "PrincipalAttributeService_ArchivePrincipalAttributeValues",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ArchivePrincipalAttributeValuesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1ArchivePrincipalAttributeValuesRequest"
                            }
                        }
                    },
                    "description": "ArchivePrincipalAttributeValuesRequest is used to batch archive principal attribute values by id.",
                    "required": true
                },
                "tags": [
                    "PrincipalAttributeService"
                ]
            }
        },
        "/api/v1/principal-attribute-values/batch": {
            "post": {
                "summary": "BatchCreatePrincipalAttributeValue",
                "description": "Creates a principal attribute value for multiple principals in a single operation.",
                "operationId": "PrincipalAttributeService_BatchCreatePrincipalAttributeValue",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1BatchCreatePrincipalAttributeValueResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1BatchCreatePrincipalAttributeValueRequest"
                            }
                        }
                    },
                    "description": "BatchCreatePrincipalAttributeValueRequest is used to batch create new principal attribute values.",
                    "required": true
                },
                "tags": [
                    "PrincipalAttributeService"
                ]
            }
        },
        "/api/v1/principal-attribute-values/unarchive": {
            "post": {
                "summary": "UnarchivePrincipalAttributeValues",
                "description": "Unarchive principal attribute values.",
                "operationId": "PrincipalAttributeService_UnarchivePrincipalAttributeValues",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UnarchivePrincipalAttributeValuesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1UnarchivePrincipalAttributeValuesRequest"
                            }
                        }
                    },
                    "description": "UnarchivePrincipalAttributeValuesRequest is used to batch unarchive principal attribute values by id.",
                    "required": true
                },
                "tags": [
                    "PrincipalAttributeService"
                ]
            }
        },
        "/api/v1/principal-attribute-values/{principalAttributeValueId}": {
            "get": {
                "summary": "GetPrincipalAttributeValue",
                "description": "Retrieves a principal attribute value.",
                "operationId": "PrincipalAttributeService_GetPrincipalAttributeValue",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetPrincipalAttributeValueResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "principalAttributeValueId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "principalType",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_UNSPECIFIED",
                                "PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_USER",
                                "PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_USER_GROUP",
                                "PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_SERVICE_ACCOUNT"
                            ],
                            "default": "PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_UNSPECIFIED"
                        }
                    }
                ],
                "tags": [
                    "PrincipalAttributeService"
                ]
            }
        },
        "/api/v1/protobuf-descriptors": {
            "get": {
                "summary": "ListProtobufDescriptors v1",
                "description": "Retrieve protobuf descriptors using an optional filter.",
                "operationId": "ProtobufDescriptorService_ListProtobufDescriptors",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/protobuf_descriptorsv1ListProtobufDescriptorsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "organizationId",
                        "description": "organization_id is deprecated",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "pageSize",
                        "description": "The maximum number of protobuf descriptors to return.\nThe service may return fewer than this value.\nIf unspecified, at most 50 protobuf descriptors will be returned.\nThe maximum value is 1000; values above 1000 will be coerced to 1000.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListProtobufDescriptors` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListProtobufDescriptors` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `protobuf_descriptor_id`, `proto_file_name`, `namespace`, and `message_type_full_name`.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).\nFor more information about the fields used for filtering, please refer to [this definition](/protocol-buffers/documentation#protobufdescriptor). Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ProtobufDescriptorService"
                ]
            },
            "delete": {
                "summary": "DeleteProtobufDescriptors v1",
                "description": "Delete protobuf descriptors of that match the provided `namespace` and `message_type_full_name`.",
                "operationId": "ProtobufDescriptorService_DeleteProtobufDescriptors",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/protobuf_descriptorsv1DeleteProtobufDescriptorsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "messageTypeFullName",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "namespace",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "organizationId",
                        "description": "organization_id is deprecated",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "protobufDescriptorId",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ProtobufDescriptorService"
                ]
            }
        },
        "/api/v1/protobuf-descriptors:add": {
            "post": {
                "summary": "AddProtobufDescriptor v1",
                "description": "Used to register a protobuf message to be ingested.",
                "operationId": "ProtobufDescriptorService_AddProtobufDescriptor",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/protobuf_descriptorsv1AddProtobufDescriptorResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "protobufDescriptor.messageTypeFullName",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "protobufDescriptor.fileDescriptorSet",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "byte"
                        }
                    },
                    {
                        "name": "protobufDescriptor.protoFileName",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "protobufDescriptor.namespace",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "protobufDescriptor.protobufDescriptorId",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "organizationId",
                        "description": "organization_id is deprecated",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "forceDuplicateRegistration",
                        "description": "If set to true, the service will ignore checks that this descriptor has already been registered\nand will ensure that it is registered as the latest proto descriptor for the message type.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "tags": [
                    "ProtobufDescriptorService"
                ]
            }
        },
        "/api/v1/remote-files": {
            "get": {
                "summary": "ListRemoteFiles",
                "description": "List remote files.",
                "operationId": "RemoteFileService_ListRemoteFiles",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListRemoteFilesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of remote files to return. The service may return fewer than this value.\nIf unspecified, at most 50 remote files will be returned. The maximum value is 1000; values above\n1000 will be coerced to 1000. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListRemoteFiles` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListRemoteFiles` must match\nthe call that provided the page token. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `remote_file_id`, `entity_id`, `entity_type`, `metadata`, and `file_name`.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "organizationId",
                        "description": "This field is only required if your user belongs to multiple organizations.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved reports. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `name`, `created_date` and `modified_date`.\nIf left empty, items are ordered by `created_date` in descending order (newest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc,modified_date\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "RemoteFileService"
                ]
            },
            "post": {
                "summary": "CreateRemoteFile",
                "description": "Create a remote file.",
                "operationId": "RemoteFileService_CreateRemoteFile",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CreateRemoteFileResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1CreateRemoteFileRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `RemoteFileService_CreateRemoteFile` to create a remote file.",
                    "required": true
                },
                "tags": [
                    "RemoteFileService"
                ]
            },
            "patch": {
                "summary": "UpdateRemoteFile",
                "description": "Updates an existing remote file using using the list of fields specified in `update_mask`.",
                "operationId": "RemoteFileService_UpdateRemoteFile",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UpdateRemoteFileResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1UpdateRemoteFileRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `RemoteFileService_UpdateRemoteFile` to update a remote file.",
                    "required": true
                },
                "tags": [
                    "RemoteFileService"
                ]
            }
        },
        "/api/v1/remote-files/{remoteFileId}": {
            "get": {
                "summary": "GetRemoteFile",
                "description": "Retrieve a remote file.",
                "operationId": "RemoteFileService_GetRemoteFile",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetRemoteFileResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "remoteFileId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "RemoteFileService"
                ]
            },
            "delete": {
                "summary": "DeleteRemoteFile",
                "description": "Delete a remote file.",
                "operationId": "RemoteFileService_DeleteRemoteFile",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1DeleteRemoteFileResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "remoteFileId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "RemoteFileService"
                ]
            }
        },
        "/api/v1/remote-files/{remoteFileId}/download-url": {
            "get": {
                "summary": "GetRemoteFileUrl",
                "description": "Gets a download URL for the remote file.",
                "operationId": "RemoteFileService_GetRemoteFileDownloadUrl",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetRemoteFileDownloadUrlResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "remoteFileId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "RemoteFileService"
                ]
            }
        },
        "/api/v1/remote-files:batchDelete": {
            "post": {
                "summary": "BatchDeleteRemoteFiles",
                "description": "Batch delete remote files. Each batch is limited to 1000 records.",
                "operationId": "RemoteFileService_BatchDeleteRemoteFiles",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1BatchDeleteRemoteFilesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1BatchDeleteRemoteFilesRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `RemoteFileService_BatchDeleteRemoteFiles` to delete remote files.",
                    "required": true
                },
                "tags": [
                    "RemoteFileService"
                ]
            }
        },
        "/api/v1/report-templates": {
            "get": {
                "summary": "ListReportTemplates",
                "description": "List report templates.",
                "operationId": "ReportTemplateService_ListReportTemplates",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListReportTemplatesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of report templates to return. The service may return fewer than this value.\nIf unspecified, at most 50 report templates will be returned. The maximum value is 1000; values above\n1000 will be coerced to 1000. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListReportTemplates` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListReportTemplates` must match\nthe call that provided the page token. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `report_template_id`, `tag_id`, `tag_name`, `client_key`, `metadata`, `name` and 'is_archived'.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "organizationId",
                        "description": "This field is only required if your user belongs to multiple organizations.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "includeArchived",
                        "description": "Deprecated. Use `filter` instead.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved report templates. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `created_date` and `modified_date`.\nIf left empty, items are ordered by `created_date` in descending order (newest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc,modified_date\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ReportTemplateService"
                ]
            },
            "post": {
                "summary": "CreateReportTemplate",
                "description": "Create a report template.",
                "operationId": "ReportTemplateService_CreateReportTemplate",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CreateReportTemplateResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1CreateReportTemplateRequest"
                            }
                        }
                    },
                    "description": "The request of a call to `ReportTemplateService_CreateReportTemplate` to create a report template.",
                    "required": true
                },
                "tags": [
                    "ReportTemplateService"
                ]
            },
            "patch": {
                "summary": "UpdateReportTemplate",
                "description": "Updates an existing report template using the list of fields specified in `update_mask`.",
                "operationId": "ReportTemplateService_UpdateReportTemplate",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UpdateReportTemplateResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1UpdateReportTemplateRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `ReportTemplateService_UpdateReportTemplate` to update a report template. When updating\ntags or rules, the update will perform a full replace. Additionally, when updating rules, only the rule ID or the rule client key\nis required, but it is okay to provide both. If some rules contain only client keys and others only rule IDs, they will be consolidated.",
                    "required": true
                },
                "tags": [
                    "ReportTemplateService"
                ]
            }
        },
        "/api/v1/report-templates/{reportTemplateId}": {
            "get": {
                "summary": "by reportTemplateId",
                "description": "Retrieve a report template.",
                "operationId": "ReportTemplateService_GetReportTemplate",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetReportTemplateResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "reportTemplateId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "clientKey",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "organizationId",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ReportTemplateService"
                ]
            }
        },
        "/api/v1/reports": {
            "get": {
                "summary": "ListReports",
                "description": "List reports.",
                "operationId": "ReportService_ListReports",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListReportsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of reports to return. The service may return fewer than this value.\nIf unspecified, at most 50 reports will be returned. The maximum value is 1000; values above\n1000 will be coerced to 1000. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListReports` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListReports` must match\nthe call that provided the page token. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `report_id`, `report_template_id`, `tag_name`, `name`, `run_id`, `report_type`, `canvas_id`, `is_archived`, `archived_date`, `created_date`,\n`created_by_user_id`, `metadata`, `modified_date`, and `modified_by_user_id`.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "organizationId",
                        "description": "This field is only required if your user belongs to multiple organizations.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved reports. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `name`, `created_date` and `modified_date`.\nIf left empty, items are ordered by `created_date` in descending order (newest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc,modified_date\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ReportService"
                ]
            },
            "post": {
                "summary": "CreateReport",
                "description": "Create a report.",
                "operationId": "ReportService_CreateReport",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CreateReportResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1CreateReportRequest"
                            }
                        }
                    },
                    "description": "Deprecated - use RuleEvaluationService instead.",
                    "required": true
                },
                "tags": [
                    "ReportService"
                ]
            },
            "put": {
                "summary": "UpdateReport",
                "description": "Update a report.",
                "operationId": "ReportService_UpdateReport",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UpdateReportResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1UpdateReportRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "ReportService"
                ]
            }
        },
        "/api/v1/reports/{reportId}": {
            "get": {
                "summary": "GetReport",
                "description": "Retrieve a report.",
                "operationId": "ReportService_GetReport",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetReportResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "reportId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ReportService"
                ]
            }
        },
        "/api/v1/reports/{reportId}/metadata-values": {
            "get": {
                "summary": "ListReportMetadataValues",
                "description": "List paginated metadata values for a specific report.",
                "operationId": "ReportService_ListReportMetadataValues",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListReportMetadataValuesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "reportId",
                        "description": "The report whose metadata values to list.",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "pageSize",
                        "description": "The maximum number of metadata values to return. The service may return fewer than this value.\nIf unspecified, at most 50 metadata values will be returned. The maximum value is 1000; values above\n1000 will be coerced to 1000. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListReportMetadataValues` call.\nProvide this to retrieve the subsequent page. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `key_name`, `value_string`, `value_number`, `value_boolean`,\n`key_is_archived`, and `value_is_archived`. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ReportService"
                ]
            }
        },
        "/api/v1/reports/{reportId}/rule-summaries": {
            "get": {
                "summary": "ListReportRuleSummaries",
                "description": "List paginated rule summaries for a specific report.",
                "operationId": "ReportService_ListReportRuleSummaries",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListReportRuleSummariesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "reportId",
                        "description": "The report whose rule summaries to list.",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "pageSize",
                        "description": "The maximum number of rule summaries to return. The service may return fewer than this value.\nIf unspecified, at most 50 rule summaries will be returned. The maximum value is 1000; values above\n1000 will be coerced to 1000. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListReportRuleSummaries` call.\nProvide this to retrieve the subsequent page. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `rule_id`, `rule_version_id`, `asset_id`, `status`,\n`created_date`, and `modified_date`. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved rule summaries. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order by are `display_order`, `created_date`, and `modified_date`.\nIf left empty, items are ordered by `display_order` ascending.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ReportService"
                ]
            }
        },
        "/api/v1/reports/{reportId}:cancel": {
            "post": {
                "summary": "CancelReport",
                "description": "Canceling a report will stop the evaluation of the report and mark it as canceled. Any results that have been calculated up to the point of cancellation will be saved.",
                "operationId": "ReportService_CancelReport",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CancelReportResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "reportId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ReportService"
                ]
            }
        },
        "/api/v1/reports/{reportId}:rerun": {
            "post": {
                "summary": "RerunReport",
                "description": "Rerunning a report will create a new report with the same rule versions and run as the original report and run the evaluation again using the most up-to-date set of data.",
                "operationId": "ReportService_RerunReport",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1RerunReportResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "reportId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ReportService"
                ]
            }
        },
        "/api/v1/reports:with-cumulative-summary": {
            "get": {
                "summary": "ListReportsWithCumulativeSummary",
                "description": "List reports with cumulative summary.",
                "operationId": "ReportService_ListReportsWithCumulativeSummary",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListReportsWithCumulativeSummaryResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of reports to return. The service may return fewer than this value.\nIf unspecified, at most 50 reports will be returned. The maximum value is 1000; values above\n1000 will be coerced to 1000. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListReportsWithCumulativeSummary` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListReportsWithCumulativeSummary` must match\nthe call that provided the page token. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `report_id`, `report_template_id`, `tag_name`, `name`, `run_id`, `report_type`, `canvas_id`, `is_archived`, `archived_date`, `created_date`,\n`created_by_user_id`, `metadata`, `modified_date`, and `modified_by_user_id`.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "organizationId",
                        "description": "This field is only required if your user belongs to multiple organizations.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved reports. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `name`, `created_date` and `modified_date`.\nIf left empty, items are ordered by `created_date` in descending order (newest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc,modified_date\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ReportService"
                ]
            }
        },
        "/api/v1/resource-attribute-enum-values": {
            "post": {
                "operationId": "ResourceAttributeService_CreateResourceAttributeEnumValue",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CreateResourceAttributeEnumValueResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1CreateResourceAttributeEnumValueRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "ResourceAttributeService"
                ],
                "summary": "ResourceAttributeService_CreateResourceAttributeEnumValue"
            }
        },
        "/api/v1/resource-attribute-enum-values/batch-archive": {
            "post": {
                "summary": "Archives multiple enum values and migrates all resource-attributes with those values to their respective replacement values.",
                "operationId": "ResourceAttributeService_BatchArchiveResourceAttributeEnumValues",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1BatchArchiveResourceAttributeEnumValuesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1BatchArchiveResourceAttributeEnumValuesRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "ResourceAttributeService"
                ]
            }
        },
        "/api/v1/resource-attribute-enum-values/batch-unarchive": {
            "post": {
                "summary": "Unarchives multiple enum values BUT DOES NOT migrate resource-attributes with a replacement value back to the original value.",
                "operationId": "ResourceAttributeService_BatchUnarchiveResourceAttributeEnumValues",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1BatchUnarchiveResourceAttributeEnumValuesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1BatchUnarchiveResourceAttributeEnumValuesRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "ResourceAttributeService"
                ]
            }
        },
        "/api/v1/resource-attribute-enum-values/{archivedEnumValueId}/archive": {
            "post": {
                "summary": "Archives an enum value and migrates all resource-attributes with that value to a replacement value.",
                "operationId": "ResourceAttributeService_ArchiveResourceAttributeEnumValue",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ArchiveResourceAttributeEnumValueResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "archivedEnumValueId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "replacementEnumValueId": {
                                        "type": "string",
                                        "description": "When the archived_enum_value_id is archived all resource-attributes that reference it will be migrated to the replacement_enum_value_id\nif provided. Otherwise, resource-attributes that reference it will be archived as well."
                                    }
                                }
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "ResourceAttributeService"
                ]
            }
        },
        "/api/v1/resource-attribute-enum-values/{resourceAttributeEnumValueId}": {
            "get": {
                "operationId": "ResourceAttributeService_GetResourceAttributeEnumValue",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetResourceAttributeEnumValueResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "resourceAttributeEnumValueId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ResourceAttributeService"
                ],
                "summary": "ResourceAttributeService_GetResourceAttributeEnumValue"
            },
            "patch": {
                "operationId": "ResourceAttributeService_UpdateResourceAttributeEnumValue",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UpdateResourceAttributeEnumValueResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "resourceAttributeEnumValueId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "$ref": "#/components/requestBodies/PrincipalAttributeService_UpdatePrincipalAttributeEnumValueBody"
                },
                "tags": [
                    "ResourceAttributeService"
                ],
                "summary": "ResourceAttributeService_UpdateResourceAttributeEnumValue"
            }
        },
        "/api/v1/resource-attribute-enum-values/{resourceAttributeEnumValueId}/unarchive": {
            "post": {
                "summary": "Unarchives an enum value BUT DOES NOT migrate resource-attributes with a replacement value back to the original value.",
                "operationId": "ResourceAttributeService_UnarchiveResourceAttributeEnumValue",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UnarchiveResourceAttributeEnumValueResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "resourceAttributeEnumValueId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ResourceAttributeService"
                ]
            }
        },
        "/api/v1/resource-attribute-keys": {
            "get": {
                "operationId": "ResourceAttributeService_ListResourceAttributeKeys",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListResourceAttributeKeysResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of resource_attribute keys to return. The service may return fewer than this value.\nIf unspecified, at most 50 resource_attribute keys will be returned. The maximum value is 100; values above\n100 will be coerced to 100.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListResourceAttributeKeys` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListResourceAttributeKeys` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `resource_attribute_key_id`, `name`, `description`, `key_type`, and `created_date`.\nArchive state is controlled via the `include_archived` field below, not via filter.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved resource_attribute keys. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `created_date`, `modified_date`, and `name`.\nIf left empty, items are ordered by `created_date` in descending order (newest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc,name\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "includeArchived",
                        "description": "Whether to include archived resource_attribute keys. Defaults to false.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "tags": [
                    "ResourceAttributeService"
                ],
                "summary": "ResourceAttributeService_ListResourceAttributeKeys"
            },
            "post": {
                "operationId": "ResourceAttributeService_CreateResourceAttributeKey",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CreateResourceAttributeKeyResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1CreateResourceAttributeKeyRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "ResourceAttributeService"
                ],
                "summary": "ResourceAttributeService_CreateResourceAttributeKey"
            }
        },
        "/api/v1/resource-attribute-keys/batch-archive": {
            "post": {
                "summary": "Archives multiple resource_attribute keys AND all their associated enum values AND all their associated resource-attributes.",
                "operationId": "ResourceAttributeService_BatchArchiveResourceAttributeKeys",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1BatchArchiveResourceAttributeKeysResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1BatchArchiveResourceAttributeKeysRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "ResourceAttributeService"
                ]
            }
        },
        "/api/v1/resource-attribute-keys/batch-unarchive": {
            "post": {
                "summary": "Unarchives multiple resource_attribute keys BUT NOT their associated enum values OR resource-attributes.",
                "operationId": "ResourceAttributeService_BatchUnarchiveResourceAttributeKeys",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1BatchUnarchiveResourceAttributeKeysResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1BatchUnarchiveResourceAttributeKeysRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "ResourceAttributeService"
                ]
            }
        },
        "/api/v1/resource-attribute-keys/{resourceAttributeKeyId}": {
            "get": {
                "operationId": "ResourceAttributeService_GetResourceAttributeKey",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetResourceAttributeKeyResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "resourceAttributeKeyId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ResourceAttributeService"
                ],
                "summary": "ResourceAttributeService_GetResourceAttributeKey"
            },
            "patch": {
                "operationId": "ResourceAttributeService_UpdateResourceAttributeKey",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UpdateResourceAttributeKeyResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "resourceAttributeKeyId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "$ref": "#/components/requestBodies/PrincipalAttributeService_UpdatePrincipalAttributeEnumValueBody"
                },
                "tags": [
                    "ResourceAttributeService"
                ],
                "summary": "ResourceAttributeService_UpdateResourceAttributeKey"
            }
        },
        "/api/v1/resource-attribute-keys/{resourceAttributeKeyId}/archive": {
            "post": {
                "summary": "Archives a resource_attribute key AND all its associated enum values AND all its associated resource-attributes.",
                "operationId": "ResourceAttributeService_ArchiveResourceAttributeKey",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ArchiveResourceAttributeKeyResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "resourceAttributeKeyId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ResourceAttributeService"
                ]
            }
        },
        "/api/v1/resource-attribute-keys/{resourceAttributeKeyId}/archive-impact": {
            "get": {
                "operationId": "ResourceAttributeService_CheckResourceAttributeKeyArchiveImpact",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CheckResourceAttributeKeyArchiveImpactResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "resourceAttributeKeyId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ResourceAttributeService"
                ],
                "summary": "ResourceAttributeService_CheckResourceAttributeKeyArchiveImpact"
            }
        },
        "/api/v1/resource-attribute-keys/{resourceAttributeKeyId}/enum-values": {
            "get": {
                "operationId": "ResourceAttributeService_ListResourceAttributeEnumValues",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListResourceAttributeEnumValuesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "resourceAttributeKeyId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "pageSize",
                        "description": "The maximum number of enum values to return. The service may return fewer than this value.\nIf unspecified, at most 50 enum values will be returned. The maximum value is 100; values above\n100 will be coerced to 100.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListResourceAttributeEnumValues` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListResourceAttributeEnumValues` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `resource_attribute_enum_value_id`, `name`, `description`,\n`created_by_user_id`, `modified_by_user_id`, `created_date`, and `modified_date`.\nArchive state is controlled via the `include_archived` field below, not via filter.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved enum values. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `created_date`, `modified_date`, and `name`.\nIf left empty, items are ordered by `created_date` in descending order (newest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"name,created_date desc\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "includeArchived",
                        "description": "Whether to include archived enum values. Defaults to false.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "tags": [
                    "ResourceAttributeService"
                ],
                "summary": "ResourceAttributeService_ListResourceAttributeEnumValues"
            }
        },
        "/api/v1/resource-attribute-keys/{resourceAttributeKeyId}/unarchive": {
            "post": {
                "summary": "Unarchives a resource_attribute key BUT NOT its associated enum values OR resource-attributes.",
                "operationId": "ResourceAttributeService_UnarchiveResourceAttributeKey",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UnarchiveResourceAttributeKeyResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "resourceAttributeKeyId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ResourceAttributeService"
                ]
            }
        },
        "/api/v1/resource-attributes": {
            "get": {
                "operationId": "ResourceAttributeService_ListResourceAttributes",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListResourceAttributesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of resource-attributes to return. The service may return fewer than this value.\nIf unspecified, at most 50 resource-attributes will be returned. The maximum value is 100; values above\n100 will be coerced to 100.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListResourceAttributes` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListResourceAttributes` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `resource_attribute_id`, `entity_id`, `entity_type`, `resource_attribute_key_id`,\n`resource_attribute_enum_value_id`, `boolean_value`, `number_value`, `created_by_user_id`, and `created_date`.\nArchive state is controlled via the `include_archived` field below, not via filter.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved resource-attributes. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `created_date` and `entity.entity_id`.\nIf left empty, items are ordered by `created_date` in descending order (newest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"entity.entity_id,created_date desc\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "includeArchived",
                        "description": "Whether to include archived resource-attributes. Defaults to false.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "tags": [
                    "ResourceAttributeService"
                ],
                "summary": "ResourceAttributeService_ListResourceAttributes"
            }
        },
        "/api/v1/resource-attributes/batch": {
            "post": {
                "summary": "Creates resource-attributes for multiple entities with the same key-value pair.",
                "operationId": "ResourceAttributeService_BatchCreateResourceAttributes",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1BatchCreateResourceAttributesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1BatchCreateResourceAttributesRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "ResourceAttributeService"
                ]
            }
        },
        "/api/v1/resource-attributes/batch-archive": {
            "post": {
                "summary": "Archives multiple resource-attributes.",
                "operationId": "ResourceAttributeService_BatchArchiveResourceAttributes",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1BatchArchiveResourceAttributesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1BatchArchiveResourceAttributesRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "ResourceAttributeService"
                ]
            }
        },
        "/api/v1/resource-attributes/batch-unarchive": {
            "post": {
                "summary": "Unarchives multiple resource-attributes.",
                "operationId": "ResourceAttributeService_BatchUnarchiveResourceAttributes",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1BatchUnarchiveResourceAttributesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1BatchUnarchiveResourceAttributesRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "ResourceAttributeService"
                ]
            }
        },
        "/api/v1/resource-attributes/{resourceAttributeId}": {
            "get": {
                "operationId": "ResourceAttributeService_GetResourceAttribute",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetResourceAttributeResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "resourceAttributeId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ResourceAttributeService"
                ],
                "summary": "ResourceAttributeService_GetResourceAttribute"
            }
        },
        "/api/v1/resource-attributes/{resourceAttributeId}/archive": {
            "post": {
                "operationId": "ResourceAttributeService_ArchiveResourceAttribute",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ArchiveResourceAttributeResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "resourceAttributeId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ResourceAttributeService"
                ],
                "summary": "ResourceAttributeService_ArchiveResourceAttribute"
            }
        },
        "/api/v1/resource-attributes/{resourceAttributeId}/unarchive": {
            "post": {
                "operationId": "ResourceAttributeService_UnarchiveResourceAttribute",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UnarchiveResourceAttributeResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "resourceAttributeId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ResourceAttributeService"
                ],
                "summary": "ResourceAttributeService_UnarchiveResourceAttribute"
            }
        },
        "/api/v1/rules": {
            "get": {
                "summary": "GetRule",
                "description": "Retrieves the latest version of a rule.",
                "operationId": "RuleService_GetRule",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetRuleResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "ruleId",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "clientKey",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "RuleService"
                ]
            },
            "post": {
                "summary": "CreateRule",
                "description": "Creates a rule.",
                "operationId": "RuleService_CreateRule",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CreateRuleResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1CreateRuleRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "RuleService"
                ]
            },
            "put": {
                "summary": "UpdateRule",
                "description": "Updates an existing rule.",
                "operationId": "RuleService_UpdateRule",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UpdateRuleResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1UpdateRuleRequest"
                            }
                        }
                    },
                    "description": "UpdateRuleRequest is used to create or update a rule. If the rule_id or client_key is provided, the rule will be updated. If not, a new rule will be created.",
                    "required": true
                },
                "tags": [
                    "RuleService"
                ]
            }
        },
        "/api/v1/rules/archive": {
            "post": {
                "summary": "ArchiveRule",
                "description": "Archives a rule.",
                "operationId": "RuleService_ArchiveRule",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ArchiveRuleResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1ArchiveRuleRequest"
                            }
                        }
                    },
                    "description": "ArchiveRuleRequest is used to archive a rule by rule_id or client_key. If both are provided, only rule_id will be used.",
                    "required": true
                },
                "tags": [
                    "RuleService"
                ]
            }
        },
        "/api/v1/rules/batchArchive": {
            "post": {
                "summary": "BatchArchiveRules",
                "description": "Batch archives rules.",
                "operationId": "RuleService_BatchArchiveRules",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1BatchArchiveRulesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1BatchArchiveRulesRequest"
                            }
                        }
                    },
                    "description": "BatchArchiveRulesRequest is used to archive a rule by rule_id or client_key. For each rule if both are provided, only rule_id will be used.",
                    "required": true
                },
                "tags": [
                    "RuleService"
                ]
            }
        },
        "/api/v1/rules/batchDelete": {
            "post": {
                "summary": "BatchDeleteRules",
                "description": "Archives multiple rules. Deprecated: Use BatchArchiveRules instead.",
                "operationId": "RuleService_BatchDeleteRules",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1BatchDeleteRulesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1BatchDeleteRulesRequest"
                            }
                        }
                    },
                    "description": "BatchDeleteRulesRequest is used to delete a rule by rule_id or client_key. For each rule if both are provided, only rule_id will be used.",
                    "required": true
                },
                "tags": [
                    "RuleService"
                ]
            }
        },
        "/api/v1/rules/batchUnarchive": {
            "post": {
                "summary": "BatchUnarchiveRules",
                "description": "Batch unarchives rules.",
                "operationId": "RuleService_BatchUnarchiveRules",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1BatchUnarchiveRulesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1BatchUnarchiveRulesRequest"
                            }
                        }
                    },
                    "description": "BatchUnarchiveRulesRequest is used to unarchive a rule by rule_id or client_key. For each rule if both are provided, only rule_id will be used.",
                    "required": true
                },
                "tags": [
                    "RuleService"
                ]
            }
        },
        "/api/v1/rules/batchUndelete": {
            "post": {
                "summary": "BatchUndeleteRules",
                "description": "Deprecated: Use BatchUnarchiveRules instead.",
                "operationId": "RuleService_BatchUndeleteRules",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1BatchUndeleteRulesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1BatchUndeleteRulesRequest"
                            }
                        }
                    },
                    "description": "BatchUndeleteRulesRequest is used to restore a rule by rule_id or client_key. For each rule if both are provided, only rule_id will be used.",
                    "required": true
                },
                "tags": [
                    "RuleService"
                ]
            }
        },
        "/api/v1/rules/delete": {
            "post": {
                "summary": "DeleteRule",
                "description": "Archives a rule. Deprecated: Use ArchiveRule instead.",
                "operationId": "RuleService_DeleteRule",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1DeleteRuleResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1DeleteRuleRequest"
                            }
                        }
                    },
                    "description": "DeleteRuleRequest is used to delete a rule by rule_id or client_key. If both are provided, only rule_id will be used.",
                    "required": true
                },
                "tags": [
                    "RuleService"
                ]
            }
        },
        "/api/v1/rules/evaluate": {
            "post": {
                "summary": "EvaluateRules",
                "description": "Evaluates the provided rules and generate annotations based on the result.",
                "operationId": "RuleService_EvaluateRules",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/siftrulesv1EvaluateRulesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/siftrulesv1EvaluateRulesRequest"
                            }
                        }
                    },
                    "description": "Deprecated - use RuleEvaluationService instead.",
                    "required": true
                },
                "tags": [
                    "RuleService"
                ]
            }
        },
        "/api/v1/rules/evaluate-rules": {
            "post": {
                "summary": "EvaluateRules",
                "description": "Evaluate rules from a designated source against a run or asset and return the total amount of annotations created and the ID of the generated report.",
                "operationId": "RuleEvaluationService_EvaluateRules",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/siftrule_evaluationv1EvaluateRulesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/siftrule_evaluationv1EvaluateRulesRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "RuleEvaluationService"
                ]
            }
        },
        "/api/v1/rules/evaluate-rules:preview": {
            "post": {
                "summary": "EvaluateRulesPreview",
                "description": "Perform a dry run evaluation for existing rules or rule configurations against a run and return the annotations that would be generated.",
                "operationId": "RuleEvaluationService_EvaluateRulesPreview",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1EvaluateRulesPreviewResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1EvaluateRulesPreviewRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "RuleEvaluationService"
                ]
            }
        },
        "/api/v1/rules/search": {
            "post": {
                "summary": "SearchRules",
                "description": "Queries rules based on provided search parameters.",
                "operationId": "RuleService_SearchRules",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1SearchRulesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1SearchRulesRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "RuleService"
                ]
            }
        },
        "/api/v1/rules/unarchive": {
            "post": {
                "summary": "UnarchiveRule",
                "description": "Unarchives a rule.",
                "operationId": "RuleService_UnarchiveRule",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UnarchiveRuleResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1UnarchiveRuleRequest"
                            }
                        }
                    },
                    "description": "UnarchiveRuleRequest is used to unarchive a rule by rule_id or client_key. If both are provided, only rule_id will be used.",
                    "required": true
                },
                "tags": [
                    "RuleService"
                ]
            }
        },
        "/api/v1/rules/undelete": {
            "post": {
                "summary": "UndeleteRule",
                "description": "Deprecated: Use UnarchiveRule instead.",
                "operationId": "RuleService_UndeleteRule",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UndeleteRuleResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1UndeleteRuleRequest"
                            }
                        }
                    },
                    "description": "UndeleteRuleRequest is used to undelete a rule by rule_id or client_key. If both are provided, only rule_id will be used.",
                    "required": true
                },
                "tags": [
                    "RuleService"
                ]
            }
        },
        "/api/v1/rules/{ruleId}/versions": {
            "get": {
                "summary": "ListRuleVersions",
                "description": "Retrieves a list of rule versions for the given rule.",
                "operationId": "RuleService_ListRuleVersions",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListRuleVersionsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "ruleId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "pageSize",
                        "description": "The maximum number of Rule Versions to return.\nThe service may return fewer than this value.\nIf unspecified, at most 50 Rule Versions will be returned.\nThe maximum value is 1000; values above 1000 will be coerced to 1000.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListRuleVersions` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListRuleVersions` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `rule_version_id`, `user_notes`,  and `change_message`.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "RuleService"
                ]
            }
        },
        "/api/v1/rules:batchGet": {
            "post": {
                "summary": "BatchGetRules",
                "description": "Retrieves multiple rules.",
                "operationId": "RuleService_BatchGetRules",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1BatchGetRulesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1BatchGetRulesRequest"
                            }
                        }
                    },
                    "description": "BatchGetRulesRequest is used to retrieve rules by rule_ids or client_keys. If both are provided, both will be used to retrieve rules.",
                    "required": true
                },
                "tags": [
                    "RuleService"
                ]
            }
        },
        "/api/v1/rules:batchGetVersions": {
            "post": {
                "summary": "BatchGetRuleVersions",
                "description": "Retrieves multiple rules by rule versions.",
                "operationId": "RuleService_BatchGetRuleVersions",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1BatchGetRuleVersionsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1BatchGetRuleVersionsRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "RuleService"
                ]
            }
        },
        "/api/v1/rules:batchUpdate": {
            "put": {
                "summary": "BatchUpdateRules",
                "description": "Updates existing rules or creates rules that do not exist.",
                "operationId": "RuleService_BatchUpdateRules",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1BatchUpdateRulesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1BatchUpdateRulesRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "RuleService"
                ]
            }
        },
        "/api/v1/rules:list": {
            "get": {
                "summary": "ListRules",
                "description": "Retrieves a list of rules.",
                "operationId": "RuleService_ListRules",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListRulesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of Rules to return.\nThe service may return fewer than this value.\nIf unspecified, at most 50 Rules will be returned.\nThe maximum value is 1000; values above 1000 will be coerced to 1000.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListRules` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListRules` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "Optional. A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. Available\nfields: `rule_id`, `client_key`, `name`, `description`, `is_external`, `asset_id`, `tag_id`, `created_date`,\n`created_by_user_id`, `metadata`, `modified_date`, `modified_by_user_id`, `deleted_date`, `is_archived`,\n`archived_date`, and `is_live_evaluation_enabled`.\n\n`asset_id` matches any Rule that has the given Asset among its configured Assets, not only Rules scoped\nexclusively to that Asset.\n\nMetadata fields: use `metadata.{metadata_key_name}` as the field name.\n\nFolder membership is filterable via the `folders` and `activeFolders` fields. Both contain the IDs of the\nfolders the Rule belongs to; `activeFolders` excludes archived folders. Use `\"<folder_id>\" in folders` to\nreturn Rules in the given folder, and `size(activeFolders) == 0` to return uncategorized Rules (Rules whose\nonly memberships are in archived folders count as uncategorized).\n\nFor further information about how to use CEL, refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved Rules. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `created_date` and `modified_date`.\nIf left empty, items are ordered by `created_date` in descending order (newest-first).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "RuleService"
                ]
            }
        },
        "/api/v1/rules:updateHumanFriendly": {
            "post": {
                "summary": "UpdateHumanFriendlyRules",
                "description": "Batch update rules given the `rules_json` which is a JSON list of rules.",
                "operationId": "RuleService_UpdateHumanFriendlyRules",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UpdateHumanFriendlyRulesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1UpdateHumanFriendlyRulesRequest"
                            }
                        }
                    },
                    "description": "Deprecated - use UpdateJsonRulesRequest.",
                    "required": true
                },
                "tags": [
                    "RuleService"
                ]
            }
        },
        "/api/v1/rules:updateJson": {
            "post": {
                "summary": "UpdateJsonRules",
                "description": "Batch update rules given the `rules_json` which is a JSON list of rules.",
                "operationId": "RuleService_UpdateJsonRules",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UpdateJsonRulesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1UpdateJsonRulesRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "RuleService"
                ]
            }
        },
        "/api/v1/rules:validateJson": {
            "post": {
                "summary": "ValidateJsonRules",
                "description": "Validate a batch update for rules given the `rules_json` which is a JSON list of rules.",
                "operationId": "RuleService_ValidateJsonRules",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ValidateJsonRulesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1ValidateJsonRulesRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "RuleService"
                ]
            }
        },
        "/api/v1/rules:version": {
            "get": {
                "summary": "GetRuleVersion",
                "description": "Retrieves a specific version of a rule.",
                "operationId": "RuleService_GetRuleVersion",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetRuleVersionResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "ruleVersionId",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "RuleService"
                ]
            }
        },
        "/api/v1/rules:viewHumanFriendly": {
            "get": {
                "summary": "ViewHumanFriendlyRules",
                "description": "Retrieve a JSON object containing all of the rules for a given asset.",
                "operationId": "RuleService_ViewHumanFriendlyRules",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ViewHumanFriendlyRulesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "assetId",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "RuleService"
                ]
            }
        },
        "/api/v1/rules:viewJson": {
            "get": {
                "summary": "ViewJsonRules",
                "description": "Retrieve a JSON object containing all of the rules for a given asset.",
                "operationId": "RuleService_ViewJsonRules",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ViewJsonRulesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "assetId",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "RuleService"
                ]
            }
        },
        "/api/v1/saved_searches": {
            "get": {
                "summary": "ListSavedSearches",
                "description": "List saved searches.",
                "operationId": "SavedSearchService_ListSavedSearches",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListSavedSearchesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of saved searches to return. The service may return fewer than this value.\nIf unspecified, at most 50 saved searches will be returned. The maximum value is 1000; values above\n1000 will be coerced to 1000. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListSavedSearches` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListSavedSearches` must match\nthe call that provided the page token. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are 'name', 'saved_search_id', and 'overview_mode'.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "organizationId",
                        "description": "This field is only required if your user belongs to multiple organizations.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved saved searches. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `name`, `created_date`, and `modified_date`.\nIf left empty, items are ordered by `created_date` in ascending order (oldest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc,modified_date\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "SavedSearchService"
                ]
            },
            "post": {
                "summary": "CreateSavedSearch",
                "description": "Create a saved search.",
                "operationId": "SavedSearchService_CreateSavedSearch",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CreateSavedSearchResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1CreateSavedSearchRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `SavedSearchService_CreateSavedSearch` to create a saved search.",
                    "required": true
                },
                "tags": [
                    "SavedSearchService"
                ]
            },
            "patch": {
                "summary": "UpdateSavedSearch",
                "description": "Updates an existing saved search using using the list of fields specified in `update_mask`.",
                "operationId": "SavedSearchService_UpdateSavedSearch",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UpdateSavedSearchResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1UpdateSavedSearchRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `SavedSearchService_UpdateSavedSearch` to update a saved search.",
                    "required": true
                },
                "tags": [
                    "SavedSearchService"
                ]
            }
        },
        "/api/v1/saved_searches/{savedSearchId}": {
            "get": {
                "summary": "GetSavedSearch",
                "description": "Retrieve a saved search.",
                "operationId": "SavedSearchService_GetSavedSearch",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetSavedSearchResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "savedSearchId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "SavedSearchService"
                ]
            },
            "delete": {
                "summary": "DeleteSavedSearch",
                "description": "Delete a saved search.",
                "operationId": "SavedSearchService_DeleteSavedSearch",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1DeleteSavedSearchResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "savedSearchId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "SavedSearchService"
                ]
            }
        },
        "/api/v1/saved_searches:batchDelete": {
            "post": {
                "summary": "BatchDeleteSavedSearches",
                "description": "Batch delete saved searches.",
                "operationId": "SavedSearchService_BatchDeleteSavedSearches",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1BatchDeleteSavedSearchesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1BatchDeleteSavedSearchesRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `SavedSearchService_BatchDeleteSavedSearches` to delete saved searches.",
                    "required": true
                },
                "tags": [
                    "SavedSearchService"
                ]
            }
        },
        "/api/v1/tags": {
            "get": {
                "summary": "ListTags v1",
                "description": "Retrieves tags using an optional filter.",
                "operationId": "TagService_ListTags",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/tagsv1ListTagsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of tags to return.\nThe service may return fewer than this value.\nIf unspecified, at most 50 tags will be returned.\nThe maximum value is 1000; values above 1000 will be coerced to 1000.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListTags` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListTags` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string\nAvailable fields to filter by are 'name' and 'tag_id'.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).\nFor more information about the fields used for filtering, please refer to [this definition](/protocol-buffers/documentation#tag). Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "name",
                        "description": "Alias for `filter`. The web-client is unable to use `filter` so please use `name` for the\ncode generated via RTK.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "TagService"
                ]
            },
            "post": {
                "summary": "CreateTag v1",
                "description": "Create a tag.",
                "operationId": "TagService_CreateTag",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/tagsv1CreateTagResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/tagsv1CreateTagRequest"
                            }
                        }
                    },
                    "description": "The request for a call to TagService.CreateTag.",
                    "required": true
                },
                "tags": [
                    "TagService"
                ]
            }
        },
        "/api/v1/test-measurements": {
            "get": {
                "summary": "ListTestMeasurements",
                "description": "Lists test measurements with optional filtering",
                "operationId": "TestReportService_ListTestMeasurements",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListTestMeasurementsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of test measurements to return.\nThe service may return fewer than this value.\nIf unspecified, at most 50 test measurements will be returned.\nThe maximum value is 1000; values above 1000 will be coerced to 1000.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListTestMeasurements` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListTestMeasurements` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `measurement_id`, `measurement_type`, `name`, `test_step_id`,\n`test_report_id`, `numeric_value`, `string_value`, `boolean_value`, `passed`, `timestamp`,\n`created_date`, `modified_date`, and `metadata`.\nMetadata can be used in filters by using `metadata.{metadata_key_name}` as the field name.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved test measurements. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `measurement_id`, `name`, `measurement_type`, `test_step_id`, `test_report_id`,\n`passed`, `timestamp`, `created_date`, and `modified_date`.\nIf left empty, items are ordered by `timestamp` in ascending order.\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"timestamp asc,name\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "TestReportService"
                ]
            },
            "post": {
                "summary": "CreateTestMeasurement",
                "description": "Creates a test measurement",
                "operationId": "TestReportService_CreateTestMeasurement",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CreateTestMeasurementResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1CreateTestMeasurementRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "TestReportService"
                ]
            },
            "patch": {
                "summary": "UpdateTestMeasurement",
                "description": "Updates a test measurement",
                "operationId": "TestReportService_UpdateTestMeasurement",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UpdateTestMeasurementResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1UpdateTestMeasurementRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "TestReportService"
                ]
            }
        },
        "/api/v1/test-measurements/count": {
            "get": {
                "summary": "CountTestMeasurements",
                "description": "Counts test measurements with optional filtering",
                "operationId": "TestReportService_CountTestMeasurements",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CountTestMeasurementsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `measurement_id`, `measurement_type`, `name`, `test_step_id`,\n`test_report_id`, `numeric_value`, `string_value`, `boolean_value`, `passed`, `timestamp`,\n`created_date`, `modified_date`, and `metadata`.\nMetadata can be used in filters by using `metadata.{metadata_key_name}` as the field name.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "TestReportService"
                ]
            }
        },
        "/api/v1/test-measurements/{measurementId}": {
            "delete": {
                "summary": "DeleteTestMeasurement",
                "description": "Deletes a test measurement",
                "operationId": "TestReportService_DeleteTestMeasurement",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1DeleteTestMeasurementResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "measurementId",
                        "description": "The ID of the test measurement to delete",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "TestReportService"
                ]
            }
        },
        "/api/v1/test-measurements:batch": {
            "post": {
                "summary": "CreateTestMeasurements",
                "description": "Creates multiple test measurements in a single request",
                "operationId": "TestReportService_CreateTestMeasurements",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CreateTestMeasurementsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1CreateTestMeasurementsRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "TestReportService"
                ]
            }
        },
        "/api/v1/test-reports": {
            "get": {
                "summary": "ListTestReports",
                "description": "Lists test reports with optional filtering",
                "operationId": "TestReportService_ListTestReports",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListTestReportsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of test reports to return.\nThe service may return fewer than this value.\nIf unspecified, at most 50 test reports will be returned.\nThe maximum value is 1000; values above 1000 will be coerced to 1000.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListTestReports` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListTestReports` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `test_report_id`, `status`, `name`, `test_system_name`,\n`test_case`, `start_time`, `end_time`, `serial_number`, `created_by_user_id`, `modified_by_user_id`,\n`part_number`, `system_operator`, `run_id`, `archived_date`, and `metadata`.\nMetadata can be used in filters by using `metadata.{metadata_key_name}` as the field name.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved test reports. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `test_report_id`, `name`, `test_system_name`, `test_case`, `start_time`, `end_time`,\n`created_date`, and `modified_date`.\nIf left empty, items are ordered by `start_time` in descending order (newest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"start_time desc,name\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "TestReportService"
                ]
            },
            "post": {
                "summary": "CreateTestReport",
                "description": "Creates a test report",
                "operationId": "TestReportService_CreateTestReport",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CreateTestReportResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1CreateTestReportRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "TestReportService"
                ]
            },
            "patch": {
                "summary": "UpdateTestReport",
                "description": "Updates a test report",
                "operationId": "TestReportService_UpdateTestReport",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UpdateTestReportResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1UpdateTestReportRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "TestReportService"
                ]
            }
        },
        "/api/v1/test-reports/{testReportId}": {
            "get": {
                "summary": "GetTestReport",
                "description": "Gets a single test report",
                "operationId": "TestReportService_GetTestReport",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetTestReportResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "testReportId",
                        "description": "The ID of the test report to get",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "includeOverallModifiedDate",
                        "description": "When true, populate TestReport.overall_modified_date. This requires an aggregate over\nthe report's steps and measurements, so it is opt-in.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "tags": [
                    "TestReportService"
                ]
            },
            "delete": {
                "summary": "DeleteTestReport",
                "description": "Deletes a test report",
                "operationId": "TestReportService_DeleteTestReport",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1DeleteTestReportResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "testReportId",
                        "description": "The ID of the test report to delete",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "TestReportService"
                ]
            }
        },
        "/api/v1/test-reports:import": {
            "post": {
                "summary": "ImportTestReport",
                "description": "Imports a test report from an already-uploaded file.",
                "operationId": "TestReportService_ImportTestReport",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ImportTestReportResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1ImportTestReportRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "TestReportService"
                ]
            }
        },
        "/api/v1/test-steps": {
            "get": {
                "summary": "ListTestSteps",
                "description": "Lists test steps with optional filtering",
                "operationId": "TestReportService_ListTestSteps",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListTestStepsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of test steps to return.\nThe service may return fewer than this value.\nIf unspecified, at most 50 test steps will be returned.\nThe maximum value is 1000; values above 1000 will be coerced to 1000.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListTestSteps` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListTestSteps` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `test_step_id`, `test_report_id`, `parent_step_id`, `name`,\n`description`, `step_type`, `step_path`, `status`, `start_time`, `end_time`,\n`error_code`, `error_message`, `created_date`, `modified_date`, and `metadata`.\nMetadata can be used in filters by using `metadata.{metadata_key_name}` as the field name.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved test steps. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `test_step_id`, `name`, `step_type`, `step_path`, `status`,\n`start_time`, `end_time`, `created_date`, and `modified_date`.\nIf left empty, items are ordered by `step_path` in ascending order.\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"step_path asc,start_time desc\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "TestReportService"
                ]
            },
            "post": {
                "summary": "CreateTestStep",
                "description": "Creates a test step",
                "operationId": "TestReportService_CreateTestStep",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CreateTestStepResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1CreateTestStepRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "TestReportService"
                ]
            },
            "patch": {
                "summary": "UpdateTestStep",
                "description": "Updates a test step",
                "operationId": "TestReportService_UpdateTestStep",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UpdateTestStepResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1UpdateTestStepRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "TestReportService"
                ]
            }
        },
        "/api/v1/test-steps/count": {
            "get": {
                "summary": "CountTestSteps",
                "description": "Counts test steps with optional filtering",
                "operationId": "TestReportService_CountTestSteps",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CountTestStepsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `test_step_id`, `test_report_id`, `parent_step_id`, `name`,\n`description`, `step_type`, `step_path`, `status`, `start_time`, `end_time`,\n`error_code`, `error_message`, `created_date`, `modified_date`, and `metadata`.\nMetadata can be used in filters by using `metadata.{metadata_key_name}` as the field name.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "TestReportService"
                ]
            }
        },
        "/api/v1/test-steps/{testStepId}": {
            "delete": {
                "summary": "DeleteTestStep",
                "description": "Deletes a test step",
                "operationId": "TestReportService_DeleteTestStep",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1DeleteTestStepResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "testStepId",
                        "description": "The ID of the test step to delete",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "TestReportService"
                ]
            }
        },
        "/api/v1/user-defined-functions": {
            "get": {
                "summary": "ListUserDefinedFunctions",
                "description": "Retrieve the latest versions of user defined functions based on an optional filter.",
                "operationId": "UserDefinedFunctionService_ListUserDefinedFunctions",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListUserDefinedFunctionsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of user defined functions to return. The service may return fewer than this value.\nIf unspecified, at most 50 user defined functions will be returned. The maximum value is 1000; values above\n1000 will be coerced to 1000. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListUserDefinedFunctions` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListUserDefinedFunctions` must match\nthe call that provided the page token. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `user_defined_function_id`, `name`, `archived_date`, and `is_archived`.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved user defined functions. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `created_date`, `modified_date`, and `name`.\nIf left empty, items are ordered by `created_date` in descending order (newest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc,modified_date\".",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "UserDefinedFunctionService"
                ]
            },
            "post": {
                "summary": "CreateUserDefinedFunction",
                "description": "Create a user defined function.",
                "operationId": "UserDefinedFunctionService_CreateUserDefinedFunction",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CreateUserDefinedFunctionResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1CreateUserDefinedFunctionRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "UserDefinedFunctionService"
                ]
            },
            "patch": {
                "summary": "UpdateUserDefinedFunction",
                "description": "Update and create a new version of a user defined function.",
                "operationId": "UserDefinedFunctionService_UpdateUserDefinedFunction",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UpdateUserDefinedFunctionResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1UpdateUserDefinedFunctionRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `UserDefinedFunctionService_UpdateUserDefinedFunction` to update a user defined function. Updating a user\ndefined function creates a new version of the user defined function, leaving the previous untouched. If no update is deemed necessary, then the\nthe current version is returned. If name is changed then only name will be changed. If archive date is changed then only archive date will be changed.\nTo archive user defined function, specify `archived_date` in the `update mask` as well as a non-null value for `archived_date` in the\n`user_defined_function` object. To unarchive a user defined function, specify `archived_date` in the `update mask` and a `null` value for `archived_date`\nin the `user_defined_function` object. Alternatively, use `is_archived` with a boolean value to archive/unarchive.",
                    "required": true
                },
                "tags": [
                    "UserDefinedFunctionService"
                ]
            }
        },
        "/api/v1/user-defined-functions/dependents": {
            "get": {
                "summary": "GetUserDefinedFunctionDependents",
                "description": "Retrieve dependents of a user defined function.",
                "operationId": "UserDefinedFunctionService_GetUserDefinedFunctionDependents",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetUserDefinedFunctionDependentsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "userDefinedFunctionId",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "userDefinedFunctionName",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "userDefinedFunctionVersionId",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "UserDefinedFunctionService"
                ]
            }
        },
        "/api/v1/user-defined-functions/updatable-fields": {
            "post": {
                "summary": "CheckUpdatableFields",
                "description": "Check if given update paths are allowed to update for the user defined function",
                "operationId": "UserDefinedFunctionService_CheckUpdatableFields",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CheckUpdatableFieldsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "userDefinedFunctionId",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "updateMask",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "UserDefinedFunctionService"
                ]
            }
        },
        "/api/v1/user-defined-functions/versions": {
            "get": {
                "summary": "GetUserDefinedFunctionVersions",
                "description": "Retrieve versions of user defined functions.",
                "operationId": "UserDefinedFunctionService_GetUserDefinedFunctionVersions",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetUserDefinedFunctionVersionsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "userDefinedFunctionVersionIds",
                        "in": "query",
                        "required": true,
                        "explode": true,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    }
                ],
                "tags": [
                    "UserDefinedFunctionService"
                ]
            }
        },
        "/api/v1/user-defined-functions/versions/{userDefinedFunctionVersionId}": {
            "get": {
                "summary": "GetUserDefinedFunctionVersion",
                "description": "Retrieve a specific version of a user defined function.",
                "operationId": "UserDefinedFunctionService_GetUserDefinedFunctionVersion",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetUserDefinedFunctionVersionResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "userDefinedFunctionVersionId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "UserDefinedFunctionService"
                ]
            }
        },
        "/api/v1/user-defined-functions/{userDefinedFunctionId}": {
            "get": {
                "summary": "GetUserDefinedFunction",
                "description": "Retrieve the latest version of a user defined function.",
                "operationId": "UserDefinedFunctionService_GetUserDefinedFunction",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetUserDefinedFunctionResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "userDefinedFunctionId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "UserDefinedFunctionService"
                ]
            }
        },
        "/api/v1/user-defined-functions/{userDefinedFunctionId}/versions": {
            "get": {
                "summary": "ListUserDefinedFunctionVersions",
                "description": "List versions of a particular user defined function with an optional filter.",
                "operationId": "UserDefinedFunctionService_ListUserDefinedFunctionVersions",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListUserDefinedFunctionVersionsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "userDefinedFunctionId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "pageSize",
                        "description": "The maximum number of user defined function versions to return. The service may return fewer than this value.\nIf unspecified, at most 50 user defined function versions will be returned. The maximum value is 1000; values above\n1000 will be coerced to 1000. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListUserDefinedFunctions` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListUserDefinedFunctions` must match\nthe call that provided the page token. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `user_defined_function_id`, `name`, `version`, `archived_date`, and `is_archived`.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved user defined functions. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `version`, `created_date`, and `modified_date`.\nIf left empty, items are ordered by `version` in descending order (newest version first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"version desc,created_date\".",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "UserDefinedFunctionService"
                ]
            }
        },
        "/api/v1/user-defined-functions:validate": {
            "post": {
                "summary": "ValidateUserDefinedFunction",
                "description": "Validates a potential user defined function.",
                "operationId": "UserDefinedFunctionService_ValidateUserDefinedFunction",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ValidateUserDefinedFunctionResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1ValidateUserDefinedFunctionRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "UserDefinedFunctionService"
                ]
            }
        },
        "/api/v1/views": {
            "get": {
                "summary": "ListViews v1",
                "description": "Retrieves views using an optional filter.",
                "operationId": "ViewService_ListViews",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/viewsv1ListViewsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of views to return.\nThe service may return fewer than this value.\nIf unspecified, at most 50 views will be returned.\nThe maximum value is 1000; values above 1000 will be coerced to 1000.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListViews` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListViews` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string\nAvailable fields to filter by are 'name', 'createdDate', and 'modifiedDate'.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ViewService"
                ]
            },
            "post": {
                "summary": "CreateView v1",
                "description": "Creates a view.",
                "operationId": "ViewService_CreateView",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/viewsv1CreateViewResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/viewsv1View"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "ViewService"
                ]
            }
        },
        "/api/v1/views/{view.viewId}": {
            "patch": {
                "summary": "UpdateView v1",
                "description": "Updates an existing view using using the list of fields specified in `update_mask`.",
                "operationId": "ViewService_UpdateView",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/viewsv1UpdateViewResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "view.viewId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "view": {
                                        "type": "object",
                                        "properties": {
                                            "name": {
                                                "type": "string"
                                            },
                                            "axisGroups": {
                                                "$ref": "#/components/schemas/viewsv1ViewAxisGroups"
                                            },
                                            "channels": {
                                                "type": "array",
                                                "items": {
                                                    "$ref": "#/components/schemas/viewsv1ViewChannel"
                                                }
                                            },
                                            "createdDate": {
                                                "type": "string",
                                                "format": "date-time"
                                            },
                                            "modifiedDate": {
                                                "type": "string",
                                                "format": "date-time"
                                            },
                                            "createdByUserId": {
                                                "type": "string"
                                            },
                                            "organizationId": {
                                                "type": "string"
                                            },
                                            "modifiedByUserId": {
                                                "type": "string"
                                            },
                                            "isPinned": {
                                                "type": "boolean"
                                            }
                                        }
                                    },
                                    "updateMask": {
                                        "type": "string",
                                        "description": "The list of fields to update."
                                    }
                                }
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "ViewService"
                ]
            }
        },
        "/api/v1/views/{viewId}": {
            "get": {
                "summary": "GetView v1",
                "description": "Retrieves a view.",
                "operationId": "ViewService_GetView",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/viewsv1GetViewResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "viewId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ViewService"
                ]
            },
            "delete": {
                "summary": "DeleteView v1",
                "description": "Deletes a view.",
                "operationId": "ViewService_DeleteView",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/viewsv1DeleteViewResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "viewId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ViewService"
                ]
            }
        },
        "/api/v1/views/{viewId}/pin": {
            "patch": {
                "summary": "PinView v1",
                "description": "Pins a view.",
                "operationId": "ViewService_PinView",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/viewsv1PinViewResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "viewId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "$ref": "#/components/requestBodies/ViewService_PinViewBody"
                },
                "tags": [
                    "ViewService"
                ],
                "externalDocs": {
                    "description": "Learn more about pinning views.",
                    "url": "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/295436289"
                }
            }
        },
        "/api/v1/views/{viewId}/unpin": {
            "patch": {
                "summary": "UnpinView v1",
                "description": "Unpins a view.",
                "operationId": "ViewService_UnpinView",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/viewsv1UnpinViewResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "viewId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "$ref": "#/components/requestBodies/ViewService_PinViewBody"
                },
                "tags": [
                    "ViewService"
                ],
                "externalDocs": {
                    "description": "Learn more about pinning views.",
                    "url": "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/295436289"
                }
            }
        },
        "/api/v1/views:applicable": {
            "get": {
                "summary": "Lists views that apply to assets/runs.",
                "operationId": "ViewService_ListApplicableViews",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/viewsv1ListApplicableViewsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of views to return.\nThe service may return fewer than this value.\nIf unspecified, at most 50 views will be returned.\nThe maximum value is 1000; values above 1000 will be coerced to 1000.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListApplicableViews` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListApplicableViews` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "assetIds",
                        "in": "query",
                        "required": false,
                        "explode": true,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    },
                    {
                        "name": "runIds",
                        "in": "query",
                        "required": false,
                        "explode": true,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    }
                ],
                "tags": [
                    "ViewService"
                ]
            }
        },
        "/api/v1/webhooks": {
            "get": {
                "summary": "ListWebhooks",
                "description": "Retrieve and optionally filter a list of webhooks.",
                "operationId": "WebhookService_ListWebhooks",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListWebhooksResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of webhooks to return.\nThe service may return fewer than this value.\nIf unspecified, at most 50 runs will be returned.\nThe maximum value is 1000.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListWebhooks` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListWebhooks` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `webhook_id`, `name`, `event_type`, `is_archived`, and `archived_date`.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved webhooks. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable field to order_by is `created_date`.\nIf left empty, items are ordered by `created_date` in ascending order (oldest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "WebhookService"
                ]
            },
            "post": {
                "summary": "CreateWebhook",
                "description": "Create a webhook.",
                "operationId": "WebhookService_CreateWebhook",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CreateWebhookResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1CreateWebhookRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `WebhookService_CreateWebhook` to create a webhook.",
                    "required": true
                },
                "tags": [
                    "WebhookService"
                ]
            },
            "patch": {
                "summary": "UpdateWebhook",
                "description": "Update select fields of an existing webhook.",
                "operationId": "WebhookService_UpdateWebhook",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1UpdateWebhookResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1UpdateWebhookRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `WebhookService_UpdateWebhook` to update a webhook.",
                    "required": true
                },
                "tags": [
                    "WebhookService"
                ]
            }
        },
        "/api/v1/webhooks/logs": {
            "get": {
                "summary": "ListWebhookLogs",
                "description": "Retrieve and optionally filter a list of webhook logs.",
                "operationId": "WebhookService_ListWebhookLogs",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ListWebhookLogsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of webhook logs to return.\nThe service may return fewer than this value.\nIf unspecified, at most 50 runs will be returned.\nThe maximum value is 1000.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListWebhookLogs` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListWebhookLogs` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nThe available fields to filter by are `webhook_id`, `status`.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved webhook logs. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable field to order_by is `created_date`.\nIf left empty, items are ordered by `created_date` in ascending order (oldest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "WebhookService"
                ]
            }
        },
        "/api/v1/webhooks/logs:batch-create": {
            "post": {
                "summary": "BatchCreateWebhookLogs",
                "description": "Create a batch of webhook logs. Users should not have to call this directly.",
                "operationId": "WebhookService_BatchCreateWebhookLogs",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1BatchCreateWebhookLogsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1BatchCreateWebhookLogsRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `WebhookService_BatchCreateWebhookLogs` to create a batch of webhook logs.",
                    "required": true
                },
                "tags": [
                    "WebhookService"
                ]
            }
        },
        "/api/v1/webhooks/signature-key": {
            "get": {
                "summary": "GetWebhookSignatureKey",
                "description": "Retrieve the current webhook signature key. Will return a not found error if one doesn't yet exist.",
                "operationId": "WebhookService_GetWebhookSignatureKey",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetWebhookSignatureKeyResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "organizationId",
                        "description": "Optional organization ID.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "WebhookService"
                ]
            },
            "post": {
                "summary": "CreateOrUpdateWebhookSignatureKey",
                "description": "Create a webhook signature key and set its activation state. If a webhook signature key is active, the bodies of all webhooks will be signed using the signature key with HMAC-SHA-256.The signature generated will then included in the `X-Sift-Signature` HTTP header. Only one key can be held per organization. If an existing key exists, then this will simply return it.See `WebhookService_RotateWebhookSignatureKey` to rotate the key.",
                "operationId": "WebhookService_CreateWebhookSignatureKey",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1CreateWebhookSignatureKeyResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1CreateWebhookSignatureKeyRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `WebhookService_CreateWebhookSignatureKey` to create a webhook signature key.",
                    "required": true
                },
                "tags": [
                    "WebhookService"
                ]
            },
            "put": {
                "summary": "PUT /api/v1/webhooks/signature-key",
                "description": "Generate a new webhook signature key and replace the previous one. The activation state of the new key will match the activation state of the previous.",
                "operationId": "WebhookService_RotateWebhookSignatureKey",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1RotateWebhookSignatureKeyResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1RotateWebhookSignatureKeyRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `WebhookService_RotateWebhookSignatureKey` replace the current webhook signature key\nwith a new one. The activation state of the new signature key will be inherited from the previous key. If no key\nexists then this will return an error - see `WebhookService_CreateWebhookSignatureKey`.",
                    "required": true
                },
                "tags": [
                    "WebhookService"
                ]
            },
            "patch": {
                "summary": "PATCH /api/v1/webhooks/signature-key",
                "description": "Set the activation state of the organization's current webhook signature key. Will return a not found error if one doesn't yet exist.",
                "operationId": "WebhookService_ToggleWebhookSignatureKeyActivation",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1ToggleWebhookSignatureKeyActivationResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1ToggleWebhookSignatureKeyActivationRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `WebhookService_ToggleWebhookSignatureKeyActivation` to enable or disable the current\nwebhook signature key. Set `enable` to `true` to activate the signature key, and `false` to deactivate.",
                    "required": true
                },
                "tags": [
                    "WebhookService"
                ]
            }
        },
        "/api/v1/webhooks/{webhookId}": {
            "get": {
                "summary": "GetWebhook",
                "description": "Retrieve a webhook by ID.",
                "operationId": "WebhookService_GetWebhook",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetWebhookResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "webhookId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "WebhookService"
                ]
            }
        },
        "/api/v1/webhooks:test": {
            "post": {
                "summary": "TestWebhook",
                "description": "Test an existing webhook or a webhook create request. This RPC will attempt to send an actual webhook with the provided parameters and forward back the response from the target.",
                "operationId": "WebhookService_TestWebhook",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1TestWebhookResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v1TestWebhookRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `WebhookService_TestWebhook` to test an existing webhook\nor a webhook create request.",
                    "required": true
                },
                "tags": [
                    "WebhookService"
                ]
            }
        },
        "/api/v2/api-keys": {
            "get": {
                "summary": "ListApiKeys",
                "description": "Retrieves API keys using an optional filter.",
                "operationId": "ApiKeyService_ListApiKeysV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2ListApiKeysResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of api keys to return.\nThe service may return fewer than this value.\nThe maximum value is 1000; values above 1000 will be coerced to 1000.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListApiKeys` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListApiKeys` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `api_key_id`, `user_id`, `created_by_user_id`, and `name`.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved channels. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `name` and `created_date`.\nIf left empty, items are ordered by `created_date` in ascending order (oldest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"name desc,created_date\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ApiKeyService"
                ]
            },
            "post": {
                "summary": "CreateApiKey",
                "description": "Creates an API key.",
                "operationId": "ApiKeyService_CreateApiKeyV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2CreateApiKeyResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v2CreateApiKeyRequest"
                            }
                        }
                    },
                    "description": "The request for a call to ApiKeyService.CreateApiKey.",
                    "required": true
                },
                "tags": [
                    "ApiKeyService"
                ]
            }
        },
        "/api/v2/api-keys/organization": {
            "get": {
                "summary": "ApiKeyOrganization",
                "description": "Retrieves the organization for an API key.",
                "operationId": "ApiKeyService_ApiKeyOrganizationV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2ApiKeyOrganizationResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "tags": [
                    "ApiKeyService"
                ]
            }
        },
        "/api/v2/api-keys/{apiKeyId}": {
            "delete": {
                "summary": "DeleteApiKey",
                "description": "Deletes an API key.",
                "operationId": "ApiKeyService_DeleteApiKeyV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2DeleteApiKeyResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "apiKeyId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ApiKeyService"
                ]
            }
        },
        "/api/v2/calculated-channels": {
            "get": {
                "summary": "ListCalculatedChannels",
                "description": "Retrieve the latest versions of calculated channels based on an optional filter.",
                "operationId": "CalculatedChannelService_ListCalculatedChannels",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2ListCalculatedChannelsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of calculated channels to return. The service may return fewer than this value.\nIf unspecified, at most 50 calculated channels will be returned. The maximum value is 1000; values above\n1000 will be coerced to 1000. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListCalculatedChannels` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListCalculatedChannels` must match\nthe call that provided the page token. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `calculated_channel_id`, `organization_id`, `client_key`, `name`, `description`,\n`asset_id`, `asset_name`, `tag_id`, `tag_name`, `units`, `calculated_channel_version_id`,\n`created_date`, `modified_date`, `created_by_user_id`, `modified_by_user_id`, `is_archived`, and `archived_date`.\nFolder membership is filterable via the `folders` and `activeFolders` fields. Both contain the ids of the folders\nthe calculated channel belongs to; `activeFolders` excludes archived folders. Use `\"<folder_id>\" in folders` to\nreturn calculated channels in the given folder, and `size(activeFolders) == 0` to return uncategorized calculated\nchannels (calculated channels whose only memberships are in archived folders count as uncategorized).\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "organizationId",
                        "description": "This field is only required if your user belongs to multiple organizations.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved calculated channels. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `created_date` and `modified_date`.\nIf left empty, items are ordered by `created_date` in descending order (newest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc,modified_date\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "CalculatedChannelService"
                ]
            },
            "post": {
                "summary": "CreateCalculatedChannel",
                "description": "Create a calculated channel.",
                "operationId": "CalculatedChannelService_CreateCalculatedChannel",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2CreateCalculatedChannelResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v2CreateCalculatedChannelRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "CalculatedChannelService"
                ]
            },
            "patch": {
                "summary": "UpdateCalculatedChannel",
                "description": "Update and create a new version of a calculated channel.",
                "operationId": "CalculatedChannelService_UpdateCalculatedChannel",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2UpdateCalculatedChannelResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v2UpdateCalculatedChannelRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `CalculatedChannelService_UpdateCalculatedChannel` to update a calculated channel. Updating a calculated\nchannel creates a new version of the calculated channel, leaving the previous untouched. If no update is deemed necessary, then the\nthe current version is returned. To archive calculated channel, specify `archived_date` in the `update mask` as well as a non-null\nvalue for `archived_date` in the `calculated_channel` object. To unarchive a calculated channel, specify `archived_date` in the\n`update mask` and a `null` value for `archived_date` in the `calculated_channel` object.",
                    "required": true
                },
                "tags": [
                    "CalculatedChannelService"
                ]
            }
        },
        "/api/v2/calculated-channels/dependents": {
            "get": {
                "summary": "GetCalculatedChannelDependents",
                "description": "Retrieve calculated channels that depend on a given calculated channel.",
                "operationId": "CalculatedChannelService_GetCalculatedChannelDependents",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2GetCalculatedChannelDependentsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "calculatedChannelId",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "calculatedChannelVersionId",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "CalculatedChannelService"
                ]
            }
        },
        "/api/v2/calculated-channels/resolve": {
            "post": {
                "summary": "ResolveCalculatedChannel",
                "description": "Resolve a calculated channel into an expression with references",
                "operationId": "CalculatedChannelService_ResolveCalculatedChannel",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2ResolveCalculatedChannelResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v2ResolveCalculatedChannelRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `CalculatedChannelService_ResolveCalculatedChannel` to get the all possible calculated channels.\n1) If the calculated channel has a selection of assets and tags then those assets will be used as a base and then filtered down by the given assets and assets from the run.\n2) If the calculated channel is enabled for all assets then:\n  a) If the request has run and assets from the run will be used as a base and then filtered down by the given assets.\n  b) If the request has run and no assets then those assets will be used.\n  c) If the request has only assets then those assets will be used.\nThe `organization_id` argument is only required if using `client_key` and the user belongs to multiple organizations.",
                    "required": true
                },
                "tags": [
                    "CalculatedChannelService"
                ]
            }
        },
        "/api/v2/calculated-channels/resolve:batch": {
            "post": {
                "summary": "BatchResolveCalculatedChannel",
                "description": "Resolve a batch of calculated channels into expressions with references",
                "operationId": "CalculatedChannelService_BatchResolveCalculatedChannels",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2BatchResolveCalculatedChannelsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v2BatchResolveCalculatedChannelsRequest"
                            }
                        }
                    },
                    "description": "The request of a call to `CalculatedChannelService_BatchResolveCalculatedChannels`.",
                    "required": true
                },
                "tags": [
                    "CalculatedChannelService"
                ]
            }
        },
        "/api/v2/calculated-channels/resolved": {
            "get": {
                "summary": "ListResolvedCalculatedChannels",
                "description": "Retrieve the latest versions of calculated channels based on an optional filter.",
                "operationId": "CalculatedChannelService_ListResolvedCalculatedChannels",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2ListResolvedCalculatedChannelsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "assetId",
                        "description": "Assets or runs to get the resolved calculated channels for. At least one asset or run must be provided.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "runId",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "pageSize",
                        "description": "The maximum number of calculated channels to return. The service may return fewer than this value.\nIf unspecified, at most 50 calculated channels will be returned. The maximum value is 1000; values above\n1000 will be coerced to 1000. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListCalculatedChannels` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListCalculatedChannels` must match\nthe call that provided the page token. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `calculated_channel_id`, `organization_id`, `client_key`, `name`, `description`,\n`asset_id`, `asset_name`, `tag_id`, `tag_name`, `version`, `units`, `calculated_channel_version_id`,\n`created_date`, `modified_date`, `created_by_user_id`, `modified_by_user_id`, `is_archived`, and `archived_date`.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved calculated channels. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `created_date` and `modified_date`.\nIf left empty, items are ordered by `created_date` in descending order (newest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc,modified_date\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "CalculatedChannelService"
                ]
            }
        },
        "/api/v2/calculated-channels/versions": {
            "get": {
                "summary": "GetCalculatedChannelVersions",
                "description": "Retrieve calculated channel versions by their version IDs.",
                "operationId": "CalculatedChannelService_GetCalculatedChannelVersions",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2GetCalculatedChannelVersionsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "calculatedChannelVersionIds",
                        "in": "query",
                        "required": true,
                        "explode": true,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    }
                ],
                "tags": [
                    "CalculatedChannelService"
                ]
            }
        },
        "/api/v2/calculated-channels/{calculatedChannelId}": {
            "get": {
                "summary": "GetCalculatedChannel by calculatedChannelId",
                "description": "Retrieve the latest version of a calculated channel.",
                "operationId": "CalculatedChannelService_GetCalculatedChannel",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2GetCalculatedChannelResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "calculatedChannelId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "clientKey",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "organizationId",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "calculatedChannelVersionId",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "CalculatedChannelService"
                ]
            }
        },
        "/api/v2/calculated-channels/{calculatedChannelId}/versions": {
            "get": {
                "summary": "ListCalculatedChannelVersions by calculatedChannelId",
                "description": "List versions of a particular calculated channel with an optional filter.",
                "operationId": "CalculatedChannelService_ListCalculatedChannelVersions",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2ListCalculatedChannelVersionsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "calculatedChannelId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "clientKey",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "pageSize",
                        "description": "The maximum number of calculated channel versions to return. The service may return fewer than this value.\nIf unspecified, at most 50 calculated channels will be returned. The maximum value is 1000; values above\n1000 will be coerced to 1000. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListCalculatedChannelVersions` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListCalculatedChannelVersions` must match\nthe call that provided the page token. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `calculated_channel_id`, `organization_id`, `client_key`, `name`, `description`,\n`asset_id`, `asset_name`, `tag_id`, `tag_name`, `version`, `units`, `calculated_channel_version_id`,\n`created_date`, `modified_date`, `created_by_user_id`, `modified_by_user_id`, `is_archived`, and `archived_date`.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "organizationId",
                        "description": "This field is only required if your user belongs to multiple organizations.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved calculated channel versions. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `version`, `created_date`, and `modified_date`.\nIf left empty, items are ordered by `version` in ascending order (oldest version first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc,modified_date\".",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "CalculatedChannelService"
                ]
            }
        },
        "/api/v2/channel-schemas": {
            "post": {
                "summary": "CreateChannelSchema v2",
                "description": "Create a channel schema",
                "operationId": "ChannelSchemaService_CreateChannelSchemaV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/channel_schemasv2CreateChannelSchemaResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/channel_schemasv2CreateChannelSchemaRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `ChannelSchemaService_CreateChannelSchema`.",
                    "required": true
                },
                "tags": [
                    "ChannelSchemaService"
                ]
            }
        },
        "/api/v2/channel-schemas:batch-create": {
            "post": {
                "summary": "BatchCreateChannelSchemas v2",
                "description": "Create a batch of channel schemas",
                "operationId": "ChannelSchemaService_BatchCreateChannelSchemasV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/channel_schemasv2BatchCreateChannelSchemasResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/channel_schemasv2BatchCreateChannelSchemasRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `ChannelSchemaService_BatchCreateChannelSchemas`.",
                    "required": true
                },
                "tags": [
                    "ChannelSchemaService"
                ]
            }
        },
        "/api/v2/channels": {
            "get": {
                "summary": "ListChannels v2",
                "description": "Retrieve channels using an optional filter.",
                "operationId": "ChannelService_ListChannels",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/channelsv2ListChannelsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of channels to return. The service may return fewer than this value.\nIf unspecified, at most 50 channels will be returned. The maximum value is 10,000; values above\n10,000 will be coerced to 10,000. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListChannels` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListChannels` must match\nthe call that provided the page token. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `channel_id`, `asset_id`, `name`, `component`, `description`\n`run_id`, `run_name`, `run_client_key`, `created_date`, and `modified_date`.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "organizationId",
                        "description": "This field is only required if your user belongs to multiple organizations.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved channels. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `created_date` and `modified_date`, `active`.\nIf left empty, items are ordered by `created_date` in ascending order (oldest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc,modified_date\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ChannelService"
                ]
            }
        },
        "/api/v2/channels/{channelId}": {
            "get": {
                "summary": "GetChannel v2",
                "description": "Retrieve a channel.",
                "operationId": "ChannelService_GetChannel",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/channelsv2GetChannelResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "channelId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ChannelService"
                ]
            }
        },
        "/api/v2/data": {
            "post": {
                "summary": "GetData v2",
                "description": "Query data",
                "operationId": "DataService_GetDataV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/datav2GetDataResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/datav2GetDataRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "DataService"
                ]
            }
        },
        "/api/v2/data-imports": {
            "get": {
                "summary": "ListDataImports",
                "description": "Lists all data imports.",
                "operationId": "DataImportService_ListDataImportsV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2ListDataImportsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of data imports to return. The service may return fewer than this value.\nIf unspecified, at most 50 data imports will be returned. The maximum value is 1000; values above\n1000 will be coerced to 1000. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListDataImports` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListDataImports` must match\nthe call that provided the page token. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `data_import_id`, `source_url`, `status`, `run_id`.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved data imports. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `created_date` and `modified_date`.\nIf left empty, items are ordered by `created_date` in ascending order (oldest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc,modified_date\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "DataImportService"
                ]
            }
        },
        "/api/v2/data-imports/{dataImportId}": {
            "get": {
                "summary": "GetDataImport",
                "description": "Gets a data import.",
                "operationId": "DataImportService_GetDataImportV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2GetDataImportResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "dataImportId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "DataImportService"
                ]
            }
        },
        "/api/v2/data-imports/{dataImportId}:retry": {
            "post": {
                "summary": "RetryDataImport",
                "description": "Retries a data import.",
                "operationId": "DataImportService_RetryDataImportV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2RetryDataImportResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "dataImportId",
                        "description": "data_import_id is the id of the data import to retry.\nYou can only retry an import that is a \"url\" based import (created with CreateDataImportFromUrl) and is in a failed state.",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "DataImportService"
                ]
            }
        },
        "/api/v2/data-imports:detect-config": {
            "post": {
                "summary": "DetectConfig",
                "description": "Detects the config for a data import.",
                "operationId": "DataImportService_DetectConfigV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2DetectConfigResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v2DetectConfigRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "DataImportService"
                ]
            }
        },
        "/api/v2/data-imports:upload": {
            "post": {
                "summary": "CreateDataImportFromUpload",
                "description": "Creates a data import from a file upload.",
                "operationId": "DataImportService_CreateDataImportFromUploadV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2CreateDataImportFromUploadResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v2CreateDataImportFromUploadRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "DataImportService"
                ]
            }
        },
        "/api/v2/data-imports:url": {
            "post": {
                "summary": "CreateDataImportFromUrl",
                "description": "Creates a data import from a file hosted at a url.",
                "operationId": "DataImportService_CreateDataImportFromUrlV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2CreateDataImportFromUrlResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v2CreateDataImportFromUrlRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "DataImportService"
                ]
            }
        },
        "/api/v2/dlq-errors": {
            "get": {
                "summary": "List Ingestion Dead Letter Queue Errors",
                "description": "Retrieve Ingestion errors.",
                "operationId": "DlqErrorsService_ListDlqErrorsV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2ListDlqErrorsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of errors values to return.\nThe service may return fewer than this value.\nIf unspecified, at most 50 values will be returned.\nThe maximum value is 1000; values above 1000 will be coerced to 1000.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListDlqErrors` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListDlqErrors` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A Common Expression Language (CEL, https://github.com/google/cel-spec) filter string.\nAvailable tag variables are:\n- min_timestamp\n- max_timestamp\n- asset_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved campaigns. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `min_timestamp`, `max_timestamp`, and `asset_id`.\nIf left empty, items are ordered by `min_timestamp` in ascending order (oldest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"asset_id desc,min_timestamp\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "DlqErrorsService"
                ]
            }
        },
        "/api/v2/ingestion-configs": {
            "get": {
                "summary": "ListIngestionConfigs v2",
                "description": "List ingestion configs using an optional filter.",
                "operationId": "IngestionConfigService_ListIngestionConfigsV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ingestion_configsv2ListIngestionConfigsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of ingestion configs to return. The service may return fewer than this value.\nIf unspecified, at most 50 ingestion configs will be returned. The maximum value is 1000; values above\n1000 will be coerced to 1000. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListIngestionConfigs` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListIngestionConfigs` must match\nthe call that provided the page token. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `ingestion_config_id`, `client_key`, `asset_id`, `created_date`, and `modified_date`.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "IngestionConfigService"
                ]
            },
            "post": {
                "summary": "CreateIngestionConfig v2",
                "description": "Create an ingestion config.",
                "operationId": "IngestionConfigService_CreateIngestionConfigV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ingestion_configsv2CreateIngestionConfigResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ingestion_configsv2CreateIngestionConfigRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `IngestionConfigService_CreateIngestionConfig` to retrieve ingestion configs.",
                    "required": true
                },
                "tags": [
                    "IngestionConfigService"
                ]
            }
        },
        "/api/v2/ingestion-configs/{ingestionConfigId}": {
            "get": {
                "summary": "GetIngestionConfig v2",
                "description": "Retrieves an ingestion config.",
                "operationId": "IngestionConfigService_GetIngestionConfigV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ingestion_configsv2GetIngestionConfigResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "ingestionConfigId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "IngestionConfigService"
                ]
            }
        },
        "/api/v2/ingestion-configs/{ingestionConfigId}/flows": {
            "get": {
                "summary": "ListIngestionConfigFlows v2",
                "description": "List ingestion config flows using an optional filter.",
                "operationId": "IngestionConfigService_ListIngestionConfigFlowsV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ingestion_configsv2ListIngestionConfigFlowsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "ingestionConfigId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "pageSize",
                        "description": "The maximum number of ingestion config flows to return. The service may return fewer than this value.\nIf unspecified, at most 50 ingestion config flows will be returned. The maximum value is 1000; values above\n1000 will be coerced to 1000. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListIngestionConfigFlows` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListIngestionConfigFlows` must match\nthe call that provided the page token. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `flow_name`, `flow_id`, `created_date`, and `modified_date`.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "IngestionConfigService"
                ]
            },
            "post": {
                "summary": "CreateIngestionConfigFlows v2",
                "description": "Create ingestion config flows.",
                "operationId": "IngestionConfigService_CreateIngestionConfigFlowsV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ingestion_configsv2CreateIngestionConfigFlowsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "ingestionConfigId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "flows": {
                                        "type": "array",
                                        "items": {
                                            "$ref": "#/components/schemas/ingestion_configsv2FlowConfig"
                                        },
                                        "description": "These flows must have unique names. If you try to send a flow with a name that already exists for an ingestion config, it will return an error."
                                    }
                                },
                                "description": "The request for a call to `IngestionConfigService_CreateIngestionConfigFlows` to create ingestion config flows."
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "IngestionConfigService"
                ]
            }
        },
        "/api/v2/me": {
            "get": {
                "summary": "Get My User Information",
                "description": "Retrieve a user's information.",
                "operationId": "MeService_GetMeV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2GetMeResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "tags": [
                    "MeService"
                ]
            }
        },
        "/api/v2/protobuf-descriptors": {
            "get": {
                "summary": "ListProtobufDescriptors v2",
                "description": "Retrieve protobuf descriptors using an optional filter.",
                "operationId": "ProtobufDescriptorService_ListProtobufDescriptorsV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/protobuf_descriptorsv2ListProtobufDescriptorsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of protobuf descriptors to return.\nThe service may return fewer than this value.\nIf unspecified, at most 50 protobuf descriptors will be returned.\nThe maximum value is 1000; values above 1000 will be coerced to 1000.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListProtobufDescriptors` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListProtobufDescriptors` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `protobuf_descriptor_id`, `proto_file_name`, `namespace`, and `message_type_full_name`.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved protobuf descriptors. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `created_date`, `modified_date`, and `message_type_full_name` and `namespace`.\nIf left empty, items are ordered by `created_date` in ascending order (oldest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc,modified_date\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ProtobufDescriptorService"
                ]
            },
            "delete": {
                "summary": "DeleteProtobufDescriptors v2",
                "description": "Delete protobuf descriptors of that match the provided `namespace` and `message_type_full_name`.",
                "operationId": "ProtobufDescriptorService_DeleteProtobufDescriptorsV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/protobuf_descriptorsv2DeleteProtobufDescriptorsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "messageTypeFullName",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "namespace",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "organizationId",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "protobufDescriptorId",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ProtobufDescriptorService"
                ]
            }
        },
        "/api/v2/protobuf-descriptors:add": {
            "post": {
                "summary": "AddProtobufDescriptor v2",
                "description": "Used to register a protobuf message to be ingested.",
                "operationId": "ProtobufDescriptorService_AddProtobufDescriptorV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/protobuf_descriptorsv2AddProtobufDescriptorResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/protobuf_descriptorsv2AddProtobufDescriptorRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "ProtobufDescriptorService"
                ]
            }
        },
        "/api/v2/protobuf-descriptors:check-compatibility": {
            "post": {
                "summary": "CheckProtobufDescriptorCompatibility",
                "description": "Used to check if a protobuf descriptor is compatible with the existing descriptors.",
                "operationId": "ProtobufDescriptorService_CheckProtobufDescriptorCompatibilityV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2CheckProtobufDescriptorCompatibilityResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v2CheckProtobufDescriptorCompatibilityRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "ProtobufDescriptorService"
                ]
            }
        },
        "/api/v2/roles": {
            "get": {
                "summary": "ListRoles",
                "description": "Retrieves roles using an optional filter.",
                "operationId": "RoleService_ListRolesV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2ListRolesResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of roles to return.\nThe service may return fewer than this value.\nIf unspecified, at most 50 roles will be returned.\nThe maximum value is 1000; values above 1000 will be coerced to 1000.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListRoles` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListRoles` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `role_id`, `name`, and `description`.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved channels. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `name` and `description`.\nIf left empty, items are ordered by `name` in ascending order (oldest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"name desc,description\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "RoleService"
                ]
            }
        },
        "/api/v2/runs": {
            "get": {
                "summary": "ListRuns",
                "description": "Retrieve runs using an optional filter.",
                "operationId": "RunService_ListRuns",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2ListRunsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of runs to return.\nThe service may return fewer than this value.\nIf unspecified, at most 50 runs will be returned.\nThe maximum value is 1000; values above 1000 will be coerced to 1000.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListRuns` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListRuns` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `run_id` `organization_id`, `asset_id`, `asset_name`, `client_key`, `name`, `description`, `created_by_user_id`, `modified_by_user_id`,\n`created_date`, `modified_date`, `start_time`, `stop_time`, `stopped_date`, `is_stopped`, `tag_id`, `asset_tag_id`, `duration`, 'duration_string', `annotation_comments_count`, `annotation_state`, `archived_date`, `is_archived`,\nand `metadata`. Metadata can be used in filters by using `metadata.{metadata_key_name}` as the field name.\n`duration` is in the format of elapsed seconds and `duration_string` allows for `h`, `m`, `s`, `ms` suffixes (example: `duration_string > duration('10h'))\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved runs. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `name`, `description`, `created_date`, `modified_date`, `start_time`, and `stop_time`.\nIf left empty, items are ordered by `created_date` in descending order (newest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc,modified_date\"\n\nResults can also be ordered by the value of a single metadata key, using the same bracket\nsyntax as `filter`: `metadata[\"<key name>\"][ desc]`. Metadata ordering cannot be combined\nwith other order_by fields, and runs without the key sort last in both directions. Keys\nwith relation-typed values cannot be ordered by.\nExample: `metadata[\"test_scenario\"] desc`",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "RunService"
                ]
            },
            "post": {
                "summary": "CreateRun",
                "description": "Create a run.",
                "operationId": "RunService_CreateRun",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2CreateRunResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v2CreateRunRequest"
                            }
                        }
                    },
                    "description": "The request of a call to `RunService_CreateRuns` to create a new run.",
                    "required": true
                },
                "tags": [
                    "RunService"
                ]
            },
            "patch": {
                "summary": "UpdateRun",
                "description": "Updates an existing run using using the list of fields specified in `update_mask`.",
                "operationId": "RunService_UpdateRun",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2UpdateRunResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v2UpdateRunRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `RunService_UpdateRun` to update an existing run.",
                    "required": true
                },
                "tags": [
                    "RunService"
                ]
            }
        },
        "/api/v2/runs/{runId}": {
            "get": {
                "summary": "GetRun",
                "description": "Retrieve a run.",
                "operationId": "RunService_GetRun",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2GetRunResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "runId",
                        "description": "The ID of the run to retrieve.",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "RunService"
                ]
            },
            "delete": {
                "summary": "DeleteRun",
                "description": "Permanently delete a given run. Deprecated: Use update with is_archived.",
                "operationId": "RunService_DeleteRun",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2DeleteRunResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "runId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "RunService"
                ]
            }
        },
        "/api/v2/runs/{runId}:create-automatic-run-association-for-assets": {
            "post": {
                "summary": "CreateAutomaticRunAssociationForAssets",
                "description": "Associates a list of assets with a given run.",
                "operationId": "RunService_CreateAutomaticRunAssociationForAssets",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2CreateAutomaticRunAssociationForAssetsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "runId",
                        "description": "The ID of the run to associate the asset with.",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "assetNames": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        },
                                        "description": "A list of asset names to automatically associate with the run.\nAny data that is received for these assets will automatically added to the run.\nThis applies even if the run has concluded, so long as the new data contains\ntimestamps that are between the `start_time` and `stop_time`.\nIf any of the assets are already associated with a different run whose run\nperiod (the period between `start_time` and `end_time`) overlaps with the\nrequested run period, an error will be returned."
                                    }
                                },
                                "required": [
                                    "assetNames"
                                ]
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "RunService"
                ]
            }
        },
        "/api/v2/runs:adhoc": {
            "post": {
                "summary": "CreateAdhocRun",
                "description": "Create an adhoc run.",
                "operationId": "RunService_CreateAdhocRun",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2CreateAdhocRunResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v2CreateAdhocRunRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `RunService_CreateAdhocRun` to create an adhoc run.",
                    "required": true
                },
                "tags": [
                    "RunService"
                ]
            }
        },
        "/api/v2/runs:stop": {
            "patch": {
                "summary": "StopRun",
                "description": "Set the stop time of a run to the current time. To set the stop time of a run to an arbitrary time see `UpdateRun`.",
                "operationId": "RunService_StopRun",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2StopRunResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v2StopRunRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `RunService_StopRun` to stop a run.",
                    "required": true
                },
                "tags": [
                    "RunService"
                ]
            }
        },
        "/api/v2/runs:validateFilter": {
            "post": {
                "summary": "ValidateRunFilter",
                "description": "Validates a CEL filter expression against the available run filter fields.",
                "operationId": "RunService_ValidateRunFilter",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2ValidateRunFilterResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v2ValidateRunFilterRequest"
                            }
                        }
                    },
                    "description": "The request for a call to `RunService_ValidateRunFilter`.",
                    "required": true
                },
                "tags": [
                    "RunService"
                ]
            }
        },
        "/api/v2/tags": {
            "get": {
                "summary": "ListTags v2",
                "description": "Retrieves tags using an optional filter.",
                "operationId": "TagService_ListTagsV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/tagsv2ListTagsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of tags to return.\nThe service may return fewer than this value.\nIf unspecified, at most 50 tags will be returned.\nThe maximum value is 1000; values above 1000 will be coerced to 1000.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListTags` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListTags` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string\nAvailable fields to filter by are 'name' and 'tag_id'.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved campaigns. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `created_date` and `name`.\nIf left empty, items are ordered by `created_date` in ascending order (oldest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc,name\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "tagType",
                        "description": "Narrows the tags selected to a specific type.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "TAG_TYPE_UNSPECIFIED",
                                "TAG_TYPE_ANNOTATION",
                                "TAG_TYPE_ASSET",
                                "TAG_TYPE_CAMPAIGN",
                                "TAG_TYPE_REPORT",
                                "TAG_TYPE_REPORT_TEMPLATE",
                                "TAG_TYPE_RUN"
                            ],
                            "default": "TAG_TYPE_UNSPECIFIED"
                        }
                    }
                ],
                "tags": [
                    "TagService"
                ]
            },
            "post": {
                "summary": "CreateTag v2",
                "description": "Create a tag.",
                "operationId": "TagService_CreateTagV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/tagsv2CreateTagResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/tagsv2CreateTagRequest"
                            }
                        }
                    },
                    "description": "The request for a call to TagService.CreateTag.",
                    "required": true
                },
                "tags": [
                    "TagService"
                ]
            }
        },
        "/api/v2/units": {
            "get": {
                "summary": "ListUnits",
                "description": "Used to list units.",
                "operationId": "UnitService_ListUnitsV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2ListUnitsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of units to return.\nThe service may return fewer than this value.\nIf unspecified, at most 50 units will be returned.\nThe maximum value is 1000; values above 1000 will be coerced to 1000.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListUnits` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListUnits` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A Common Expression Language (CEL, https://github.com/google/cel-spec) filter string.\nAvailable tag variables are:\n- abbreviated_name\n- name\n- created_date\n- unit_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved campaigns. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `name`, `created_date`, and `abbreviated_name`.\nIf left empty, items are ordered by `created_date` in ascending order (oldest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc,abbreviated_name\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "UnitService"
                ]
            },
            "post": {
                "summary": "CreateUnit",
                "description": "Used to create a unit.",
                "operationId": "UnitService_CreateUnitV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2CreateUnitResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "name",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "UnitService"
                ]
            }
        },
        "/api/v2/user-groups": {
            "get": {
                "summary": "ListUserGroups",
                "description": "Retrieves user groups using an optional filter.",
                "operationId": "UserGroupService_ListUserGroupsV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2ListUserGroupsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of user groups to return.\nThe service may return fewer than this value.\nIf unspecified, at most 50 will be returned.\nThe maximum value is 1000; values above 1000 will be coerced to 1000.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListUserGroups` call.\nProvide this to retrieve the subsequent page.\n\nWhen paginating, all other parameters provided to `ListUserGroups` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A Common Expression Language (CEL, https://github.com/google/cel-spec) filter string.\nAvailable tag variables are:\n- name",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved user groups. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `name`, `created_date`, and `modified_date`.\nIf left empty, items are ordered by `name` in ascending order (A-Z).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc,modified_date\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "UserGroupService"
                ]
            },
            "post": {
                "summary": "CreateUserGroup",
                "description": "Creates a user group.",
                "operationId": "UserGroupService_CreateUserGroupV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2CreateUserGroupResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v2CreateUserGroupRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "UserGroupService"
                ]
            }
        },
        "/api/v2/user-groups/{userGroup.userGroupId}": {
            "patch": {
                "summary": "UpdateUserGroup",
                "description": "Updates a user group.",
                "operationId": "UserGroupService_UpdateUserGroupV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2UpdateUserGroupResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "userGroup.userGroupId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "userGroup": {
                                        "type": "object",
                                        "properties": {
                                            "name": {
                                                "type": "string"
                                            },
                                            "roleId": {
                                                "type": "string"
                                            },
                                            "isDefault": {
                                                "type": "boolean"
                                            },
                                            "resources": {
                                                "$ref": "#/components/schemas/UserGroupResource"
                                            },
                                            "userIds": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                },
                                                "description": "Member ids for this group. Each id is an actor: a user or a service account."
                                            },
                                            "isExternal": {
                                                "type": "boolean"
                                            }
                                        }
                                    },
                                    "updateMask": {
                                        "type": "string",
                                        "description": "The list of fields to update.\n`users` replaces `user_group.user_ids`. Those ids are actors: users or service accounts."
                                    }
                                },
                                "required": [
                                    "name",
                                    "isDefault",
                                    "isExternal",
                                    "updateMask"
                                ]
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "UserGroupService"
                ]
            }
        },
        "/api/v2/user-groups/{userGroupId}": {
            "get": {
                "summary": "GetUserGroup",
                "description": "Retrieves a user group.",
                "operationId": "UserGroupService_GetUserGroupV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2GetUserGroupResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "userGroupId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "UserGroupService"
                ]
            },
            "delete": {
                "summary": "DeleteUserGroup",
                "description": "Deletes a user group.",
                "operationId": "UserGroupService_DeleteUserGroupV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2DeleteUserGroupResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "userGroupId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "UserGroupService"
                ]
            }
        },
        "/api/v2/user-groups:add-user": {
            "post": {
                "summary": "AddUserToUserGroup",
                "description": "Adds a user to a user group.",
                "operationId": "UserGroupService_AddUserToUserGroupV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2AddUserToUserGroupResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "userGroupId",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "userId",
                        "description": "Actor to add. A user id or a service account id.",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "UserGroupService"
                ]
            }
        },
        "/api/v2/user-groups:get-for-assets": {
            "get": {
                "summary": "GetUserGroupsForAssets",
                "description": "Retrieves user groups for a list of assets.",
                "operationId": "UserGroupService_GetUserGroupsForAssetsV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2GetUserGroupsForAssetsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "assetIds",
                        "in": "query",
                        "required": true,
                        "explode": true,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    }
                ],
                "tags": [
                    "UserGroupService"
                ]
            }
        },
        "/api/v2/user-groups:remove-user": {
            "post": {
                "summary": "RemoveUserFromUserGroup",
                "description": "Removes a user from a user group.",
                "operationId": "UserGroupService_RemoveUserFromUserGroupV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2RemoveUserFromUserGroupResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "userGroupId",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "userId",
                        "description": "Actor to remove. A user id or a service account id.",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "UserGroupService"
                ]
            }
        },
        "/api/v2/user-groups:update-user": {
            "post": {
                "summary": "UpdateUserUserGroups",
                "description": "Updates a user's user groups.",
                "operationId": "UserGroupService_UpdateUserUserGroupsV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2UpdateUserUserGroupsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "userId",
                        "description": "Actor whose groups to replace. A user id or a service account id.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "userGroupIds",
                        "in": "query",
                        "required": false,
                        "explode": true,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    }
                ],
                "tags": [
                    "UserGroupService"
                ]
            }
        },
        "/api/v2/users": {
            "get": {
                "summary": "ListActiveUsers",
                "description": "List active users.",
                "operationId": "UserService_ListActiveUsers",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2ListActiveUsersResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of users to return. The service may return fewer than this value.\nIf unspecified, at most 50 users will be returned. The maximum value is 1000; values above\n1000 will be coerced to 1000. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListActiveUsers` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListActiveUsers` must match\nthe call that provided the page token. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `user_id` and `name`.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "organizationId",
                        "description": "Optional. If provided, this will scope down the user search to just those in the organization ID provided.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved users. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `name`, `created_date`, and `modified_date`.\nIf left empty, items are ordered by `name` in ascending order (A-Z).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc,modified_date\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "UserService"
                ]
            }
        },
        "/api/v2/users/{userId}": {
            "get": {
                "summary": "GetUser",
                "description": "Retrieves a user object.",
                "operationId": "UserService_GetUser",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2GetUserResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "userId",
                        "description": "The id of the asset to be retrieved. Required.",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "UserService"
                ]
            }
        },
        "/api/v2/users/{userId}/active": {
            "post": {
                "summary": "UpdateUserOrganizationActive",
                "description": "Used to toggle a user's active status within their organization.",
                "operationId": "UserService_UpdateUserOrganizationActive",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2UpdateUserOrganizationActiveResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "userId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "organizationId": {
                                        "type": "string"
                                    },
                                    "active": {
                                        "type": "boolean"
                                    }
                                }
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "UserService"
                ]
            }
        },
        "/api/v2/users:all": {
            "get": {
                "summary": "ListUsers",
                "description": "List users.",
                "operationId": "UserService_ListUsersV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2ListUsersResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of users to return. The service may return fewer than this value.\nIf unspecified, at most 50 users will be returned. The maximum value is 1000; values above\n1000 will be coerced to 1000. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListUsers` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListUsers` must match\nthe call that provided the page token. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `user_id` and `name`.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved users. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are:\n- created_date\n- modified_date",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "UserService"
                ]
            }
        },
        "/api/v2/views": {
            "get": {
                "summary": "ListViews v2",
                "description": "Retrieves views using an optional filter.",
                "operationId": "ViewService_ListViewsV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/viewsv2ListViewsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of views to return.\nThe service may return fewer than this value.\nIf unspecified, at most 50 views will be returned.\nThe maximum value is 1000; values above 1000 will be coerced to 1000.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListViews` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListViews` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string\nAvailable fields to filter by are 'name', 'createdDate', and 'modifiedDate'.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ViewService"
                ]
            },
            "post": {
                "summary": "CreateView v2",
                "description": "Creates a view.",
                "operationId": "ViewService_CreateViewV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/viewsv2CreateViewResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/viewsv2CreateViewRequest"
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "ViewService"
                ]
            }
        },
        "/api/v2/views/{view.viewId}": {
            "patch": {
                "summary": "UpdateView v2",
                "description": "Updates an existing view using using the list of fields specified in `update_mask`.",
                "operationId": "ViewService_UpdateViewV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/viewsv2UpdateViewResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "view.viewId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "view": {
                                        "type": "object",
                                        "properties": {
                                            "name": {
                                                "type": "string"
                                            },
                                            "axisGroups": {
                                                "$ref": "#/components/schemas/viewsv2ViewAxisGroups"
                                            },
                                            "channels": {
                                                "type": "array",
                                                "items": {
                                                    "$ref": "#/components/schemas/viewsv2ViewChannel"
                                                }
                                            },
                                            "createdDate": {
                                                "type": "string",
                                                "format": "date-time"
                                            },
                                            "modifiedDate": {
                                                "type": "string",
                                                "format": "date-time"
                                            },
                                            "createdByUserId": {
                                                "type": "string"
                                            },
                                            "modifiedByUserId": {
                                                "type": "string"
                                            },
                                            "isPinned": {
                                                "type": "boolean"
                                            }
                                        }
                                    },
                                    "updateMask": {
                                        "type": "string",
                                        "description": "The list of fields to update."
                                    }
                                }
                            }
                        }
                    },
                    "required": true
                },
                "tags": [
                    "ViewService"
                ]
            }
        },
        "/api/v2/views/{viewId}": {
            "get": {
                "summary": "GetView v2",
                "description": "Retrieves a view.",
                "operationId": "ViewService_GetViewV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/viewsv2GetViewResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "viewId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ViewService"
                ]
            },
            "delete": {
                "summary": "DeleteView v2",
                "description": "Deletes a view.",
                "operationId": "ViewService_DeleteViewV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/viewsv2DeleteViewResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "viewId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ViewService"
                ]
            }
        },
        "/api/v2/views/{viewId}/pin": {
            "patch": {
                "summary": "PinView v2",
                "description": "Pins a view.",
                "operationId": "ViewService_PinViewV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/viewsv2PinViewResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "viewId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "$ref": "#/components/requestBodies/ViewService_PinViewBody"
                },
                "tags": [
                    "ViewService"
                ],
                "externalDocs": {
                    "description": "Learn more about pinning views.",
                    "url": "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/295436289"
                }
            }
        },
        "/api/v2/views/{viewId}/unpin": {
            "patch": {
                "summary": "UnpinView v2",
                "description": "Unpins a view.",
                "operationId": "ViewService_UnpinViewV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/viewsv2UnpinViewResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "viewId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "$ref": "#/components/requestBodies/ViewService_PinViewBody"
                },
                "tags": [
                    "ViewService"
                ],
                "externalDocs": {
                    "description": "Learn more about pinning views.",
                    "url": "https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/295436289"
                }
            }
        },
        "/api/v2/views:applicable": {
            "get": {
                "summary": "ListApplicableViews",
                "description": "Lists views that apply to assets/runs.",
                "operationId": "ViewService_ListApplicableViewsV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/viewsv2ListApplicableViewsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of views to return.\nThe service may return fewer than this value.\nIf unspecified, at most 50 views will be returned.\nThe maximum value is 1000; values above 1000 will be coerced to 1000.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListApplicableViews` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListApplicableViews` must match\nthe call that provided the page token.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "assetIds",
                        "in": "query",
                        "required": false,
                        "explode": true,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    },
                    {
                        "name": "runIds",
                        "in": "query",
                        "required": false,
                        "explode": true,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    }
                ],
                "tags": [
                    "ViewService"
                ]
            }
        },
        "/api/v3/channels": {
            "get": {
                "summary": "ListChannels v3",
                "description": "Retrieve channels using an optional filter.",
                "operationId": "ChannelService_ListChannelsV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/channelsv3ListChannelsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "pageSize",
                        "description": "The maximum number of channels to return. The service may return fewer than this value.\nIf unspecified, at most 50 channels will be returned. The maximum value is 10,000; values above\n10,000 will be coerced to 10,000. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListChannels` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListChannels` must match\nthe call that provided the page token. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `channel_id`, `asset_id`, `name`, `description`\n`run_id`, `run_name`, `run_client_key`, `created_date`, `modified_date`, `created_by_user_id`, and `modified_by_user_id`.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved channels. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `name`, `created_date` and `modified_date`, `active`.\nIf left empty, items are ordered by `created_date` in ascending order (oldest-first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc,modified_date\"",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ChannelService"
                ]
            },
            "patch": {
                "summary": "UpdateChannel",
                "description": "Update a channel.",
                "operationId": "ChannelService_UpdateChannelV3",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v3UpdateChannelResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v3UpdateChannelRequest"
                            }
                        }
                    },
                    "description": "The request for a call to ChannelService_UpdateChannel.",
                    "required": true
                },
                "tags": [
                    "ChannelService"
                ]
            }
        },
        "/api/v3/channels/{channelId}": {
            "get": {
                "summary": "GetChannel v3",
                "description": "Retrieve a channel.",
                "operationId": "ChannelService_GetChannelV2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/channelsv3GetChannelResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "channelId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ChannelService"
                ]
            }
        },
        "/api/v3/channels:batchArchive": {
            "post": {
                "summary": "BatchArchiveChannels",
                "description": "Batch archives channels by setting active to false.",
                "operationId": "ChannelService_BatchArchiveChannels",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v3BatchArchiveChannelsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v3BatchArchiveChannelsRequest"
                            }
                        }
                    },
                    "description": "The request for a call to ChannelService_BatchArchiveChannels.",
                    "required": true
                },
                "tags": [
                    "ChannelService"
                ]
            }
        },
        "/api/v3/channels:batchUnarchive": {
            "post": {
                "summary": "BatchUnarchiveChannels",
                "description": "Batch unarchives channels by setting active to true.",
                "operationId": "ChannelService_BatchUnarchiveChannels",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v3BatchUnarchiveChannelsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/v3BatchUnarchiveChannelsRequest"
                            }
                        }
                    },
                    "description": "The request for a call to ChannelService_BatchUnarchiveChannels.",
                    "required": true
                },
                "tags": [
                    "ChannelService"
                ]
            }
        },
        "/v1/organizations/{organizationId}/campaigns/{clientKey}": {
            "get": {
                "summary": "by organizationId, clientKey",
                "description": "Retrieve a campaign.",
                "operationId": "CampaignService_GetCampaign2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetCampaignResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "organizationId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "clientKey",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "campaignId",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "skipReportSummaries",
                        "description": "If `true`, the response will omit the summary fields on the campaign's reports\nand set reports_include_summaries to false on the Campaign message.\nReports will still be included with report_id and report_name populated.\nThis significantly improves response times for campaigns with many reports. Defaults to `false`.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "tags": [
                    "CampaignService"
                ]
            }
        },
        "/v1/organizations/{organizationId}/report_templates/{clientKey}": {
            "get": {
                "summary": "by organizationId, clientKey",
                "description": "Retrieve a report template.",
                "operationId": "ReportTemplateService_GetReportTemplate2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v1GetReportTemplateResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "organizationId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "clientKey",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "reportTemplateId",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "ReportTemplateService"
                ]
            }
        },
        "/v2/organizations/{organizationId}/calculated-channels/{clientKey}": {
            "get": {
                "summary": "GetCalculatedChannel by organizationId, clientKey",
                "description": "Retrieve the latest version of a calculated channel.",
                "operationId": "CalculatedChannelService_GetCalculatedChannel2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2GetCalculatedChannelResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "organizationId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "clientKey",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "calculatedChannelId",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "calculatedChannelVersionId",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "CalculatedChannelService"
                ]
            }
        },
        "/v2/organizations/{organizationId}/calculated-channels/{clientKey}/versions": {
            "get": {
                "summary": "ListCalculatedChannelVersions by organizationId, clientKey",
                "description": "List versions of a particular calculated channel with an optional filter.",
                "operationId": "CalculatedChannelService_ListCalculatedChannelVersions2",
                "responses": {
                    "200": {
                        "description": "A successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/v2ListCalculatedChannelVersionsResponse"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "An unexpected error response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/rpcStatus"
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "organizationId",
                        "description": "This field is only required if your user belongs to multiple organizations.",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "clientKey",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "calculatedChannelId",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "pageSize",
                        "description": "The maximum number of calculated channel versions to return. The service may return fewer than this value.\nIf unspecified, at most 50 calculated channels will be returned. The maximum value is 1000; values above\n1000 will be coerced to 1000. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    },
                    {
                        "name": "pageToken",
                        "description": "A page token, received from a previous `ListCalculatedChannelVersions` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `ListCalculatedChannelVersions` must match\nthe call that provided the page token. Optional.",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter",
                        "description": "A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.\nAvailable fields to filter by are `calculated_channel_id`, `organization_id`, `client_key`, `name`, `description`,\n`asset_id`, `asset_name`, `tag_id`, `tag_name`, `version`, `units`, `calculated_channel_version_id`,\n`created_date`, `modified_date`, `created_by_user_id`, `modified_by_user_id`, `is_archived`, and `archived_date`.\nFor further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "orderBy",
                        "description": "How to order the retrieved calculated channel versions. Formatted as a comma-separated string i.e. \"FIELD_NAME[ desc],...\".\nAvailable fields to order_by are `version`, `created_date`, and `modified_date`.\nIf left empty, items are ordered by `version` in ascending order (oldest version first).\nFor more information about the format of this field, read [this](https://google.aip.dev/132#ordering)\nExample: \"created_date desc,modified_date\".",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "CalculatedChannelService"
                ]
            }
        }
    },
    "components": {
        "requestBodies": {
            "ViewService_PinViewBody": {
                "content": {
                    "application/json": {
                        "schema": {
                            "type": "object"
                        }
                    }
                },
                "required": true
            },
            "PrincipalAttributeService_UpdatePrincipalAttributeEnumValueBody": {
                "content": {
                    "application/json": {
                        "schema": {
                            "type": "object",
                            "properties": {
                                "displayName": {
                                    "type": "string"
                                },
                                "description": {
                                    "type": "string"
                                },
                                "updateMask": {
                                    "type": "string",
                                    "description": "The list of fields to be updated. The fields available to be updated are `description` and `archived_date`."
                                }
                            },
                            "required": [
                                "updateMask"
                            ]
                        }
                    }
                },
                "required": true
            }
        },
        "schemas": {
            "BatchListResourceAttributesByEntityResponseEntityResourceAttributes": {
                "type": "object",
                "properties": {
                    "entity": {
                        "$ref": "#/components/schemas/v1ResourceAttributeEntityIdentifier"
                    },
                    "resourceAttributes": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ResourceAttribute"
                        },
                        "title": "All resource-attributes for this entity"
                    }
                },
                "required": [
                    "entity"
                ]
            },
            "BatchUpdateRulesResponseRuleIdentifiers": {
                "type": "object",
                "properties": {
                    "ruleId": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "clientKey": {
                        "type": "string"
                    }
                },
                "required": [
                    "ruleId",
                    "name"
                ]
            },
            "CalculatedChannelAssetConfigurationAssetSelection": {
                "type": "object",
                "properties": {
                    "assetIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "tagIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "required": [
                    "assetIds",
                    "tagIds"
                ]
            },
            "CalculatedChannelQueryConfigurationSel": {
                "type": "object",
                "properties": {
                    "expression": {
                        "type": "string"
                    },
                    "expressionChannelReferences": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v2CalculatedChannelAbstractChannelReference"
                        }
                    }
                },
                "description": "Sift Expression Language.",
                "required": [
                    "expression",
                    "expressionChannelReferences"
                ]
            },
            "ChannelCalculatedChannelConfigChannelReference": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "component": {
                        "type": "string"
                    }
                },
                "required": [
                    "name",
                    "component"
                ]
            },
            "UserGroupResource": {
                "type": "object",
                "properties": {
                    "assetIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "allAssets": {
                        "type": "boolean"
                    }
                },
                "required": [
                    "allAssets"
                ]
            },
            "ValidateUserDefinedFunctionResponseErrorValidatingUserDefinedFunctionResult": {
                "type": "object",
                "properties": {
                    "errorMessage": {
                        "type": "string"
                    }
                },
                "required": [
                    "errorMessage"
                ]
            },
            "ValidateUserDefinedFunctionResponseSuccessValidatingUserDefinedFunctionResult": {
                "type": "object",
                "properties": {
                    "userDefinedFunction": {
                        "$ref": "#/components/schemas/v1UserDefinedFunction"
                    }
                },
                "required": [
                    "userDefinedFunction"
                ]
            },
            "annotationsv1Annotation": {
                "type": "object",
                "properties": {
                    "annotationId": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "startTime": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "endTime": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "createdByUserId": {
                        "type": "string"
                    },
                    "modifiedByUserId": {
                        "type": "string"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "runId": {
                        "type": "string"
                    },
                    "state": {
                        "$ref": "#/components/schemas/v1AnnotationState"
                    },
                    "organizationId": {
                        "type": "string"
                    },
                    "assignedToUserId": {
                        "type": "string"
                    },
                    "annotationType": {
                        "$ref": "#/components/schemas/v1AnnotationType"
                    },
                    "tags": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "legendConfig": {
                        "type": "string"
                    },
                    "createdByConditionId": {
                        "type": "string"
                    },
                    "createdByRuleConditionVersionId": {
                        "type": "string"
                    },
                    "reportRuleVersionId": {
                        "type": "string"
                    },
                    "pending": {
                        "type": "boolean",
                        "description": "An annotation is pending if it is part of an ongoing violation of a rule condition.\nThe `end_time` of a pending annotation might be set, but is not yet finalized.",
                        "readOnly": true
                    },
                    "assignedToUser": {
                        "$ref": "#/components/schemas/v1User"
                    },
                    "deletedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "linkedChannels": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1AnnotationLinkedChannel"
                        }
                    },
                    "assetIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "metadata": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        }
                    },
                    "archivedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "isArchived": {
                        "type": "boolean",
                        "title": "is_archived is a inferred from when archived_date is not null"
                    },
                    "batchedTriggers": {
                        "type": "integer",
                        "format": "int32"
                    },
                    "isNoisyRule": {
                        "type": "boolean"
                    }
                },
                "required": [
                    "annotationId",
                    "name",
                    "description",
                    "startTime",
                    "endTime",
                    "createdByUserId",
                    "modifiedByUserId",
                    "createdDate",
                    "modifiedDate",
                    "organizationId",
                    "annotationType",
                    "tags",
                    "isArchived",
                    "batchedTriggers"
                ]
            },
            "assetsv1Asset": {
                "type": "object",
                "properties": {
                    "assetId": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "organizationId": {
                        "type": "string"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "createdByUserId": {
                        "type": "string"
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "modifiedByUserId": {
                        "type": "string"
                    },
                    "tags": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "The names of the tags associated with this asset."
                    },
                    "metadata": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        },
                        "description": "The metadata values associated with this asset."
                    },
                    "archivedDate": {
                        "type": "string",
                        "format": "date-time",
                        "description": "The date the asset was archived."
                    },
                    "isArchived": {
                        "type": "boolean",
                        "description": "Whether the asset is archived. This is inferred from whether archived_date is set."
                    }
                },
                "required": [
                    "assetId",
                    "name",
                    "organizationId",
                    "createdDate",
                    "createdByUserId",
                    "modifiedDate",
                    "modifiedByUserId",
                    "tags",
                    "metadata",
                    "isArchived"
                ]
            },
            "azimuthtagsv1Tag": {
                "type": "object",
                "properties": {
                    "tagId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "name": {
                        "type": "string",
                        "readOnly": true
                    },
                    "organizationId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "createdByUserId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "modifiedByUserId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    }
                }
            },
            "calculated_channelsv2CalculatedChannelDependency": {
                "type": "object",
                "properties": {
                    "calculatedChannelVersionId": {
                        "type": "string"
                    }
                },
                "description": "A dependency on another calculated channel.",
                "required": [
                    "calculatedChannelVersionId"
                ]
            },
            "channel_schemasv1BatchCreateChannelSchemasRequest": {
                "type": "object",
                "properties": {
                    "requests": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/channel_schemasv1CreateChannelSchemaRequest"
                        },
                        "title": "Limit of 1000 channels schemas per batch"
                    },
                    "assetName": {
                        "type": "string",
                        "description": "The asset to which the channel schemas belong (case-insensitive).\nIf this field, and any of the child requests specify an asset, the assets must match."
                    },
                    "organizationId": {
                        "type": "string",
                        "description": "The organization to which the channel schemas belong.\nIf this field, and any of the child requests specify an organization_id, the organization_ids must match.\nThis field is optional if the caller belongs to a single organization."
                    }
                },
                "description": "The request for a call to `ChannelSchemaService_BatchCreateChannelSchemas`.",
                "required": [
                    "requests"
                ]
            },
            "channel_schemasv1BatchCreateChannelSchemasResponse": {
                "type": "object",
                "description": "The response of a call to `ChannelSchemaService_BatchCreateChannelSchemas`."
            },
            "channel_schemasv1CreateChannelSchemaRequest": {
                "type": "object",
                "properties": {
                    "component": {
                        "type": "string",
                        "description": "The name of the component (case-insensitive)."
                    },
                    "channel": {
                        "type": "string",
                        "description": "The name of the channel (case-insensitive)."
                    },
                    "unit": {
                        "type": "string"
                    },
                    "dataType": {
                        "$ref": "#/components/schemas/v1ChannelDataType"
                    },
                    "enumTypes": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ChannelEnumType"
                        }
                    },
                    "bitFieldElements": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ChannelBitFieldElement"
                        }
                    },
                    "assetName": {
                        "type": "string",
                        "description": "The name of the asset (case-insensitive)."
                    },
                    "organizationId": {
                        "type": "string",
                        "description": "This field is optional if the caller belongs to a single organization."
                    }
                },
                "description": "The request for a call to `ChannelSchemaService_CreateChannelSchema`.",
                "required": [
                    "channel",
                    "dataType",
                    "assetName"
                ]
            },
            "channel_schemasv1CreateChannelSchemaResponse": {
                "type": "object",
                "description": "The response of a call to `ChannelSchemaService_CreateChannelSchema`."
            },
            "channel_schemasv2BatchCreateChannelSchemasRequest": {
                "type": "object",
                "properties": {
                    "requests": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/channel_schemasv2CreateChannelSchemaRequest"
                        },
                        "title": "Limit of 1000 channels schemas per batch"
                    },
                    "assetName": {
                        "type": "string",
                        "description": "The asset to which the channel schemas belong (case-insensitive).\nIf this field, and any of the child requests specify an asset, the assets must match."
                    }
                },
                "description": "The request for a call to `ChannelSchemaService_BatchCreateChannelSchemas`.",
                "required": [
                    "requests"
                ]
            },
            "channel_schemasv2BatchCreateChannelSchemasResponse": {
                "type": "object",
                "description": "The response of a call to `ChannelSchemaService_BatchCreateChannelSchemas`."
            },
            "channel_schemasv2CreateChannelSchemaRequest": {
                "type": "object",
                "properties": {
                    "channel": {
                        "type": "string"
                    },
                    "unit": {
                        "type": "string"
                    },
                    "dataType": {
                        "$ref": "#/components/schemas/v1ChannelDataType"
                    },
                    "enumTypes": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ChannelEnumType"
                        }
                    },
                    "bitFieldElements": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ChannelBitFieldElement"
                        }
                    },
                    "assetName": {
                        "type": "string",
                        "description": "The name of the asset (case-insensitive)."
                    }
                },
                "description": "The request for a call to `ChannelSchemaService_CreateChannelSchema`.",
                "required": [
                    "channel",
                    "dataType",
                    "assetName"
                ]
            },
            "channel_schemasv2CreateChannelSchemaResponse": {
                "type": "object",
                "description": "The response of a call to `ChannelSchemaService_CreateChannelSchema`."
            },
            "channelsv2Channel": {
                "type": "object",
                "properties": {
                    "channelId": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "component": {
                        "type": "string"
                    },
                    "assetId": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "unitId": {
                        "type": "string"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "createdByUserId": {
                        "type": "string"
                    },
                    "modifiedByUserId": {
                        "type": "string"
                    },
                    "organizationId": {
                        "type": "string"
                    },
                    "dataType": {
                        "$ref": "#/components/schemas/v1ChannelDataType"
                    },
                    "enumTypes": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ChannelEnumType"
                        }
                    },
                    "bitFieldElements": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ChannelBitFieldElement"
                        }
                    },
                    "metadata": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        }
                    }
                },
                "required": [
                    "channelId",
                    "name",
                    "component",
                    "assetId",
                    "description",
                    "unitId",
                    "createdDate",
                    "modifiedDate",
                    "createdByUserId",
                    "modifiedByUserId",
                    "organizationId",
                    "dataType",
                    "metadata"
                ]
            },
            "channelsv2GetChannelResponse": {
                "type": "object",
                "properties": {
                    "channel": {
                        "$ref": "#/components/schemas/channelsv2Channel"
                    }
                },
                "description": "The response of a call to `ChannelService_GetChannel`.",
                "required": [
                    "channel"
                ]
            },
            "channelsv2ListChannelsResponse": {
                "type": "object",
                "properties": {
                    "channels": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/channelsv2Channel"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "The result of a call to `ChannelService_ListChannels`."
            },
            "channelsv3Channel": {
                "type": "object",
                "properties": {
                    "channelId": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string",
                        "description": "The full name of the channel."
                    },
                    "assetId": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "unitId": {
                        "type": "string"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "createdByUserId": {
                        "type": "string"
                    },
                    "modifiedByUserId": {
                        "type": "string"
                    },
                    "dataType": {
                        "$ref": "#/components/schemas/v1ChannelDataType"
                    },
                    "enumTypes": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ChannelEnumType"
                        }
                    },
                    "bitFieldElements": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ChannelBitFieldElement"
                        }
                    },
                    "displayDescription": {
                        "type": "string"
                    },
                    "displayUnitId": {
                        "type": "string"
                    },
                    "metadata": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        }
                    },
                    "active": {
                        "type": "boolean"
                    }
                },
                "required": [
                    "channelId",
                    "name",
                    "assetId",
                    "description",
                    "unitId",
                    "createdDate",
                    "modifiedDate",
                    "createdByUserId",
                    "modifiedByUserId",
                    "dataType",
                    "metadata"
                ]
            },
            "channelsv3GetChannelResponse": {
                "type": "object",
                "properties": {
                    "channel": {
                        "$ref": "#/components/schemas/channelsv3Channel"
                    }
                },
                "description": "The response of a call to `ChannelService_GetChannel`.",
                "required": [
                    "channel"
                ]
            },
            "channelsv3ListChannelsResponse": {
                "type": "object",
                "properties": {
                    "channels": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/channelsv3Channel"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "The result of a call to ChannelService_ListChannels."
            },
            "commontypev1ChannelConfig": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "units": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "dataType": {
                        "$ref": "#/components/schemas/v1ChannelDataType"
                    },
                    "enumTypes": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ChannelEnumType"
                        }
                    },
                    "bitFieldElements": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ChannelBitFieldElement"
                        }
                    },
                    "metadata": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        }
                    }
                }
            },
            "datav1CalculatedChannelQuery": {
                "type": "object",
                "properties": {
                    "channelKey": {
                        "type": "string"
                    },
                    "expression": {
                        "$ref": "#/components/schemas/v1ExpressionRequest"
                    },
                    "runId": {
                        "type": "string",
                        "description": "Optional.\nIf set, only data for the specified run is returned\nIf set to the empty string, only non-run data is returned.\nIf unset, all run / non-run data is returned."
                    },
                    "mode": {
                        "$ref": "#/components/schemas/v1ExpressionMode"
                    }
                },
                "required": [
                    "channelKey",
                    "expression"
                ]
            },
            "datav1ChannelQuery": {
                "type": "object",
                "properties": {
                    "channelId": {
                        "type": "string",
                        "description": "channel_id is the uuid of the channel."
                    },
                    "runId": {
                        "type": "string",
                        "description": "Optional.\nIf set, only data associated with the specified run is returned.\nIf set to the empty string, only non-run data is returned.\nIf unset, all run / non-run data is returned."
                    }
                }
            },
            "datav1GetDataRequest": {
                "type": "object",
                "properties": {
                    "queries": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/datav1Query"
                        }
                    },
                    "startTime": {
                        "type": "string",
                        "format": "date-time",
                        "description": "Required. The starting timestamp of the data to retrieve. This is an inclusive bound."
                    },
                    "endTime": {
                        "type": "string",
                        "format": "date-time",
                        "description": "Required. The end timestamp of the data to retrieve. This is an exclusive bound."
                    },
                    "sampleMs": {
                        "type": "integer",
                        "format": "int64",
                        "description": "The rate to sample the returned data at. The data is sampled using [LTTB](https://github.com/sveinn-steinarsson/flot-downsample)\nwhich will return one point approximately every sample_ms milliseconds that retains the shape of the raw data.\nSampling is only supported for numeric data types, if sample_ms is provided for non-numeric data, it will be\nignored and the full-fidelity data will be returned.\nA value of 0 disables sampling and returns the full unsampled dataset. This is recommended for external data\nanalysis where full fidelity is required, as opposed to plotting where downsampling is typically sufficient."
                    },
                    "pageSize": {
                        "type": "integer",
                        "format": "int64",
                        "description": "The maximum number of channel values to return.\nThe service may return fewer than this value.\nIf unspecified, at most 10,000 values will be returned.\nThe maximum value is 1,000,000; values above 1,000,000 will be coerced to 1,000,000.\nFor variable data types (i.e. string channels), at most page_size elements\nwill be read, or 1MB, whichever occurs first."
                    },
                    "pageToken": {
                        "type": "string",
                        "description": "A page token, received from a previous `GetData` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `GetData` must match\nthe call that provided the page token."
                    }
                }
            },
            "datav1GetDataResponse": {
                "type": "object",
                "properties": {
                    "nextPageToken": {
                        "type": "string"
                    },
                    "data": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/protobufAny"
                        },
                        "title": "data contains the result of the supplied queries.\nBe aware that each query can generate multiple data responses.\nFor example, if run_id is omitted from a ChannelQuery, the query returns\ndata for all runs containing that channel. Channel data for each run is\nreturned in a separate data object.\nPossible message types:\n  sift.data.v1.DoubleValues\n  sift.data.v1.FloatValues\n  sift.data.v1.StringValues\n  sift.data.v1.EnumValues\n  sift.data.v1.BitFieldValues\n  sift.data.v1.BoolValues\n  sift.data.v1.Int32Values\n  sift.data.v1.Int64Values\n  sift.data.v1.Uint32Values\n  sift.data.v1.Uint64Values\n  sift.data.v1.BytesValues"
                    }
                },
                "required": [
                    "data"
                ]
            },
            "datav1Query": {
                "type": "object",
                "properties": {
                    "channel": {
                        "$ref": "#/components/schemas/datav1ChannelQuery"
                    },
                    "calculatedChannel": {
                        "$ref": "#/components/schemas/datav1CalculatedChannelQuery"
                    }
                }
            },
            "datav2CalculatedChannelQuery": {
                "type": "object",
                "properties": {
                    "channelKey": {
                        "type": "string"
                    },
                    "expression": {
                        "$ref": "#/components/schemas/v1ExpressionRequest"
                    },
                    "runId": {
                        "type": "string",
                        "description": "Optional.\nIf set, only data for the specified run is returned\nIf set to the empty string, only non-run data is returned.\nIf unset, all run / non-run data is returned."
                    },
                    "mode": {
                        "$ref": "#/components/schemas/v1ExpressionMode"
                    },
                    "combineRunData": {
                        "type": "boolean",
                        "description": "Optional. If unset, will default to false.\nIf true, then requests that return data across multiple runs will be\ncombined into a single result. This will apply to queries without a run,\nor when the requested run is an ad hoc run.\nThis is useful when you prefer to see all the data as a single time series,\ninstead of separated results by run."
                    }
                },
                "required": [
                    "channelKey",
                    "expression"
                ]
            },
            "datav2ChannelQuery": {
                "type": "object",
                "properties": {
                    "channelId": {
                        "type": "string",
                        "description": "channel_id is the uuid of the channel."
                    },
                    "runId": {
                        "type": "string",
                        "description": "Optional.\nIf set, only data associated with the specified run is returned.\nIf set to the empty string, only non-run data is returned.\nIf unset, all run / non-run data is returned."
                    }
                }
            },
            "datav2GetDataRequest": {
                "type": "object",
                "properties": {
                    "queries": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/datav2Query"
                        }
                    },
                    "startTime": {
                        "type": "string",
                        "format": "date-time",
                        "description": "Required. The starting timestamp of the data to retrieve. This is an inclusive bound."
                    },
                    "endTime": {
                        "type": "string",
                        "format": "date-time",
                        "description": "Required. The end timestamp of the data to retrieve. This is an exclusive bound."
                    },
                    "sampleMs": {
                        "type": "integer",
                        "format": "int64",
                        "description": "The rate to sample the returned data at. The data is sampled using [LTTB](https://github.com/sveinn-steinarsson/flot-downsample)\nwhich will return one point approximately every sample_ms milliseconds that retains the shape of the raw data.\nSampling is only supported for numeric data types, if sample_ms is provided for non-numeric data, it will be\nignored and the full-fidelity data will be returned.\nA value of 0 disables sampling and returns the full unsampled dataset. This is recommended for external data\nanalysis where full fidelity is required, as opposed to plotting where downsampling is typically sufficient."
                    },
                    "pageSize": {
                        "type": "integer",
                        "format": "int64",
                        "description": "The maximum number of channel values to return.\nThe service may return fewer than this value.\nIf unspecified, at most 10,000 values will be returned.\nThe maximum value is 1,000,000; values above 1,000,000 will be coerced to 1,000,000.\nFor variable data types (i.e. string channels), at most page_size elements\nwill be read, or 1MB, whichever occurs first."
                    },
                    "pageToken": {
                        "type": "string",
                        "description": "A page token, received from a previous `GetData` call.\nProvide this to retrieve the subsequent page.\nWhen paginating, all other parameters provided to `GetData` must match\nthe call that provided the page token."
                    },
                    "includeReceivedAt": {
                        "type": "boolean",
                        "description": "Optional flag to enable inclusion of \"sift_received_at\" timestamps\nin GetDataResponse.data.extras field."
                    }
                }
            },
            "datav2GetDataResponse": {
                "type": "object",
                "properties": {
                    "nextPageToken": {
                        "type": "string"
                    },
                    "data": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/protobufAny"
                        },
                        "title": "data contains the result of the supplied queries.\nBe aware that each query can generate multiple data responses.\nFor example, if run_id is omitted from a ChannelQuery, the query returns\ndata for all runs containing that channel. Channel data for each run is\nreturned in a separate data object.\nPossible message types:\n  sift.data.v2.DoubleValues\n  sift.data.v2.FloatValues\n  sift.data.v2.StringValues\n  sift.data.v2.EnumValues\n  sift.data.v2.BitFieldValues\n  sift.data.v2.BoolValues\n  sift.data.v2.Int32Values\n  sift.data.v2.Int64Values\n  sift.data.v2.Uint32Values\n  sift.data.v2.Uint64Values\n  sift.data.v2.BytesValues"
                    }
                },
                "required": [
                    "data"
                ]
            },
            "datav2Query": {
                "type": "object",
                "properties": {
                    "channel": {
                        "$ref": "#/components/schemas/datav2ChannelQuery"
                    },
                    "calculatedChannel": {
                        "$ref": "#/components/schemas/datav2CalculatedChannelQuery"
                    }
                }
            },
            "ingestion_configsv1CreateIngestionConfigFlowsResponse": {
                "type": "object",
                "description": "The result of a call to `IngestionConfigService_CreateIngestionConfigFlows`."
            },
            "ingestion_configsv1CreateIngestionConfigRequest": {
                "type": "object",
                "properties": {
                    "assetName": {
                        "type": "string"
                    },
                    "flows": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/ingestion_configsv1FlowConfig"
                        }
                    },
                    "organizationId": {
                        "type": "string"
                    },
                    "clientKey": {
                        "type": "string",
                        "description": "The `client_key` field is a user-defined string you can supply to uniquely identify\nan ingestion config (and retrieve it via `GetIngestionConfig`).\nAn error is returned if you try to create an ingestion config with a\nclient_key that already exists."
                    }
                },
                "description": "The request for a call to `IngestionConfigService_CreateIngestionConfig` to create an ingestion configs.",
                "required": [
                    "assetName"
                ]
            },
            "ingestion_configsv1CreateIngestionConfigResponse": {
                "type": "object",
                "properties": {
                    "ingestionConfig": {
                        "$ref": "#/components/schemas/ingestion_configsv1IngestionConfig"
                    }
                },
                "description": "The result of a call to `IngestionConfigService_CreateIngestionConfig`.",
                "required": [
                    "ingestionConfig"
                ]
            },
            "ingestion_configsv1FlowConfig": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "channels": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/siftingestion_configsv1ChannelConfig"
                        }
                    }
                },
                "required": [
                    "name"
                ]
            },
            "ingestion_configsv1GetIngestionConfigResponse": {
                "type": "object",
                "properties": {
                    "ingestionConfig": {
                        "$ref": "#/components/schemas/ingestion_configsv1IngestionConfig"
                    }
                },
                "description": "The result of a call to `IngestionConfigService_GetIngestionConfig`.",
                "required": [
                    "ingestionConfig"
                ]
            },
            "ingestion_configsv1IngestionConfig": {
                "type": "object",
                "properties": {
                    "ingestionConfigId": {
                        "type": "string"
                    },
                    "assetId": {
                        "type": "string"
                    },
                    "clientKey": {
                        "type": "string"
                    }
                },
                "required": [
                    "ingestionConfigId",
                    "assetId"
                ]
            },
            "ingestion_configsv1ListIngestionConfigFlowsResponse": {
                "type": "object",
                "properties": {
                    "flows": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/ingestion_configsv1FlowConfig"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "The result of a call to `IngestionConfigService_ListIngestionConfigFlows`."
            },
            "ingestion_configsv1ListIngestionConfigsResponse": {
                "type": "object",
                "properties": {
                    "ingestionConfigs": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/ingestion_configsv1IngestionConfig"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "The result of a call to `IngestionConfigService_ListIngestionConfigs`."
            },
            "ingestion_configsv2ChannelConfig": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "unit": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "dataType": {
                        "$ref": "#/components/schemas/v1ChannelDataType"
                    },
                    "enumTypes": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ChannelEnumType"
                        }
                    },
                    "bitFieldElements": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ChannelBitFieldElement"
                        }
                    }
                },
                "required": [
                    "name",
                    "dataType"
                ]
            },
            "ingestion_configsv2CreateIngestionConfigFlowsResponse": {
                "type": "object",
                "description": "The result of a call to `IngestionConfigService_CreateIngestionConfigFlows`."
            },
            "ingestion_configsv2CreateIngestionConfigRequest": {
                "type": "object",
                "properties": {
                    "assetName": {
                        "type": "string"
                    },
                    "flows": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/ingestion_configsv2FlowConfig"
                        }
                    },
                    "organizationId": {
                        "type": "string"
                    },
                    "clientKey": {
                        "type": "string",
                        "description": "The `client_key` field is a user-defined string you can supply to uniquely identify\nan ingestion config (and retrieve it via `GetIngestionConfig`).\nAn error is returned if you try to create an ingestion config with a\nclient_key that already exists."
                    }
                },
                "description": "The request for a call to `IngestionConfigService_CreateIngestionConfig` to retrieve ingestion configs.",
                "required": [
                    "assetName"
                ]
            },
            "ingestion_configsv2CreateIngestionConfigResponse": {
                "type": "object",
                "properties": {
                    "ingestionConfig": {
                        "$ref": "#/components/schemas/ingestion_configsv2IngestionConfig"
                    }
                },
                "description": "The result of a call to `IngestionConfigService_CreateIngestionConfig`.",
                "required": [
                    "ingestionConfig"
                ]
            },
            "ingestion_configsv2FlowConfig": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "channels": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/ingestion_configsv2ChannelConfig"
                        }
                    }
                },
                "required": [
                    "name"
                ]
            },
            "ingestion_configsv2GetIngestionConfigResponse": {
                "type": "object",
                "properties": {
                    "ingestionConfig": {
                        "$ref": "#/components/schemas/ingestion_configsv2IngestionConfig"
                    }
                },
                "description": "The result of a call to `IngestionConfigService_GetIngestionConfig`.",
                "required": [
                    "ingestionConfig"
                ]
            },
            "ingestion_configsv2IngestionConfig": {
                "type": "object",
                "properties": {
                    "ingestionConfigId": {
                        "type": "string"
                    },
                    "assetId": {
                        "type": "string"
                    },
                    "clientKey": {
                        "type": "string"
                    }
                },
                "required": [
                    "ingestionConfigId",
                    "assetId"
                ]
            },
            "ingestion_configsv2ListIngestionConfigFlowsResponse": {
                "type": "object",
                "properties": {
                    "flows": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/ingestion_configsv2FlowConfig"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "The result of a call to `IngestionConfigService_ListIngestionConfigFlows`."
            },
            "ingestion_configsv2ListIngestionConfigsResponse": {
                "type": "object",
                "properties": {
                    "ingestionConfigs": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/ingestion_configsv2IngestionConfig"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "The result of a call to `IngestionConfigService_ListIngestionConfigs`."
            },
            "protobufAny": {
                "type": "object",
                "properties": {
                    "@type": {
                        "type": "string",
                        "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n  value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n  URL, or have them precompiled into a binary to avoid any\n  lookup. Therefore, binary compatibility needs to be preserved\n  on changes to types. (Use versioned type names to manage\n  breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com. As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics."
                    }
                },
                "additionalProperties": {},
                "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n    Foo foo = ...;\n    Any any;\n    any.PackFrom(foo);\n    ...\n    if (any.UnpackTo(&foo)) {\n      ...\n    }\n\nExample 2: Pack and unpack a message in Java.\n\n    Foo foo = ...;\n    Any any = Any.pack(foo);\n    ...\n    if (any.is(Foo.class)) {\n      foo = any.unpack(Foo.class);\n    }\n    // or ...\n    if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n      foo = any.unpack(Foo.getDefaultInstance());\n    }\n\n Example 3: Pack and unpack a message in Python.\n\n    foo = Foo(...)\n    any = Any()\n    any.Pack(foo)\n    ...\n    if any.Is(Foo.DESCRIPTOR):\n      any.Unpack(foo)\n      ...\n\n Example 4: Pack and unpack a message in Go\n\n     foo := &pb.Foo{...}\n     any, err := anypb.New(foo)\n     if err != nil {\n       ...\n     }\n     ...\n     foo := &pb.Foo{}\n     if err := any.UnmarshalTo(foo); err != nil {\n       ...\n     }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n    package google.profile;\n    message Person {\n      string first_name = 1;\n      string last_name = 2;\n    }\n\n    {\n      \"@type\": \"type.googleapis.com/google.profile.Person\",\n      \"firstName\": <string>,\n      \"lastName\": <string>\n    }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n    {\n      \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n      \"value\": \"1.212s\"\n    }"
            },
            "protobufNullValue": {
                "type": "string",
                "enum": [
                    "NULL_VALUE"
                ],
                "default": "NULL_VALUE",
                "description": "`NullValue` is a singleton enumeration to represent the null value for the\n`Value` type union.\n\nThe JSON representation for `NullValue` is JSON `null`.\n\n - NULL_VALUE: Null value."
            },
            "protobuf_descriptorsv1AddProtobufDescriptorResponse": {
                "type": "object",
                "properties": {
                    "protobufDescriptor": {
                        "$ref": "#/components/schemas/protobuf_descriptorsv1ProtobufDescriptor"
                    }
                }
            },
            "protobuf_descriptorsv1DeleteProtobufDescriptorsResponse": {
                "type": "object"
            },
            "protobuf_descriptorsv1ListProtobufDescriptorsResponse": {
                "type": "object",
                "properties": {
                    "protobufDescriptors": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/protobuf_descriptorsv1ProtobufDescriptor"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "The response of a call to `ProtobufDescriptorService_ListProtobufDescriptors`."
            },
            "protobuf_descriptorsv1ProtobufDescriptor": {
                "type": "object",
                "properties": {
                    "messageTypeFullName": {
                        "type": "string"
                    },
                    "fileDescriptorSet": {
                        "type": "string",
                        "format": "byte"
                    },
                    "protoFileName": {
                        "type": "string"
                    },
                    "namespace": {
                        "type": "string"
                    },
                    "protobufDescriptorId": {
                        "type": "string"
                    }
                }
            },
            "protobuf_descriptorsv2AddProtobufDescriptorRequest": {
                "type": "object",
                "properties": {
                    "protobufDescriptor": {
                        "$ref": "#/components/schemas/protobuf_descriptorsv2ProtobufDescriptor"
                    },
                    "forceDuplicateRegistration": {
                        "type": "boolean",
                        "description": "If set to true, the service will ignore checks that this descriptor has already been registered\nand will ensure that it is registered as the latest proto descriptor for the message type."
                    }
                }
            },
            "protobuf_descriptorsv2AddProtobufDescriptorResponse": {
                "type": "object",
                "properties": {
                    "protobufDescriptor": {
                        "$ref": "#/components/schemas/protobuf_descriptorsv2ProtobufDescriptor"
                    }
                }
            },
            "protobuf_descriptorsv2DeleteProtobufDescriptorsResponse": {
                "type": "object"
            },
            "protobuf_descriptorsv2ListProtobufDescriptorsResponse": {
                "type": "object",
                "properties": {
                    "protobufDescriptors": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/protobuf_descriptorsv2ProtobufDescriptor"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "The response of a call to `ProtobufDescriptorService_ListProtobufDescriptors`."
            },
            "protobuf_descriptorsv2ProtobufDescriptor": {
                "type": "object",
                "properties": {
                    "messageTypeFullName": {
                        "type": "string"
                    },
                    "fileDescriptorSet": {
                        "type": "string",
                        "format": "byte"
                    },
                    "protoFileName": {
                        "type": "string"
                    },
                    "namespace": {
                        "type": "string"
                    },
                    "protobufDescriptorId": {
                        "type": "string"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    }
                }
            },
            "rpcStatus": {
                "type": "object",
                "properties": {
                    "code": {
                        "type": "integer",
                        "format": "int32"
                    },
                    "message": {
                        "type": "string"
                    },
                    "details": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/protobufAny"
                        }
                    }
                }
            },
            "rulesv1ChannelReference": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "description": "Required for native channel references. Must not be set when calculated_channel_version_id is provided."
                    },
                    "component": {
                        "type": "string",
                        "description": "Deprecated - use name instead. If provided, name will be joined with the component as `component.name`.\nMust not be set when calculated_channel_version_id is provided."
                    },
                    "calculatedChannelVersionId": {
                        "type": "string",
                        "description": "Reference to a calculated channel version. When set, the rule will use the calculated channel\ninstead of looking up a native channel by name. Must not be set when name is provided."
                    }
                }
            },
            "runsv2Run": {
                "type": "object",
                "properties": {
                    "runId": {
                        "type": "string"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "createdByUserId": {
                        "type": "string"
                    },
                    "modifiedByUserId": {
                        "type": "string"
                    },
                    "organizationId": {
                        "type": "string"
                    },
                    "startTime": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "stopTime": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "isPinned": {
                        "type": "boolean"
                    },
                    "name": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "tags": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "defaultReportId": {
                        "type": "string"
                    },
                    "clientKey": {
                        "type": "string"
                    },
                    "metadata": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        },
                        "description": "The metadata values associated with this run."
                    },
                    "assetIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "archivedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "isAdhoc": {
                        "type": "boolean"
                    },
                    "isArchived": {
                        "type": "boolean",
                        "description": "Whether the Run is archived. This is inferred from whether archived_date is set."
                    },
                    "duration": {
                        "type": "string",
                        "description": "The duration of the run. Calculated as the difference between stop_time and start_time.\nIf the run is ongoing (no stop_time), this represents the duration from start_time to current time."
                    },
                    "stoppedDate": {
                        "type": "string",
                        "format": "date-time",
                        "description": "When the run was stopped. May be unset for runs stopped before this field existed."
                    },
                    "isStopped": {
                        "type": "boolean",
                        "description": "Whether the run has been stopped."
                    }
                },
                "required": [
                    "runId",
                    "createdDate",
                    "modifiedDate",
                    "createdByUserId",
                    "modifiedByUserId",
                    "organizationId",
                    "isPinned",
                    "name",
                    "description",
                    "tags",
                    "metadata",
                    "assetIds",
                    "isAdhoc",
                    "isArchived",
                    "isStopped"
                ]
            },
            "siftexportsv1CalculatedChannelConfig": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "expression": {
                        "type": "string"
                    },
                    "channelReferences": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v2CalculatedChannelAbstractChannelReference"
                        }
                    },
                    "units": {
                        "type": "string"
                    }
                },
                "required": [
                    "name",
                    "expression",
                    "channelReferences"
                ]
            },
            "siftingestion_configsv1ChannelConfig": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "component": {
                        "type": "string"
                    },
                    "unit": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "dataType": {
                        "$ref": "#/components/schemas/v1ChannelDataType"
                    },
                    "enumTypes": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ChannelEnumType"
                        }
                    },
                    "bitFieldElements": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ChannelBitFieldElement"
                        }
                    }
                },
                "required": [
                    "name",
                    "dataType"
                ]
            },
            "siftrule_evaluationv1EvaluateRulesRequest": {
                "type": "object",
                "properties": {
                    "run": {
                        "$ref": "#/components/schemas/v1ResourceIdentifier"
                    },
                    "assets": {
                        "$ref": "#/components/schemas/v1AssetsTimeRange"
                    },
                    "runTimeRange": {
                        "$ref": "#/components/schemas/v1RunTimeRange"
                    },
                    "rules": {
                        "$ref": "#/components/schemas/v1EvaluateRulesFromCurrentRuleVersions"
                    },
                    "ruleVersions": {
                        "$ref": "#/components/schemas/v1EvaluateRulesFromRuleVersions"
                    },
                    "reportTemplate": {
                        "$ref": "#/components/schemas/v1EvaluateRulesFromReportTemplate"
                    },
                    "allApplicableRules": {
                        "type": "boolean"
                    },
                    "annotationOptions": {
                        "$ref": "#/components/schemas/v1EvaluateRulesAnnotationOptions"
                    },
                    "organizationId": {
                        "type": "string",
                        "title": "Only required if your user belongs to multiple organizations"
                    },
                    "reportName": {
                        "type": "string",
                        "description": "If this request creates a report, this field will be used as the report name."
                    },
                    "runFamilyAlignmentConfigs": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1RunFamilyAlignmentConfig"
                        },
                        "title": "If evaluating a run against a family stat, this field will be used to provide alignment configuration for the run under test"
                    }
                }
            },
            "siftrule_evaluationv1EvaluateRulesResponse": {
                "type": "object",
                "properties": {
                    "createdAnnotationCount": {
                        "type": "integer",
                        "format": "int32"
                    },
                    "reportId": {
                        "type": "string",
                        "description": "A report will be generated if rules were evaluated against a run."
                    },
                    "jobId": {
                        "type": "string",
                        "description": "This will be set if the job has an extended run time and is being processed asynchronously."
                    }
                },
                "required": [
                    "createdAnnotationCount"
                ]
            },
            "siftrulesv1CalculatedChannelConfig": {
                "type": "object",
                "properties": {
                    "channelReferences": {
                        "type": "object",
                        "additionalProperties": {
                            "$ref": "#/components/schemas/rulesv1ChannelReference"
                        }
                    },
                    "expression": {
                        "type": "string"
                    },
                    "functionDependencies": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1FunctionDependency"
                        },
                        "description": "This will be ignored in requests and will be generated automatically."
                    },
                    "calculatedChannelDependencies": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/typev1CalculatedChannelDependency"
                        },
                        "description": "This will be ignored in requests and will be generated automatically.\nTracks which calculated channel versions this rule depends on.",
                        "readOnly": true
                    }
                },
                "required": [
                    "channelReferences",
                    "expression"
                ]
            },
            "siftrulesv1EvaluateRulesRequest": {
                "type": "object",
                "properties": {
                    "ruleIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "annotationOptions": {
                        "$ref": "#/components/schemas/v1EvaluatedAnnotationOptions"
                    },
                    "runId": {
                        "type": "string"
                    },
                    "timeRange": {
                        "$ref": "#/components/schemas/v1TimeRangeQuery"
                    },
                    "dryRun": {
                        "type": "boolean"
                    }
                },
                "description": "Deprecated - use RuleEvaluationService instead.",
                "required": [
                    "ruleIds"
                ]
            },
            "siftrulesv1EvaluateRulesResponse": {
                "type": "object",
                "properties": {
                    "createdAnnotationCount": {
                        "type": "integer",
                        "format": "int32"
                    },
                    "dryRunAnnotations": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1DryRunAnnotation"
                        },
                        "title": "If dry_run is true, this will be populated with the annotations that would be created"
                    },
                    "jobId": {
                        "type": "string",
                        "description": "job_id and report_id will be set if the job has an extended run time and is being processed asynchronously."
                    },
                    "reportId": {
                        "type": "string"
                    }
                },
                "description": "Deprecated - use RuleEvaluationService instead."
            },
            "tagsv1CreateTagRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "description": "The name for the new tag.\nIf the tag already exists, an error is returned."
                    },
                    "organizationId": {
                        "type": "string"
                    }
                },
                "description": "The request for a call to TagService.CreateTag.",
                "required": [
                    "name"
                ]
            },
            "tagsv1CreateTagResponse": {
                "type": "object",
                "properties": {
                    "tag": {
                        "$ref": "#/components/schemas/azimuthtagsv1Tag"
                    }
                },
                "description": "The result of a call to TagService.CreateTag."
            },
            "tagsv1ListTagsResponse": {
                "type": "object",
                "properties": {
                    "tags": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/azimuthtagsv1Tag"
                        }
                    },
                    "nextPageToken": {
                        "type": "string",
                        "description": "A token, which can be sent as `page_token` to retrieve the next page.\nIf this field is empty, there are no subsequent pages."
                    }
                }
            },
            "tagsv2CreateTagRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "description": "The name for the new tag.\nIf the tag already exists, an error is returned."
                    }
                },
                "description": "The request for a call to TagService.CreateTag.",
                "required": [
                    "name"
                ]
            },
            "tagsv2CreateTagResponse": {
                "type": "object",
                "properties": {
                    "tag": {
                        "$ref": "#/components/schemas/tagsv2Tag"
                    }
                },
                "description": "The result of a call to TagService.CreateTag."
            },
            "tagsv2ListTagsResponse": {
                "type": "object",
                "properties": {
                    "tags": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/tagsv2Tag"
                        }
                    },
                    "nextPageToken": {
                        "type": "string",
                        "description": "A token, which can be sent as `page_token` to retrieve the next page.\nIf this field is empty, there are no subsequent pages."
                    }
                }
            },
            "tagsv2Tag": {
                "type": "object",
                "properties": {
                    "tagId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "name": {
                        "type": "string",
                        "readOnly": true
                    },
                    "createdByUserId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    }
                }
            },
            "typev1CalculatedChannelDependency": {
                "type": "object",
                "properties": {
                    "calculatedChannelVersionId": {
                        "type": "string"
                    }
                },
                "description": "A dependency on another calculated channel.",
                "required": [
                    "calculatedChannelVersionId"
                ]
            },
            "unitv2Unit": {
                "type": "object",
                "properties": {
                    "unitId": {
                        "type": "string"
                    },
                    "abbreviatedName": {
                        "type": "string"
                    }
                },
                "required": [
                    "unitId",
                    "abbreviatedName"
                ]
            },
            "v1AbstractWindowType": {
                "type": "object",
                "properties": {
                    "familyAlignmentName": {
                        "type": "string"
                    },
                    "duration": {
                        "type": "string",
                        "description": "Duration relative to the alignment used to compare the data. Defaults to 0 seconds."
                    }
                },
                "description": "AbstractWindowType represents a window boundary that is agnostic of the alignment ID."
            },
            "v1ActionKind": {
                "type": "string",
                "enum": [
                    "ACTION_KIND_UNSPECIFIED",
                    "NOTIFICATION",
                    "ANNOTATION",
                    "WEBHOOK"
                ],
                "default": "ACTION_KIND_UNSPECIFIED"
            },
            "v1AnnotationActionConfiguration": {
                "type": "object",
                "properties": {
                    "tagIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "annotationType": {
                        "$ref": "#/components/schemas/v1AnnotationType"
                    },
                    "assignedToUserId": {
                        "type": "string"
                    },
                    "metadata": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        }
                    }
                },
                "required": [
                    "tagIds"
                ]
            },
            "v1AnnotationAlignment": {
                "type": "object",
                "properties": {
                    "annotationId": {
                        "type": "string"
                    },
                    "bound": {
                        "$ref": "#/components/schemas/v1TimeRangeBound"
                    }
                },
                "required": [
                    "annotationId",
                    "bound"
                ]
            },
            "v1AnnotationCommentBodyElement": {
                "type": "object",
                "properties": {
                    "type": {
                        "$ref": "#/components/schemas/v1AnnotationCommentBodyElementType"
                    },
                    "text": {
                        "type": "string"
                    },
                    "userMention": {
                        "$ref": "#/components/schemas/v1AnnotationCommentUserMention"
                    }
                },
                "required": [
                    "type"
                ]
            },
            "v1AnnotationCommentBodyElementType": {
                "type": "string",
                "enum": [
                    "ANNOTATION_COMMENT_BODY_ELEMENT_TYPE_UNSPECIFIED",
                    "ANNOTATION_COMMENT_BODY_ELEMENT_TYPE_TEXT",
                    "ANNOTATION_COMMENT_BODY_ELEMENT_TYPE_USER_MENTION"
                ],
                "default": "ANNOTATION_COMMENT_BODY_ELEMENT_TYPE_UNSPECIFIED"
            },
            "v1AnnotationCommentUserMention": {
                "type": "object",
                "properties": {
                    "userId": {
                        "type": "string"
                    },
                    "userEmail": {
                        "type": "string"
                    }
                },
                "required": [
                    "userId",
                    "userEmail"
                ]
            },
            "v1AnnotationLinkedCalculatedChannel": {
                "type": "object",
                "properties": {
                    "calculatedChannelVersionId": {
                        "type": "string"
                    }
                },
                "required": [
                    "calculatedChannelVersionId"
                ]
            },
            "v1AnnotationLinkedChannel": {
                "type": "object",
                "properties": {
                    "channel": {
                        "$ref": "#/components/schemas/v1AnnotationLinkedChannelsChannel"
                    },
                    "bitFieldElement": {
                        "$ref": "#/components/schemas/v1AnnotationLinkedChannelsBitFieldElement"
                    },
                    "calculatedChannel": {
                        "$ref": "#/components/schemas/v1AnnotationLinkedCalculatedChannel"
                    }
                }
            },
            "v1AnnotationLinkedChannelsBitFieldElement": {
                "type": "object",
                "properties": {
                    "channelId": {
                        "type": "string"
                    },
                    "bitFieldName": {
                        "type": "string"
                    }
                },
                "required": [
                    "channelId",
                    "bitFieldName"
                ]
            },
            "v1AnnotationLinkedChannelsChannel": {
                "type": "object",
                "properties": {
                    "channelId": {
                        "type": "string"
                    }
                },
                "required": [
                    "channelId"
                ]
            },
            "v1AnnotationLogAssignedProperties": {
                "type": "object",
                "properties": {
                    "assignedToUserId": {
                        "type": "string"
                    },
                    "assignedToUserEmail": {
                        "type": "string"
                    }
                },
                "required": [
                    "assignedToUserId",
                    "assignedToUserEmail"
                ]
            },
            "v1AnnotationLogCommentProperties": {
                "type": "object",
                "properties": {
                    "body": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1AnnotationCommentBodyElement"
                        }
                    }
                }
            },
            "v1AnnotationLogKind": {
                "type": "string",
                "enum": [
                    "ANNOTATION_LOG_KIND_UNSPECIFIED",
                    "ANNOTATION_LOG_KIND_COMMENT",
                    "ANNOTATION_LOG_KIND_STATE_UPDATE",
                    "ANNOTATION_LOG_KIND_ASSIGNED"
                ],
                "default": "ANNOTATION_LOG_KIND_UNSPECIFIED"
            },
            "v1AnnotationLogSearchResult": {
                "type": "object",
                "properties": {
                    "annotationLogId": {
                        "type": "string"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "annotationId": {
                        "type": "string"
                    },
                    "kind": {
                        "$ref": "#/components/schemas/v1AnnotationLogKind"
                    },
                    "createdByUserId": {
                        "type": "string"
                    },
                    "createdByUserName": {
                        "type": "string"
                    },
                    "assigned": {
                        "$ref": "#/components/schemas/v1AnnotationLogAssignedProperties"
                    },
                    "stateUpdate": {
                        "$ref": "#/components/schemas/v1AnnotationLogStateUpdateProperties"
                    },
                    "comment": {
                        "$ref": "#/components/schemas/v1AnnotationLogCommentProperties"
                    }
                },
                "required": [
                    "annotationLogId",
                    "createdDate",
                    "modifiedDate",
                    "annotationId",
                    "kind",
                    "createdByUserId",
                    "createdByUserName"
                ]
            },
            "v1AnnotationLogState": {
                "type": "string",
                "enum": [
                    "ANNOTATION_LOG_STATE_UNSPECIFIED",
                    "ANNOTATION_LOG_STATE_CREATED",
                    "ANNOTATION_LOG_STATE_OPEN",
                    "ANNOTATION_LOG_STATE_FLAGGED",
                    "ANNOTATION_LOG_STATE_RESOLVED"
                ],
                "default": "ANNOTATION_LOG_STATE_UNSPECIFIED"
            },
            "v1AnnotationLogStateUpdateProperties": {
                "type": "object",
                "properties": {
                    "state": {
                        "$ref": "#/components/schemas/v1AnnotationLogState"
                    }
                },
                "required": [
                    "state"
                ]
            },
            "v1AnnotationOccurrence": {
                "type": "string",
                "enum": [
                    "ANNOTATION_OCCURRENCE_UNSPECIFIED",
                    "ANNOTATION_OCCURRENCE_FIRST",
                    "ANNOTATION_OCCURRENCE_LAST",
                    "ANNOTATION_OCCURRENCE_EVERY",
                    "ANNOTATION_OCCURRENCE_NTH"
                ],
                "default": "ANNOTATION_OCCURRENCE_UNSPECIFIED"
            },
            "v1AnnotationState": {
                "type": "string",
                "enum": [
                    "ANNOTATION_STATE_UNSPECIFIED",
                    "ANNOTATION_STATE_OPEN",
                    "ANNOTATION_STATE_FLAGGED",
                    "ANNOTATION_STATE_RESOLVED"
                ],
                "default": "ANNOTATION_STATE_UNSPECIFIED"
            },
            "v1AnnotationType": {
                "type": "string",
                "enum": [
                    "ANNOTATION_TYPE_UNSPECIFIED",
                    "ANNOTATION_TYPE_DATA_REVIEW",
                    "ANNOTATION_TYPE_PHASE"
                ],
                "default": "ANNOTATION_TYPE_UNSPECIFIED"
            },
            "v1ArchiveAnnotationResponse": {
                "type": "object",
                "properties": {
                    "annotation": {
                        "$ref": "#/components/schemas/annotationsv1Annotation"
                    }
                },
                "description": "The response of a call to `AnnotationService_ArchiveAnnotation`.",
                "required": [
                    "annotation"
                ]
            },
            "v1ArchiveArtifactResponse": {
                "type": "object"
            },
            "v1ArchiveAssetResponse": {
                "type": "object",
                "properties": {
                    "archivedRunIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "List of run IDs that were archived when archive_runs was set to true.\nThis field will be empty if archive_runs was false or if no runs were archived."
                    }
                },
                "description": "The response of a call to `AssetService_ArchiveAsset`."
            },
            "v1ArchiveMetadataKeysRequest": {
                "type": "object",
                "properties": {
                    "metadataKeys": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataKey"
                        }
                    }
                },
                "required": [
                    "metadataKeys"
                ]
            },
            "v1ArchiveMetadataKeysResponse": {
                "type": "object"
            },
            "v1ArchiveMetadataValuesRequest": {
                "type": "object",
                "properties": {
                    "metadataValues": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        }
                    }
                },
                "required": [
                    "metadataValues"
                ]
            },
            "v1ArchiveMetadataValuesResponse": {
                "type": "object"
            },
            "v1ArchivePolicyResponse": {
                "type": "object",
                "properties": {
                    "policy": {
                        "$ref": "#/components/schemas/v1Policy"
                    }
                },
                "description": "The response of a call to `PolicyService_ArchivePolicy`.",
                "required": [
                    "policy"
                ]
            },
            "v1ArchivePrincipalAttributeEnumValueResponse": {
                "type": "object",
                "properties": {
                    "principalAttributeValuesMigrated": {
                        "type": "integer",
                        "format": "int32",
                        "description": "Total number of principal attribute values migrated or archived by this operation.\nWhen a replacement enum value is provided, this represents values migrated to the new value.\nWhen no replacement is provided, this represents values that were archived."
                    }
                }
            },
            "v1ArchivePrincipalAttributeKeysRequest": {
                "type": "object",
                "properties": {
                    "principalAttributeKeyIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "description": "ArchivePrincipalAttributeKeysRequest is used to batch archive principal attribute keys by id.",
                "required": [
                    "principalAttributeKeyIds"
                ]
            },
            "v1ArchivePrincipalAttributeKeysResponse": {
                "type": "object"
            },
            "v1ArchivePrincipalAttributeValuesRequest": {
                "type": "object",
                "properties": {
                    "principalAttributeValueIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "principalType": {
                        "$ref": "#/components/schemas/v1PrincipalAttributePrincipalType"
                    }
                },
                "description": "ArchivePrincipalAttributeValuesRequest is used to batch archive principal attribute values by id.",
                "required": [
                    "principalAttributeValueIds",
                    "principalType"
                ]
            },
            "v1ArchivePrincipalAttributeValuesResponse": {
                "type": "object"
            },
            "v1ArchiveResourceAttributeEnumValueResponse": {
                "type": "object",
                "properties": {
                    "resourceAttributesMigrated": {
                        "type": "integer",
                        "format": "int32",
                        "description": "Total number of resource-attributes migrated or archived by this operation.\nWhen a replacement enum value is provided, this represents attributes migrated to the new value.\nWhen no replacement is provided, this represents attributes that were archived."
                    }
                }
            },
            "v1ArchiveResourceAttributeKeyResponse": {
                "type": "object"
            },
            "v1ArchiveResourceAttributeResponse": {
                "type": "object"
            },
            "v1ArchiveRuleRequest": {
                "type": "object",
                "properties": {
                    "ruleId": {
                        "type": "string"
                    },
                    "clientKey": {
                        "type": "string"
                    }
                },
                "description": "ArchiveRuleRequest is used to archive a rule by rule_id or client_key. If both are provided, only rule_id will be used."
            },
            "v1ArchiveRuleResponse": {
                "type": "object"
            },
            "v1Artifact": {
                "type": "object",
                "properties": {
                    "artifactId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "organizationId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "createdByUserId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "archivedDate": {
                        "type": "string",
                        "format": "date-time",
                        "description": "Unset while the artifact is active.",
                        "readOnly": true
                    },
                    "storageClass": {
                        "$ref": "#/components/schemas/v1ArtifactStorageClass"
                    },
                    "createdVia": {
                        "$ref": "#/components/schemas/v1ArtifactCreatedVia"
                    },
                    "currentVersionId": {
                        "type": "string",
                        "description": "The artifact's latest version. A pinned read reports it too, so a client\nholding an older version can tell that it is behind.",
                        "readOnly": true
                    }
                },
                "description": "The container. Everything that varies by version lives on ArtifactVersion,\nand the two travel together in ArtifactDetails."
            },
            "v1ArtifactCreatedVia": {
                "type": "string",
                "enum": [
                    "ARTIFACT_CREATED_VIA_UNSPECIFIED",
                    "ARTIFACT_CREATED_VIA_AGENT",
                    "ARTIFACT_CREATED_VIA_CANVAS",
                    "ARTIFACT_CREATED_VIA_UPLOAD"
                ],
                "default": "ARTIFACT_CREATED_VIA_UNSPECIFIED",
                "description": "Which surface wrote the artifact.\n\n - ARTIFACT_CREATED_VIA_UNSPECIFIED: The producing surface is not specified.\n - ARTIFACT_CREATED_VIA_AGENT: An agent wrote the artifact.\n - ARTIFACT_CREATED_VIA_CANVAS: Canvas wrote the artifact.\n - ARTIFACT_CREATED_VIA_UPLOAD: A direct upload wrote the artifact."
            },
            "v1ArtifactDetails": {
                "type": "object",
                "properties": {
                    "artifact": {
                        "$ref": "#/components/schemas/v1Artifact"
                    },
                    "artifactVersion": {
                        "$ref": "#/components/schemas/v1ArtifactVersion"
                    }
                },
                "description": "An artifact and one of its versions: the one artifact_version_id pinned, or\nthe latest."
            },
            "v1ArtifactEntityType": {
                "type": "string",
                "enum": [
                    "ARTIFACT_ENTITY_TYPE_UNSPECIFIED",
                    "ARTIFACT_ENTITY_TYPE_CONVERSATION",
                    "ARTIFACT_ENTITY_TYPE_CANVAS",
                    "ARTIFACT_ENTITY_TYPE_RUN",
                    "ARTIFACT_ENTITY_TYPE_ASSET",
                    "ARTIFACT_ENTITY_TYPE_ARTIFACT",
                    "ARTIFACT_ENTITY_TYPE_TOOL_USE"
                ],
                "default": "ARTIFACT_ENTITY_TYPE_UNSPECIFIED",
                "description": "The kind of entity an artifact link points at. entity_id is opaque: a UUID\nfor Sift entities, or the provider tool_use_id for TOOL_USE.\n\n - ARTIFACT_ENTITY_TYPE_UNSPECIFIED: The entity type is not specified."
            },
            "v1ArtifactLinkInput": {
                "type": "object",
                "properties": {
                    "relation": {
                        "$ref": "#/components/schemas/v1ArtifactLinkRelation"
                    },
                    "entityType": {
                        "$ref": "#/components/schemas/v1ArtifactEntityType"
                    },
                    "entityId": {
                        "type": "string"
                    }
                },
                "required": [
                    "relation",
                    "entityType",
                    "entityId"
                ]
            },
            "v1ArtifactLinkRelation": {
                "type": "string",
                "enum": [
                    "ARTIFACT_LINK_RELATION_UNSPECIFIED",
                    "ARTIFACT_LINK_RELATION_ATTACHED_TO",
                    "ARTIFACT_LINK_RELATION_SOURCE",
                    "ARTIFACT_LINK_RELATION_DERIVED_FROM"
                ],
                "default": "ARTIFACT_LINK_RELATION_UNSPECIFIED",
                "description": " - ARTIFACT_LINK_RELATION_UNSPECIFIED: The link relation is not specified.\n - ARTIFACT_LINK_RELATION_ATTACHED_TO: Placement, where the artifact surfaces.\n - ARTIFACT_LINK_RELATION_SOURCE: Provenance, what the artifact was produced from; immutable.\n - ARTIFACT_LINK_RELATION_DERIVED_FROM: Artifact-to-artifact."
            },
            "v1ArtifactStorageClass": {
                "type": "string",
                "enum": [
                    "ARTIFACT_STORAGE_CLASS_UNSPECIFIED",
                    "ARTIFACT_STORAGE_CLASS_FILE",
                    "ARTIFACT_STORAGE_CLASS_STRUCTURED",
                    "ARTIFACT_STORAGE_CLASS_BLOB"
                ],
                "default": "ARTIFACT_STORAGE_CLASS_UNSPECIFIED",
                "description": " - ARTIFACT_STORAGE_CLASS_UNSPECIFIED: The storage class is not specified.\n - ARTIFACT_STORAGE_CLASS_FILE: Bytes in remote_files, previewable by MIME type.\n - ARTIFACT_STORAGE_CLASS_STRUCTURED: Content is the JSON payload, no file.\n - ARTIFACT_STORAGE_CLASS_BLOB: Bytes in remote_files, opaque, download only."
            },
            "v1ArtifactVersion": {
                "type": "object",
                "properties": {
                    "artifactVersionId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "artifactId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "version": {
                        "type": "integer",
                        "format": "int64",
                        "readOnly": true
                    },
                    "title": {
                        "type": "string"
                    },
                    "summary": {
                        "type": "string"
                    },
                    "authoringMessageId": {
                        "type": "string",
                        "description": "Set only for versions authored inside a conversation, and there only\nafter the introducing message persists: uploads attach before the user\nsends, and agent turns persist messages only at end of turn.",
                        "readOnly": true
                    },
                    "sourceToolUseIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "readOnly": true
                    },
                    "remoteFileId": {
                        "type": "string",
                        "description": "Unset until bytes are uploaded."
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "fileName": {
                        "type": "string",
                        "description": "From the version's remote_files record. Unset until bytes are uploaded.\nClients infer preview behavior from file_name / file_mime_type.",
                        "readOnly": true
                    },
                    "fileMimeType": {
                        "type": "string",
                        "readOnly": true
                    },
                    "payload": {
                        "type": "object",
                        "description": "Set by GetArtifact for STRUCTURED artifacts. The listings omit it."
                    },
                    "metadata": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        },
                        "description": "Metadata attached to this version."
                    }
                }
            },
            "v1AssetExpressionValidationResult": {
                "type": "object",
                "properties": {
                    "assetId": {
                        "type": "string"
                    },
                    "assetName": {
                        "type": "string"
                    },
                    "assetTagId": {
                        "type": "string",
                        "title": "asset_tag_id is the tag_id that caused this asset to be included in the rule"
                    },
                    "error": {
                        "type": "string"
                    }
                },
                "required": [
                    "assetId",
                    "assetName"
                ]
            },
            "v1AssetsAndTimeRange": {
                "type": "object",
                "properties": {
                    "assetIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "startTime": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "stopTime": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "required": [
                    "assetIds",
                    "startTime",
                    "stopTime"
                ]
            },
            "v1AssetsTimeRange": {
                "type": "object",
                "properties": {
                    "assets": {
                        "$ref": "#/components/schemas/v1NamedResources"
                    },
                    "startTime": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "endTime": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "required": [
                    "assets",
                    "startTime",
                    "endTime"
                ]
            },
            "v1AudioMetadata": {
                "type": "object",
                "properties": {
                    "durationSeconds": {
                        "type": "number",
                        "format": "float"
                    },
                    "timestamp": {
                        "type": "string",
                        "format": "date-time"
                    }
                }
            },
            "v1AutomationTrigger": {
                "type": "object",
                "properties": {
                    "automationTriggerId": {
                        "type": "string"
                    },
                    "organizationId": {
                        "type": "string"
                    },
                    "canvasId": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "matchFilter": {
                        "$ref": "#/components/schemas/v1AutomationTriggerMatchFilter"
                    },
                    "userId": {
                        "type": "string",
                        "description": "User the worker impersonates for EvaluateCanvas."
                    },
                    "actionKind": {
                        "$ref": "#/components/schemas/v1AutomationTriggerActionKind"
                    },
                    "actionParams": {
                        "$ref": "#/components/schemas/v1AutomationTriggerActionParams"
                    },
                    "isEnabled": {
                        "type": "boolean"
                    },
                    "archivedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "isArchived": {
                        "type": "boolean"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "createdByUserId": {
                        "type": "string"
                    },
                    "modifiedByUserId": {
                        "type": "string"
                    },
                    "emailNotificationsEnabled": {
                        "type": "boolean",
                        "description": "If true, also emails `notification_recipient_emails`. The in-app\nnotification to the creator is always created. Defaults to true."
                    },
                    "notificationRecipientEmails": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "Dispatch email recipients. Empty uses the creator's address."
                    },
                    "reportNameTemplate": {
                        "type": "string",
                        "description": "Names the reports this automation publishes, overriding the canvas\nversion's template for its dispatches only. Unset means the canvas\nversion's template names them. When that is unset, the triggering run\nis used to name the reports.\n\nBraces mark a placeholder. Supported placeholders are `{canvas_name}`,\n`{version_number}`, and `{parameter.<param name>}`."
                    },
                    "triggerKind": {
                        "$ref": "#/components/schemas/v1AutomationTriggerKind"
                    },
                    "cronExpression": {
                        "type": "string",
                        "description": "5-field Vixie cron (minute hour day-of-month month day-of-week).\nRequired for SCHEDULE; unset for RUN_STOP."
                    },
                    "timezone": {
                        "type": "string",
                        "description": "IANA timezone for cron_expression (for example America/Los_Angeles).\nRequired for SCHEDULE; unset for RUN_STOP."
                    },
                    "nextFireAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "Next UTC fire. Server-computed. Set on SCHEDULE only.",
                        "readOnly": true
                    },
                    "lastFireAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "UTC fire most recently enqueued. Unset until the first TickDue.",
                        "readOnly": true
                    }
                },
                "description": "AutomationTrigger is a Canvas Scheduler rule: match a stopped run or fire\non a cron cadence, then dispatch (v1: EvaluateCanvas).",
                "required": [
                    "automationTriggerId",
                    "organizationId",
                    "canvasId",
                    "name",
                    "userId",
                    "actionKind",
                    "isEnabled",
                    "isArchived",
                    "createdDate",
                    "modifiedDate",
                    "createdByUserId",
                    "modifiedByUserId",
                    "emailNotificationsEnabled",
                    "notificationRecipientEmails",
                    "triggerKind"
                ]
            },
            "v1AutomationTriggerActionKind": {
                "type": "string",
                "enum": [
                    "AUTOMATION_TRIGGER_ACTION_KIND_UNSPECIFIED",
                    "AUTOMATION_TRIGGER_ACTION_KIND_CANVAS_EVALUATION"
                ],
                "default": "AUTOMATION_TRIGGER_ACTION_KIND_UNSPECIFIED",
                "description": "AutomationTriggerActionKind is what a trigger does when it fires. v1 is\nCANVAS_EVALUATION only."
            },
            "v1AutomationTriggerActionParams": {
                "type": "object",
                "properties": {
                    "canvasEvaluation": {
                        "$ref": "#/components/schemas/v1CanvasEvaluationActionParams"
                    }
                },
                "description": "AutomationTriggerActionParams is the public action_params shape, oneof by\naction kind."
            },
            "v1AutomationTriggerKind": {
                "type": "string",
                "enum": [
                    "AUTOMATION_TRIGGER_KIND_UNSPECIFIED",
                    "AUTOMATION_TRIGGER_KIND_RUN_STOP",
                    "AUTOMATION_TRIGGER_KIND_SCHEDULE"
                ],
                "default": "AUTOMATION_TRIGGER_KIND_UNSPECIFIED",
                "description": "AutomationTriggerKind is the source that causes a trigger to fire.\n\n - AUTOMATION_TRIGGER_KIND_RUN_STOP: Fire after a matching run stops.\n - AUTOMATION_TRIGGER_KIND_SCHEDULE: Fire on a recurring cron cadence in an IANA timezone.\n\nReserved. Create/Update reject this value."
            },
            "v1AutomationTriggerMatchFilter": {
                "type": "object",
                "properties": {
                    "assetIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "nameMatch": {
                        "$ref": "#/components/schemas/v1AutomationTriggerRunNameMatch"
                    },
                    "metadataMatches": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1AutomationTriggerMetadataMatch"
                        }
                    }
                },
                "description": "AutomationTriggerMatchFilter selects which stopped runs a trigger matches.\nEmpty asset_ids, absent name_match, and empty metadata_matches each match\nany value. Dimensions are AND'd. STARTS_WITH / ENDS_WITH / CONTAINS are\ncase-insensitive; REGEX is Go regexp (add (?i) for case-insensitive)."
            },
            "v1AutomationTriggerMetadataMatch": {
                "type": "object",
                "properties": {
                    "key": {
                        "type": "string"
                    },
                    "value": {
                        "type": "string"
                    }
                },
                "description": "AutomationTriggerMetadataMatch is an equality filter on run entity-metadata.\nKeys are case-sensitive; values compare as Go-stringified strings. Listed\nmatches are AND'd.",
                "required": [
                    "key",
                    "value"
                ]
            },
            "v1AutomationTriggerParamSource": {
                "type": "string",
                "enum": [
                    "AUTOMATION_TRIGGER_PARAM_SOURCE_UNSPECIFIED",
                    "AUTOMATION_TRIGGER_PARAM_SOURCE_TRIGGERING_RUN",
                    "AUTOMATION_TRIGGER_PARAM_SOURCE_TRIGGERING_RUN_ASSETS"
                ],
                "default": "AUTOMATION_TRIGGER_PARAM_SOURCE_UNSPECIFIED",
                "description": "AutomationTriggerParamSource is a wildcard resolved from the triggering\nrun into action_params_snapshot.\n\n - AUTOMATION_TRIGGER_PARAM_SOURCE_TRIGGERING_RUN: Resolves to the triggering run's run_id (string).\n - AUTOMATION_TRIGGER_PARAM_SOURCE_TRIGGERING_RUN_ASSETS: Resolves to the triggering run's asset_ids (string array)."
            },
            "v1AutomationTriggerParamValue": {
                "type": "object",
                "properties": {
                    "literal": {},
                    "source": {
                        "$ref": "#/components/schemas/v1AutomationTriggerParamSource"
                    }
                },
                "description": "AutomationTriggerParamValue is one canvas param: a JSON literal or a\nrun-scoped source."
            },
            "v1AutomationTriggerRunNameMatch": {
                "type": "object",
                "properties": {
                    "kind": {
                        "$ref": "#/components/schemas/v1AutomationTriggerRunNameMatchKind"
                    },
                    "value": {
                        "type": "string"
                    }
                },
                "description": "AutomationTriggerRunNameMatch expresses a filter against runs.name.",
                "required": [
                    "kind",
                    "value"
                ]
            },
            "v1AutomationTriggerRunNameMatchKind": {
                "type": "string",
                "enum": [
                    "AUTOMATION_TRIGGER_RUN_NAME_MATCH_KIND_UNSPECIFIED",
                    "AUTOMATION_TRIGGER_RUN_NAME_MATCH_KIND_STARTS_WITH",
                    "AUTOMATION_TRIGGER_RUN_NAME_MATCH_KIND_ENDS_WITH",
                    "AUTOMATION_TRIGGER_RUN_NAME_MATCH_KIND_CONTAINS",
                    "AUTOMATION_TRIGGER_RUN_NAME_MATCH_KIND_REGEX"
                ],
                "default": "AUTOMATION_TRIGGER_RUN_NAME_MATCH_KIND_UNSPECIFIED",
                "description": "AutomationTriggerRunNameMatchKind is the operator on runs.name in an\nautomation trigger match filter."
            },
            "v1AutomationTriggeredEvent": {
                "type": "object",
                "properties": {
                    "automationTriggeredEventId": {
                        "type": "string"
                    },
                    "organizationId": {
                        "type": "string"
                    },
                    "automationTriggerId": {
                        "type": "string"
                    },
                    "runId": {
                        "type": "string",
                        "description": "Empty on SCHEDULE fires. Not proto3 optional: that would move field 4 into a oneof."
                    },
                    "state": {
                        "$ref": "#/components/schemas/v1AutomationTriggeredEventState"
                    },
                    "dispatchAfter": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "canvasExecutionId": {
                        "type": "string"
                    },
                    "attemptCount": {
                        "type": "integer",
                        "format": "int32"
                    },
                    "lastError": {
                        "type": "string"
                    },
                    "terminalDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "createdByUserId": {
                        "type": "string"
                    },
                    "modifiedByUserId": {
                        "type": "string"
                    },
                    "reportId": {
                        "type": "string",
                        "description": "Published report for the dispatched execution. Unset when dispatch did\nnot publish."
                    },
                    "scheduledFor": {
                        "type": "string",
                        "format": "date-time",
                        "description": "Scheduled fire this row represents. Set on SCHEDULE only.",
                        "readOnly": true
                    }
                },
                "description": "AutomationTriggeredEvent is one (trigger, run) dispatch.\n`canvas_execution_id` and `report_id` are set when dispatch published\nan execution or report.",
                "required": [
                    "automationTriggeredEventId",
                    "organizationId",
                    "automationTriggerId",
                    "state",
                    "dispatchAfter",
                    "attemptCount",
                    "createdDate",
                    "modifiedDate",
                    "createdByUserId",
                    "modifiedByUserId"
                ]
            },
            "v1AutomationTriggeredEventState": {
                "type": "string",
                "enum": [
                    "AUTOMATION_TRIGGERED_EVENT_STATE_UNSPECIFIED",
                    "AUTOMATION_TRIGGERED_EVENT_STATE_WAITING",
                    "AUTOMATION_TRIGGERED_EVENT_STATE_DISPATCHING",
                    "AUTOMATION_TRIGGERED_EVENT_STATE_DONE",
                    "AUTOMATION_TRIGGERED_EVENT_STATE_FAILED",
                    "AUTOMATION_TRIGGERED_EVENT_STATE_CANCELLED"
                ],
                "default": "AUTOMATION_TRIGGERED_EVENT_STATE_UNSPECIFIED",
                "description": "AutomationTriggeredEventState is the lifecycle of one (trigger, run)\ndispatch. DISPATCHING and CANCELLED are reserved and unused."
            },
            "v1BatchArchiveAnnotationsRequest": {
                "type": "object",
                "properties": {
                    "annotationIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "title": "Limit of 1000 annotations per batch"
                    }
                },
                "description": "The request for a call to `AnnotationService_BatchArchiveAnnotations`.",
                "required": [
                    "annotationIds"
                ]
            },
            "v1BatchArchiveAnnotationsResponse": {
                "type": "object",
                "properties": {
                    "annotations": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/annotationsv1Annotation"
                        }
                    }
                },
                "description": "The response of a call to `AnnotationService_BatchArchiveAnnotations`.",
                "required": [
                    "annotations"
                ]
            },
            "v1BatchArchivePrincipalAttributeEnumValuesRequest": {
                "type": "object",
                "properties": {
                    "archivalRequests": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1BatchArchivePrincipalAttributeEnumValuesRequestEnumValueArchival"
                        }
                    }
                },
                "required": [
                    "archivalRequests"
                ]
            },
            "v1BatchArchivePrincipalAttributeEnumValuesRequestEnumValueArchival": {
                "type": "object",
                "properties": {
                    "archivedEnumValueId": {
                        "type": "string",
                        "description": "The enum value ID to archive."
                    },
                    "replacementEnumValueId": {
                        "type": "string",
                        "description": "When the archived_enum_value_id is archived all principal attribute values that reference it will be migrated to the replacement_enum_value_id\nif provided. Otherwise, user-attributes that reference it will be archived as well."
                    }
                },
                "required": [
                    "archivedEnumValueId"
                ]
            },
            "v1BatchArchivePrincipalAttributeEnumValuesResponse": {
                "type": "object",
                "properties": {
                    "totalPrincipalAttributeValuesMigrated": {
                        "type": "integer",
                        "format": "int32",
                        "description": "Total number of principal attribute values migrated or archived across all enum value operations.\nThis includes both values migrated to replacement values and values archived without replacement."
                    }
                }
            },
            "v1BatchArchiveResourceAttributeEnumValuesRequest": {
                "type": "object",
                "properties": {
                    "archivalRequests": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1BatchArchiveResourceAttributeEnumValuesRequestEnumValueArchival"
                        }
                    }
                },
                "required": [
                    "archivalRequests"
                ]
            },
            "v1BatchArchiveResourceAttributeEnumValuesRequestEnumValueArchival": {
                "type": "object",
                "properties": {
                    "archivedEnumValueId": {
                        "type": "string",
                        "description": "The enum value ID to archive."
                    },
                    "replacementEnumValueId": {
                        "type": "string",
                        "description": "When the archived_enum_value_id is archived all resource-attributes that reference it will be migrated to the replacement_enum_value_id\nif provided. Otherwise, resource-attributes that reference it will be archived as well."
                    }
                },
                "required": [
                    "archivedEnumValueId"
                ]
            },
            "v1BatchArchiveResourceAttributeEnumValuesResponse": {
                "type": "object",
                "properties": {
                    "totalResourceAttributesMigrated": {
                        "type": "integer",
                        "format": "int32",
                        "description": "Total number of resource-attributes migrated or archived across all enum value operations.\nThis includes both attributes migrated to replacement values and attributes archived without replacement."
                    }
                }
            },
            "v1BatchArchiveResourceAttributeKeysRequest": {
                "type": "object",
                "properties": {
                    "resourceAttributeKeyIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "required": [
                    "resourceAttributeKeyIds"
                ]
            },
            "v1BatchArchiveResourceAttributeKeysResponse": {
                "type": "object"
            },
            "v1BatchArchiveResourceAttributesRequest": {
                "type": "object",
                "properties": {
                    "resourceAttributeIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "required": [
                    "resourceAttributeIds"
                ]
            },
            "v1BatchArchiveResourceAttributesResponse": {
                "type": "object"
            },
            "v1BatchArchiveRulesRequest": {
                "type": "object",
                "properties": {
                    "ruleIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "clientKeys": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "description": "BatchArchiveRulesRequest is used to archive a rule by rule_id or client_key. For each rule if both are provided, only rule_id will be used."
            },
            "v1BatchArchiveRulesResponse": {
                "type": "object"
            },
            "v1BatchCreatePrincipalAttributeValueRequest": {
                "type": "object",
                "properties": {
                    "principalAttributeKeyId": {
                        "type": "string"
                    },
                    "principalIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "principalType": {
                        "$ref": "#/components/schemas/v1PrincipalAttributePrincipalType"
                    },
                    "principalAttributeEnumValueId": {
                        "type": "string",
                        "description": "For ENUM type: exactly one enum value ID."
                    },
                    "principalAttributeEnumValueIds": {
                        "$ref": "#/components/schemas/v1PrincipalAttributeEnumValueIdList"
                    },
                    "numberValue": {
                        "type": "string",
                        "format": "int64"
                    },
                    "booleanValue": {
                        "type": "boolean"
                    }
                },
                "description": "BatchCreatePrincipalAttributeValueRequest is used to batch create new principal attribute values.",
                "required": [
                    "principalAttributeKeyId",
                    "principalIds",
                    "principalType"
                ]
            },
            "v1BatchCreatePrincipalAttributeValueResponse": {
                "type": "object",
                "properties": {
                    "principalAttributeValues": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1PrincipalAttributeValue"
                        }
                    }
                },
                "description": "BatchCreatePrincipalAttributeValueResponse returns the principal attribute values from a BatchCreatePrincipalAttributeValue call.",
                "required": [
                    "principalAttributeValues"
                ]
            },
            "v1BatchCreateResourceAttributesRequest": {
                "type": "object",
                "properties": {
                    "resourceAttributeKeyId": {
                        "type": "string"
                    },
                    "resourceAttributeEnumValueId": {
                        "type": "string",
                        "description": "For ENUM type: exactly one enum value ID."
                    },
                    "resourceAttributeEnumValueIds": {
                        "$ref": "#/components/schemas/v1ResourceAttributeEnumValueIdList"
                    },
                    "booleanValue": {
                        "type": "boolean"
                    },
                    "numberValue": {
                        "type": "string",
                        "format": "int64"
                    },
                    "entities": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ResourceAttributeEntityIdentifier"
                        }
                    }
                },
                "title": "ResourceAttribute RPC messages",
                "required": [
                    "resourceAttributeKeyId",
                    "entities"
                ]
            },
            "v1BatchCreateResourceAttributesResponse": {
                "type": "object",
                "properties": {
                    "resourceAttributes": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ResourceAttribute"
                        }
                    }
                }
            },
            "v1BatchCreateWebhookLogsRequest": {
                "type": "object",
                "properties": {
                    "requests": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1CreateWebhookLogRequest"
                        }
                    }
                },
                "description": "The request for a call to `WebhookService_BatchCreateWebhookLogs` to create a batch of webhook logs.",
                "required": [
                    "requests"
                ]
            },
            "v1BatchCreateWebhookLogsResponse": {
                "type": "object",
                "description": "The response of a call to `WebhookService_BatchCreateWebhookResponse`."
            },
            "v1BatchDeleteAnnotationsRequest": {
                "type": "object",
                "properties": {
                    "annotationIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "title": "Limit of 1000 annotations per batch"
                    }
                },
                "required": [
                    "annotationIds"
                ]
            },
            "v1BatchDeleteAnnotationsResponse": {
                "type": "object"
            },
            "v1BatchDeleteRemoteFilesRequest": {
                "type": "object",
                "properties": {
                    "remoteFileIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "Up to 1000 remote file IDs can be provided per request."
                    }
                },
                "description": "The request for a call to `RemoteFileService_BatchDeleteRemoteFiles` to delete remote files."
            },
            "v1BatchDeleteRemoteFilesResponse": {
                "type": "object",
                "description": "The response of a call to `RemoteFileService_BatchDeleteRemoteFiles`."
            },
            "v1BatchDeleteRulesRequest": {
                "type": "object",
                "properties": {
                    "ruleIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "clientKeys": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "description": "BatchDeleteRulesRequest is used to delete a rule by rule_id or client_key. For each rule if both are provided, only rule_id will be used."
            },
            "v1BatchDeleteRulesResponse": {
                "type": "object"
            },
            "v1BatchDeleteSavedSearchesRequest": {
                "type": "object",
                "properties": {
                    "savedSearchIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "title": "Limit of 1000 searches per batch"
                    }
                },
                "description": "The request for a call to `SavedSearchService_BatchDeleteSavedSearches` to delete saved searches."
            },
            "v1BatchDeleteSavedSearchesResponse": {
                "type": "object",
                "description": "The response of a call to `SavedSearchService_BatchDeleteSavedSearches`."
            },
            "v1BatchGetRuleVersionsRequest": {
                "type": "object",
                "properties": {
                    "ruleVersionIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "required": [
                    "ruleVersionIds"
                ]
            },
            "v1BatchGetRuleVersionsResponse": {
                "type": "object",
                "properties": {
                    "rules": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1Rule"
                        }
                    }
                },
                "required": [
                    "rules"
                ]
            },
            "v1BatchGetRulesRequest": {
                "type": "object",
                "properties": {
                    "ruleIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "clientKeys": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "description": "BatchGetRulesRequest is used to retrieve rules by rule_ids or client_keys. If both are provided, both will be used to retrieve rules."
            },
            "v1BatchGetRulesResponse": {
                "type": "object",
                "properties": {
                    "rules": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1Rule"
                        }
                    }
                },
                "required": [
                    "rules"
                ]
            },
            "v1BatchListResourceAttributesByEntityRequest": {
                "type": "object",
                "properties": {
                    "entities": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ResourceAttributeEntityIdentifier"
                        }
                    },
                    "includeArchived": {
                        "type": "boolean",
                        "description": "Whether to include archived resource-attributes. Defaults to false."
                    }
                },
                "required": [
                    "entities"
                ]
            },
            "v1BatchListResourceAttributesByEntityResponse": {
                "type": "object",
                "properties": {
                    "results": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/BatchListResourceAttributesByEntityResponseEntityResourceAttributes"
                        }
                    }
                }
            },
            "v1BatchUnarchiveAnnotationsRequest": {
                "type": "object",
                "properties": {
                    "annotationIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "title": "Limit of 1000 annotations per batch"
                    }
                },
                "description": "The request for a call to `AnnotationService_BatchUnarchiveAnnotations`.",
                "required": [
                    "annotationIds"
                ]
            },
            "v1BatchUnarchiveAnnotationsResponse": {
                "type": "object",
                "properties": {
                    "annotations": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/annotationsv1Annotation"
                        }
                    }
                },
                "description": "The response of a call to `AnnotationService_BatchUnarchiveAnnotations`.",
                "required": [
                    "annotations"
                ]
            },
            "v1BatchUnarchivePrincipalAttributeEnumValuesRequest": {
                "type": "object",
                "properties": {
                    "principalAttributeEnumValueIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "required": [
                    "principalAttributeEnumValueIds"
                ]
            },
            "v1BatchUnarchivePrincipalAttributeEnumValuesResponse": {
                "type": "object"
            },
            "v1BatchUnarchiveResourceAttributeEnumValuesRequest": {
                "type": "object",
                "properties": {
                    "resourceAttributeEnumValueIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "required": [
                    "resourceAttributeEnumValueIds"
                ]
            },
            "v1BatchUnarchiveResourceAttributeEnumValuesResponse": {
                "type": "object"
            },
            "v1BatchUnarchiveResourceAttributeKeysRequest": {
                "type": "object",
                "properties": {
                    "resourceAttributeKeyIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "required": [
                    "resourceAttributeKeyIds"
                ]
            },
            "v1BatchUnarchiveResourceAttributeKeysResponse": {
                "type": "object"
            },
            "v1BatchUnarchiveResourceAttributesRequest": {
                "type": "object",
                "properties": {
                    "resourceAttributeIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "required": [
                    "resourceAttributeIds"
                ]
            },
            "v1BatchUnarchiveResourceAttributesResponse": {
                "type": "object"
            },
            "v1BatchUnarchiveRulesRequest": {
                "type": "object",
                "properties": {
                    "ruleIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "clientKeys": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "description": "BatchUnarchiveRulesRequest is used to unarchive a rule by rule_id or client_key. For each rule if both are provided, only rule_id will be used."
            },
            "v1BatchUnarchiveRulesResponse": {
                "type": "object"
            },
            "v1BatchUndeleteRulesRequest": {
                "type": "object",
                "properties": {
                    "ruleIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "clientKeys": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "description": "BatchUndeleteRulesRequest is used to restore a rule by rule_id or client_key. For each rule if both are provided, only rule_id will be used."
            },
            "v1BatchUndeleteRulesResponse": {
                "type": "object"
            },
            "v1BatchUpdateNotificationsRequest": {
                "type": "object",
                "properties": {
                    "requests": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1UpdateNotificationRequest"
                        }
                    }
                },
                "description": "The request for a call to `NotificationService_BatchUpdateNotifications` to update notifications.\nA maximum of 1000 notifications can be modified in a batch.",
                "required": [
                    "requests"
                ]
            },
            "v1BatchUpdateNotificationsResponse": {
                "type": "object",
                "properties": {
                    "notifications": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1Notification"
                        },
                        "description": "The updated notifications."
                    }
                },
                "description": "The response of a call to `NotificationService_BatchUpdateNotifications` containing the updated notifications."
            },
            "v1BatchUpdateRulesRequest": {
                "type": "object",
                "properties": {
                    "rules": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1UpdateRuleRequest"
                        },
                        "title": "rules are limited 1000 rules at a time"
                    },
                    "validateOnly": {
                        "type": "boolean",
                        "description": "If validate_only is true, the request will only validate the request and not save the rules."
                    },
                    "overrideExpressionValidation": {
                        "type": "boolean",
                        "description": "Discouraged escape hatch for saving rules whose expression cannot be fully validated\nserver-side. When `true`:\n  - Per-asset expression validation errors (e.g. channel not present on the in-scope asset)\n    are returned in `validation_results` for visibility but do not block the save.\n  - If the rule's UDF/calculated-channel inlining cannot resolve types (typically because\n    the referenced channels haven't been ingested yet, or there are too many distinct\n    identifiers for the type-inference budget) the rule is still persisted, but its\n    `is_live_evaluation_enabled` is forced to `false`. Live alerts will skip it; report\n    generation and on-demand `EvaluateRules` calls still work because they re-resolve\n    types at run time.\nTo bring such a rule back online, fix the underlying problem (ingest the channels, simplify\nthe expression, etc.) and reissue an update with `is_live_evaluation_enabled = true`.\n\nMarked `deprecated = true` because new integrations should validate input *before*\nsubmitting; existing SDK call sites that rely on this flag continue to work."
                    }
                },
                "required": [
                    "rules"
                ]
            },
            "v1BatchUpdateRulesResponse": {
                "type": "object",
                "properties": {
                    "success": {
                        "type": "boolean",
                        "description": "True if no rule has an error, or\noverride_expression_validation is true. False if any rule has an error and that override is unset. When false\nand validate_only is false."
                    },
                    "rulesCreatedCount": {
                        "type": "integer",
                        "format": "int32",
                        "description": "Number of request rules classified as creates (no matching rule_id\nor existing client_key). Includes rules that failed validation.\nIf validate_only is true, nothing is written unless override_expression_validation is true."
                    },
                    "rulesUpdatedCount": {
                        "type": "integer",
                        "format": "int32",
                        "description": "Number of request rules classified as updates (matched by rule_id\nor an existing client_key). Includes rules that failed validation.\nIf validate_only is true, nothing is written unless override_expression_validation is true."
                    },
                    "validateOnly": {
                        "type": "boolean",
                        "description": "True if the request only validated the rules and did not save them."
                    },
                    "validationResults": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ValidationResult"
                        },
                        "description": "Rules that have at least one error (rules with multiple failing assets will appear multiple times). Passing\nrules are omitted, so this list is often shorter than `rules`.\nMatch a result with `rule_id`, `client_key`, or `rule_name`; do\nnot zip by index. A rule with several failing assets can appear\nmore than once. Rule-level errors with no per-asset expression\nerror do not appear."
                    },
                    "createdRuleIdentifiers": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/BatchUpdateRulesResponseRuleIdentifiers"
                        },
                        "description": "Identifiers for rules this request created. Empty when\nvalidate_only is true or success is false."
                    }
                },
                "required": [
                    "success",
                    "rulesCreatedCount",
                    "rulesUpdatedCount",
                    "validateOnly",
                    "validationResults",
                    "createdRuleIdentifiers"
                ]
            },
            "v1Campaign": {
                "type": "object",
                "properties": {
                    "campaignId": {
                        "type": "string"
                    },
                    "organizationId": {
                        "type": "string"
                    },
                    "clientKey": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "createdByUserId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "modifiedByUserId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "archivedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "tags": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1TagRef"
                        }
                    },
                    "reports": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1CampaignReport"
                        },
                        "title": "A campaign, at its core, is a list of reports"
                    },
                    "createdFromCampaignId": {
                        "type": "string",
                        "title": "If this campaign was created by duplicating another campaign, that other campaign will be referenced here",
                        "readOnly": true
                    },
                    "metadata": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        },
                        "title": "User-defined metadata for this campaign"
                    },
                    "isArchived": {
                        "type": "boolean",
                        "description": "Whether the campaign. This is inferred from whether archived_date is set."
                    },
                    "reportsIncludeSummaries": {
                        "type": "boolean",
                        "description": "Indicates whether the summary fields on CampaignReport (num_annotations,\nnum_passed_rules, num_accepted_rules, num_failed_rules, num_open_rules) are populated.\nWhen false, those fields should be ignored -- use GetCampaignReportSummaries to\nfetch the summary data separately.",
                        "readOnly": true
                    }
                },
                "required": [
                    "campaignId",
                    "name",
                    "isArchived"
                ]
            },
            "v1CampaignReport": {
                "type": "object",
                "properties": {
                    "reportId": {
                        "type": "string",
                        "description": "Direct reference to the report. Set this on the client to tell the backend which report you're referring to."
                    },
                    "reportName": {
                        "type": "string",
                        "readOnly": true
                    },
                    "numAnnotations": {
                        "type": "integer",
                        "format": "int64",
                        "description": "How many annotations exist under the report's various rules.",
                        "readOnly": true
                    },
                    "numPassedRules": {
                        "type": "integer",
                        "format": "int64",
                        "description": "How many rules from this report were never triggered and generated NO annotations.",
                        "readOnly": true
                    },
                    "numAcceptedRules": {
                        "type": "integer",
                        "format": "int64",
                        "description": "How many rules have annotations which are ALL marked as accepted.",
                        "readOnly": true
                    },
                    "numFailedRules": {
                        "type": "integer",
                        "format": "int64",
                        "description": "How many rules have ANY annotations which are marked as failed.",
                        "readOnly": true
                    },
                    "numOpenRules": {
                        "type": "integer",
                        "format": "int64",
                        "description": "How many rules have annotations of which SOME are marked as open and NONE are marked as failed.",
                        "readOnly": true
                    }
                },
                "description": "A top-level summary of the report's rules is provided here so clients needn't aggregate this information themselves.",
                "required": [
                    "reportId"
                ]
            },
            "v1CampaignReports": {
                "type": "object",
                "properties": {
                    "reports": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1CampaignReport"
                        }
                    }
                },
                "description": "Wrapper for repeated CampaignReport used in map values (proto3 maps cannot directly contain repeated fields)."
            },
            "v1CancelJobResponse": {
                "type": "object"
            },
            "v1CancelReportResponse": {
                "type": "object",
                "title": "no response fields"
            },
            "v1CanvasCellExecutionStatus": {
                "type": "string",
                "enum": [
                    "CANVAS_CELL_EXECUTION_STATUS_UNSPECIFIED",
                    "CANVAS_CELL_EXECUTION_STATUS_IN_PROGRESS",
                    "CANVAS_CELL_EXECUTION_STATUS_AUTO_PASSED",
                    "CANVAS_CELL_EXECUTION_STATUS_AUTO_FAILED",
                    "CANVAS_CELL_EXECUTION_STATUS_MANUAL_PASSED",
                    "CANVAS_CELL_EXECUTION_STATUS_MANUAL_FAILED",
                    "CANVAS_CELL_EXECUTION_STATUS_ERROR",
                    "CANVAS_CELL_EXECUTION_STATUS_SKIPPED",
                    "CANVAS_CELL_EXECUTION_STATUS_OPEN",
                    "CANVAS_CELL_EXECUTION_STATUS_MANUALLY_CANCELLED"
                ],
                "default": "CANVAS_CELL_EXECUTION_STATUS_UNSPECIFIED",
                "description": "Status of a single canvas cell execution. Also used as the status of the\nparent CanvasExecution: the parent rolls up its cells' statuses into a\nsingle value (e.g. any AUTO_FAILED cell yields an AUTO_FAILED execution)."
            },
            "v1CanvasEvaluationActionParams": {
                "type": "object",
                "properties": {
                    "canvasVersionId": {
                        "type": "string"
                    },
                    "paramJson": {
                        "type": "object",
                        "additionalProperties": {
                            "$ref": "#/components/schemas/v1AutomationTriggerParamValue"
                        }
                    }
                },
                "description": "CanvasEvaluationActionParams is the CANVAS_EVALUATION template. Wildcards\nin param_json resolve into the triggered event's action_params_snapshot\nfor EvaluateCanvas.",
                "required": [
                    "canvasVersionId"
                ]
            },
            "v1ChannelBitFieldElement": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "index": {
                        "type": "integer",
                        "format": "int32",
                        "description": "The index of this element's first bit in the logical bit field array."
                    },
                    "bitCount": {
                        "type": "integer",
                        "format": "int64"
                    }
                },
                "required": [
                    "name",
                    "index",
                    "bitCount"
                ]
            },
            "v1ChannelConfigurations": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "type": {
                        "$ref": "#/components/schemas/v1PlottedChannelType"
                    },
                    "color": {
                        "type": "string"
                    },
                    "channelSettings": {
                        "type": "object"
                    },
                    "bitFieldIndex": {
                        "type": "integer",
                        "format": "int32",
                        "title": "bitfield"
                    },
                    "bitFieldElement": {
                        "$ref": "#/components/schemas/v1ChannelBitFieldElement"
                    },
                    "expression": {
                        "type": "string",
                        "title": "temporary calculated channel"
                    },
                    "expressionChannelReferences": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v2CalculatedChannelAbstractChannelReference"
                        }
                    },
                    "dataType": {
                        "$ref": "#/components/schemas/v1ChannelDataType"
                    },
                    "calculatedChannelId": {
                        "type": "string",
                        "title": "published calculated channel reference; preferred over name for lookup"
                    }
                },
                "required": [
                    "name",
                    "type",
                    "color",
                    "channelSettings"
                ]
            },
            "v1ChannelDataType": {
                "type": "string",
                "enum": [
                    "CHANNEL_DATA_TYPE_UNSPECIFIED",
                    "CHANNEL_DATA_TYPE_DOUBLE",
                    "CHANNEL_DATA_TYPE_STRING",
                    "CHANNEL_DATA_TYPE_ENUM",
                    "CHANNEL_DATA_TYPE_BIT_FIELD",
                    "CHANNEL_DATA_TYPE_BOOL",
                    "CHANNEL_DATA_TYPE_FLOAT",
                    "CHANNEL_DATA_TYPE_INT_32",
                    "CHANNEL_DATA_TYPE_UINT_32",
                    "CHANNEL_DATA_TYPE_INT_64",
                    "CHANNEL_DATA_TYPE_UINT_64",
                    "CHANNEL_DATA_TYPE_BYTES"
                ],
                "default": "CHANNEL_DATA_TYPE_UNSPECIFIED"
            },
            "v1ChannelEnumType": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "key": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "isSigned": {
                        "type": "boolean"
                    }
                },
                "required": [
                    "name",
                    "key"
                ]
            },
            "v1CheckPrincipalAttributeKeyArchiveImpactResponse": {
                "type": "object",
                "properties": {
                    "activeUserPrincipalAttributeValueCount": {
                        "type": "string",
                        "format": "int64",
                        "description": "Non-archived user principal-attribute value rows for this key that will be archived with the key\n(same scope as ArchivePrincipalAttributeKeys; includes multiple rows per principal for SET_OF_ENUM).\nService account rows are counted separately."
                    },
                    "activeUserGroupPrincipalAttributeValueCount": {
                        "type": "string",
                        "format": "int64",
                        "description": "Non-archived user_group_attribute_values rows for this key. They are not archived by ArchivePrincipalAttributeKeys,\nbut stop contributing to principal.groupAttributes once the key is archived (evaluation joins active keys only)."
                    },
                    "activeServiceAccountPrincipalAttributeValueCount": {
                        "type": "string",
                        "format": "int64",
                        "description": "Non-archived service account principal-attribute value rows for this key. These live in user_attribute_values\nand are archived with the key, same as user rows."
                    }
                }
            },
            "v1CheckResourceAttributeKeyArchiveImpactResponse": {
                "type": "object",
                "properties": {
                    "activeResourceAttributeAssignmentCount": {
                        "type": "string",
                        "format": "int64",
                        "description": "The number of active resource attribute assignments that will be affected by archiving this key."
                    }
                }
            },
            "v1CheckUpdatableFieldsResponse": {
                "type": "object",
                "properties": {
                    "allowedFields": {
                        "type": "string"
                    },
                    "disallowedFields": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "string"
                        },
                        "description": "Disallowed Fields will contain the update fields as the key and the reason for rejection as the value."
                    }
                },
                "required": [
                    "allowedFields",
                    "disallowedFields"
                ]
            },
            "v1ClientKeys": {
                "type": "object",
                "properties": {
                    "clientKeys": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "required": [
                    "clientKeys"
                ]
            },
            "v1Comment": {
                "type": "object",
                "properties": {
                    "commentId": {
                        "type": "string"
                    },
                    "resourceId": {
                        "type": "string",
                        "description": "The ID of the resource the comment is attached to (e.g. a canvas_cell_execution_id)."
                    },
                    "entityType": {
                        "$ref": "#/components/schemas/v1CommentEntityType"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "createdByUserId": {
                        "type": "string"
                    },
                    "createdByUserName": {
                        "type": "string"
                    },
                    "body": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1CommentBodyElement"
                        },
                        "description": "The rich-text body of the comment."
                    }
                },
                "description": "A single comment attached to a resource.",
                "required": [
                    "commentId",
                    "resourceId",
                    "entityType",
                    "createdDate",
                    "modifiedDate",
                    "createdByUserId",
                    "createdByUserName",
                    "body"
                ]
            },
            "v1CommentBodyElement": {
                "type": "object",
                "properties": {
                    "type": {
                        "$ref": "#/components/schemas/v1CommentBodyElementType"
                    },
                    "text": {
                        "type": "string",
                        "description": "Only set when `type` is TEXT."
                    },
                    "userMention": {
                        "$ref": "#/components/schemas/v1CommentUserMention"
                    }
                },
                "description": "A single element of a comment body. Either plain text or a user mention.",
                "required": [
                    "type"
                ]
            },
            "v1CommentBodyElementType": {
                "type": "string",
                "enum": [
                    "COMMENT_BODY_ELEMENT_TYPE_UNSPECIFIED",
                    "COMMENT_BODY_ELEMENT_TYPE_TEXT",
                    "COMMENT_BODY_ELEMENT_TYPE_USER_MENTION"
                ],
                "default": "COMMENT_BODY_ELEMENT_TYPE_UNSPECIFIED"
            },
            "v1CommentEntityType": {
                "type": "string",
                "enum": [
                    "COMMENT_ENTITY_TYPE_UNSPECIFIED",
                    "COMMENT_ENTITY_TYPE_CANVAS_CELL_EXECUTION"
                ],
                "default": "COMMENT_ENTITY_TYPE_UNSPECIFIED",
                "description": "The type of resource a comment is attached to. Designed to be extended over time."
            },
            "v1CommentUserMention": {
                "type": "object",
                "properties": {
                    "userId": {
                        "type": "string"
                    },
                    "userEmail": {
                        "type": "string"
                    }
                },
                "required": [
                    "userId",
                    "userEmail"
                ]
            },
            "v1ConditionComparator": {
                "type": "string",
                "enum": [
                    "CONDITION_COMPARATOR_UNSPECIFIED",
                    "LESS_THAN",
                    "LESS_THAN_OR_EQUAL",
                    "GREATER_THAN",
                    "GREATER_THAN_OR_EQUAL",
                    "EQUAL",
                    "NOT_EQUAL"
                ],
                "default": "CONDITION_COMPARATOR_UNSPECIFIED"
            },
            "v1ContextualChannels": {
                "type": "object",
                "properties": {
                    "channels": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/rulesv1ChannelReference"
                        }
                    }
                },
                "required": [
                    "channels"
                ]
            },
            "v1CountTestMeasurementsResponse": {
                "type": "object",
                "properties": {
                    "count": {
                        "type": "string",
                        "format": "int64",
                        "title": "The total count of test measurements matching the filter"
                    }
                },
                "title": "Response message for CountTestMeasurements"
            },
            "v1CountTestStepsResponse": {
                "type": "object",
                "properties": {
                    "count": {
                        "type": "string",
                        "format": "int64",
                        "title": "The total count of test steps matching the filter"
                    }
                },
                "title": "Response message for CountTestSteps"
            },
            "v1CreateAnnotationLogResponse": {
                "type": "object",
                "properties": {
                    "annotationLog": {
                        "$ref": "#/components/schemas/v1AnnotationLogSearchResult"
                    }
                },
                "description": "The response of a call to `AnnotationLogService_CreateAnnotationLog`."
            },
            "v1CreateAnnotationRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "description": "The name assigned to the new annotation."
                    },
                    "description": {
                        "type": "string",
                        "description": "A short description about the new annotation."
                    },
                    "startTime": {
                        "type": "string",
                        "format": "date-time",
                        "description": "When the annotation starts."
                    },
                    "endTime": {
                        "type": "string",
                        "format": "date-time",
                        "description": "When the annotation ends."
                    },
                    "assets": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "The names of the assets to associate with this annotation."
                    },
                    "linkedChannels": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1AnnotationLinkedChannel"
                        },
                        "description": "The channels to associate with this annotation."
                    },
                    "tags": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "The names of the tags to apply as label metadata. Tags do not satisfy the\nrun/asset/channel association requirement."
                    },
                    "runId": {
                        "type": "string",
                        "description": "The ID of the run that this annotation is associated with."
                    },
                    "assignToUserId": {
                        "type": "string",
                        "description": "The ID of the user that this annotation is assigned to."
                    },
                    "organizationId": {
                        "type": "string",
                        "description": "The organization associated with this annotation. An organization ID is only required\nif the user belongs to multiple organizations."
                    },
                    "state": {
                        "$ref": "#/components/schemas/v1AnnotationState"
                    },
                    "annotationType": {
                        "$ref": "#/components/schemas/v1AnnotationType"
                    },
                    "createdByConditionId": {
                        "type": "string",
                        "description": "The ID of the rule condition that created this annotation."
                    },
                    "legendConfig": {
                        "type": "string",
                        "description": "A JSON string containing the axes configuration of the annotation's linked channels."
                    },
                    "createdByRuleConditionVersionId": {
                        "type": "string",
                        "description": "The ID of the rule condition version that created this annotation."
                    },
                    "metadata": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        },
                        "description": "The metadata associated with this annotation."
                    }
                },
                "description": "The request for a call to `AnnotationService_CreateAnnotation` to create a new annotation.\nAt least one of `run_id`, `assets`, or `linked_channels` must be specified.\nTags are label metadata and do not satisfy this association requirement.",
                "required": [
                    "name",
                    "startTime",
                    "endTime"
                ]
            },
            "v1CreateAnnotationResponse": {
                "type": "object",
                "properties": {
                    "annotation": {
                        "$ref": "#/components/schemas/annotationsv1Annotation"
                    }
                },
                "description": "The result of a call to `AnnotationService_CreateAnnotation`.",
                "required": [
                    "annotation"
                ]
            },
            "v1CreateArtifactRequest": {
                "type": "object",
                "properties": {
                    "conversationId": {
                        "type": "string",
                        "description": "Set to link the new artifact to a conversation at create time. Legal only\nfor the conversation's author. Equivalent to a links entry with relation\nATTACHED_TO, entity_type CONVERSATION, and this conversation_id as\nentity_id."
                    },
                    "title": {
                        "type": "string"
                    },
                    "summary": {
                        "type": "string"
                    },
                    "storageClass": {
                        "$ref": "#/components/schemas/v1ArtifactStorageClass"
                    },
                    "createdVia": {
                        "$ref": "#/components/schemas/v1ArtifactCreatedVia"
                    },
                    "payload": {
                        "type": "object",
                        "description": "Required for STRUCTURED and rejected otherwise. The serialized payload\nmust not exceed 1 MiB."
                    },
                    "links": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ArtifactLinkInput"
                        },
                        "description": "Links written at version 1."
                    },
                    "metadata": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        },
                        "description": "Metadata attached to the created version."
                    }
                }
            },
            "v1CreateArtifactResponse": {
                "type": "object",
                "properties": {
                    "artifact": {
                        "$ref": "#/components/schemas/v1ArtifactDetails"
                    }
                }
            },
            "v1CreateAssetRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "description": "The name of the asset to create. Must be unique within the organization. Required."
                    },
                    "tags": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "The names of the tags to associate with this asset. Optional."
                    },
                    "metadata": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        },
                        "description": "The metadata values to associate with this asset. Optional."
                    }
                },
                "description": "The request for a call to `AssetService_CreateAsset` to create a single new, empty asset.",
                "required": [
                    "name"
                ]
            },
            "v1CreateAssetResponse": {
                "type": "object",
                "properties": {
                    "asset": {
                        "$ref": "#/components/schemas/assetsv1Asset"
                    }
                },
                "description": "The response of a call to `AssetService_CreateAsset`."
            },
            "v1CreateAutomationTriggerRequest": {
                "type": "object",
                "properties": {
                    "canvasId": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "matchFilter": {
                        "$ref": "#/components/schemas/v1AutomationTriggerMatchFilter"
                    },
                    "actionKind": {
                        "$ref": "#/components/schemas/v1AutomationTriggerActionKind"
                    },
                    "actionParams": {
                        "$ref": "#/components/schemas/v1AutomationTriggerActionParams"
                    },
                    "isEnabled": {
                        "type": "boolean"
                    },
                    "emailNotificationsEnabled": {
                        "type": "boolean",
                        "description": "Defaults to true when unset."
                    },
                    "notificationRecipientEmails": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "Defaults to the creating user's address when empty."
                    },
                    "reportNameTemplate": {
                        "type": "string",
                        "description": "Names the reports this automation publishes, stored on the trigger. Omit\nit to let the server apply the run-aware default: when the trigger binds a\ntriggering run and the canvas has no template of its own, the new trigger\nis given one naming its reports after that run. See\n`sift_internal.canvas.v1.Canvas.report_name_template` for the syntax."
                    },
                    "triggerKind": {
                        "$ref": "#/components/schemas/v1AutomationTriggerKind"
                    },
                    "cronExpression": {
                        "type": "string",
                        "description": "Required when trigger_kind is SCHEDULE."
                    },
                    "timezone": {
                        "type": "string",
                        "description": "IANA timezone. Required when trigger_kind is SCHEDULE."
                    }
                },
                "description": "The request for a call to `AutomationService_CreateAutomationTrigger`.",
                "required": [
                    "canvasId",
                    "name",
                    "actionKind"
                ]
            },
            "v1CreateAutomationTriggerResponse": {
                "type": "object",
                "properties": {
                    "automationTrigger": {
                        "$ref": "#/components/schemas/v1AutomationTrigger"
                    }
                },
                "description": "The response of a call to `AutomationService_CreateAutomationTrigger`.",
                "required": [
                    "automationTrigger"
                ]
            },
            "v1CreateCampaignFrom": {
                "type": "object",
                "properties": {
                    "reports": {
                        "$ref": "#/components/schemas/v1ResourceIdentifiers"
                    },
                    "runs": {
                        "$ref": "#/components/schemas/v1ResourceIdentifiers"
                    },
                    "otherCampaign": {
                        "$ref": "#/components/schemas/v1ResourceIdentifier"
                    }
                },
                "description": "Campaigns can be created from a few different sources."
            },
            "v1CreateCampaignRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "title": "The descriptive display name of the created campaign"
                    },
                    "description": {
                        "type": "string",
                        "title": "A custom description for the campaign"
                    },
                    "tags": {
                        "$ref": "#/components/schemas/v1NamedResources"
                    },
                    "organizationId": {
                        "type": "string",
                        "title": "`organization_id` is only required if your user belongs to multiple organizations"
                    },
                    "clientKey": {
                        "type": "string",
                        "description": "User-specified unique identifier."
                    },
                    "createFrom": {
                        "$ref": "#/components/schemas/v1CreateCampaignFrom"
                    },
                    "metadata": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        },
                        "title": "User-defined metadata for this campaign"
                    }
                },
                "description": "The request of a call to `CampaignService_CreateCampaign` to create a campaign.",
                "required": [
                    "name"
                ]
            },
            "v1CreateCampaignResponse": {
                "type": "object",
                "properties": {
                    "campaign": {
                        "$ref": "#/components/schemas/v1Campaign"
                    }
                },
                "description": "The response of a call to `CampaignService_CreateCampaign` to create a campaign.",
                "required": [
                    "campaign"
                ]
            },
            "v1CreateCommentRequest": {
                "type": "object",
                "properties": {
                    "resourceId": {
                        "type": "string",
                        "description": "The ID of the resource to attach the comment to."
                    },
                    "entityType": {
                        "$ref": "#/components/schemas/v1CommentEntityType"
                    },
                    "body": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1CommentBodyElement"
                        },
                        "description": "The rich-text body of the new comment."
                    }
                },
                "description": "The request for a call to `CommentService_CreateComment`.",
                "required": [
                    "resourceId",
                    "entityType",
                    "body"
                ]
            },
            "v1CreateCommentResponse": {
                "type": "object",
                "properties": {
                    "comment": {
                        "$ref": "#/components/schemas/v1Comment"
                    }
                },
                "description": "The response of a call to `CommentService_CreateComment`."
            },
            "v1CreateFamilyRequest": {
                "type": "object",
                "properties": {
                    "family": {
                        "$ref": "#/components/schemas/v1Family"
                    },
                    "familyVersion": {
                        "$ref": "#/components/schemas/v1FamilyVersion"
                    },
                    "familyRuns": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1FamilyRun"
                        },
                        "description": "The runs to include in the family. At least one run must be specified."
                    },
                    "familyAlignments": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1FamilyAlignment"
                        },
                        "description": "The alignments to apply to the family. If not provided, a default alignment will be created for the Family."
                    },
                    "familyStats": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1FamilyStatDetails"
                        },
                        "description": "The family stats to create for the family. If not provided, no family stats will be created."
                    }
                },
                "required": [
                    "family",
                    "familyVersion",
                    "familyRuns"
                ]
            },
            "v1CreateFamilyResponse": {
                "type": "object",
                "properties": {
                    "familyId": {
                        "type": "string"
                    },
                    "family": {
                        "$ref": "#/components/schemas/v1FamilyDetails"
                    }
                },
                "required": [
                    "familyId",
                    "family"
                ]
            },
            "v1CreateFamilyStatRangesRequest": {
                "type": "object",
                "properties": {
                    "familyStatIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "familyStatRanges": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1FamilyStatRange"
                        }
                    }
                },
                "required": [
                    "familyStatIds",
                    "familyStatRanges"
                ]
            },
            "v1CreateFamilyStatRangesResponse": {
                "type": "object",
                "properties": {
                    "familyVersionId": {
                        "type": "string"
                    },
                    "family": {
                        "$ref": "#/components/schemas/v1FamilyDetails"
                    },
                    "familyStats": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1FamilyStatDetails"
                        }
                    }
                },
                "required": [
                    "familyVersionId",
                    "family",
                    "familyStats"
                ]
            },
            "v1CreateMetadataKeyRequest": {
                "type": "object",
                "properties": {
                    "metadataKey": {
                        "$ref": "#/components/schemas/v1MetadataKey"
                    }
                },
                "description": "The request of a call to `MetadataService_CreateMetadataKey` to create a metadata key.",
                "required": [
                    "metadataKey"
                ]
            },
            "v1CreateMetadataKeyResponse": {
                "type": "object",
                "properties": {
                    "metadataKey": {
                        "$ref": "#/components/schemas/v1MetadataKey"
                    }
                },
                "description": "The response of a call to `MetadataService_CreateMetadataKey` to create a metadata key.",
                "required": [
                    "metadataKey"
                ]
            },
            "v1CreateMetadataValueRequest": {
                "type": "object",
                "properties": {
                    "metadataValue": {
                        "$ref": "#/components/schemas/v1MetadataValue"
                    }
                },
                "description": "The request of a call to `MetadataService_CreateMetadataValue` to create a metadata value.",
                "required": [
                    "metadataValue"
                ]
            },
            "v1CreateMetadataValueResponse": {
                "type": "object",
                "properties": {
                    "metadataValue": {
                        "$ref": "#/components/schemas/v1MetadataValue"
                    }
                },
                "description": "The response of a call to `MetadataService_CreateMetadataValue` to create a metadata value.",
                "required": [
                    "metadataValue"
                ]
            },
            "v1CreatePanelConfigurationRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "channelConfigurations": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ChannelConfigurations"
                        }
                    },
                    "chartSettings": {
                        "type": "object"
                    },
                    "metadata": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        }
                    }
                },
                "required": [
                    "name",
                    "channelConfigurations"
                ]
            },
            "v1CreatePanelConfigurationResponse": {
                "type": "object",
                "properties": {
                    "panelConfiguration": {
                        "$ref": "#/components/schemas/v1PanelConfiguration"
                    }
                }
            },
            "v1CreatePolicyRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "configuration": {
                        "$ref": "#/components/schemas/v1PolicyConfiguration"
                    },
                    "versionNotes": {
                        "type": "string",
                        "title": "Optional notes for this version"
                    }
                },
                "description": "The request for a call to `PolicyService_CreatePolicy` to create a new policy.",
                "required": [
                    "name",
                    "configuration"
                ]
            },
            "v1CreatePolicyResponse": {
                "type": "object",
                "properties": {
                    "policy": {
                        "$ref": "#/components/schemas/v1Policy"
                    }
                },
                "description": "The response of a call to `PolicyService_CreatePolicy`.",
                "required": [
                    "policy"
                ]
            },
            "v1CreatePrincipalAttributeEnumValueRequest": {
                "type": "object",
                "properties": {
                    "principalAttributeKeyId": {
                        "type": "string"
                    },
                    "displayName": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    }
                },
                "title": "Principal Attribute Enum Value RPC messages",
                "required": [
                    "principalAttributeKeyId",
                    "displayName"
                ]
            },
            "v1CreatePrincipalAttributeEnumValueResponse": {
                "type": "object",
                "properties": {
                    "principalAttributeEnumValue": {
                        "$ref": "#/components/schemas/v1PrincipalAttributeEnumValue"
                    }
                },
                "required": [
                    "principalAttributeEnumValue"
                ]
            },
            "v1CreatePrincipalAttributeKeyRequest": {
                "type": "object",
                "properties": {
                    "displayName": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "type": {
                        "$ref": "#/components/schemas/v1PrincipalAttributeValueType"
                    },
                    "initialEnumValues": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1CreatePrincipalAttributeKeyRequestInitialEnumValue"
                        },
                        "description": "Optional initial enum values to create alongside the key. Only applicable for ENUM type keys."
                    }
                },
                "description": "CreatePrincipalAttributeKeyRequest is used to create a new principal attribute key.",
                "required": [
                    "displayName",
                    "type"
                ]
            },
            "v1CreatePrincipalAttributeKeyRequestInitialEnumValue": {
                "type": "object",
                "properties": {
                    "displayName": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    }
                },
                "description": "Nested message for initial enum values in create requests.",
                "required": [
                    "displayName"
                ]
            },
            "v1CreatePrincipalAttributeKeyResponse": {
                "type": "object",
                "properties": {
                    "principalAttributeKey": {
                        "$ref": "#/components/schemas/v1PrincipalAttributeKey"
                    },
                    "enumValues": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1PrincipalAttributeEnumValue"
                        },
                        "description": "The enum values created alongside the key, if any were provided in the request."
                    }
                },
                "description": "CreatePrincipalAttributeKeyResponse returns the principal attribute key from a CreatePrincipalAttributeKey call.",
                "required": [
                    "principalAttributeKey"
                ]
            },
            "v1CreateRemoteFileRequest": {
                "type": "object",
                "properties": {
                    "fileName": {
                        "type": "string"
                    },
                    "entityId": {
                        "type": "string"
                    },
                    "entityType": {
                        "$ref": "#/components/schemas/v1EntityType"
                    },
                    "fileMimeType": {
                        "type": "string"
                    },
                    "fileContentEncoding": {
                        "type": "string"
                    },
                    "fileSize": {
                        "type": "string",
                        "format": "uint64"
                    },
                    "description": {
                        "type": "string"
                    },
                    "organizationId": {
                        "type": "string",
                        "description": "This field is only required if your user belongs to multiple organizations."
                    },
                    "videoMetadata": {
                        "$ref": "#/components/schemas/v1VideoMetadata"
                    },
                    "imageMetadata": {
                        "$ref": "#/components/schemas/v1ImageMetadata"
                    },
                    "audioMetadata": {
                        "$ref": "#/components/schemas/v1AudioMetadata"
                    },
                    "customUuid": {
                        "type": "string",
                        "description": "A custom UUID used to generate the object key. Recommended to be left unset."
                    },
                    "metadataValues": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        },
                        "description": "The metadata values associated with this remote file."
                    }
                },
                "description": "The request for a call to `RemoteFileService_CreateRemoteFile` to create a remote file.",
                "required": [
                    "fileName",
                    "entityId",
                    "entityType",
                    "fileMimeType",
                    "fileContentEncoding",
                    "fileSize"
                ]
            },
            "v1CreateRemoteFileResponse": {
                "type": "object",
                "properties": {
                    "remoteFile": {
                        "$ref": "#/components/schemas/v1RemoteFile"
                    }
                },
                "description": "The response for a call to `RemoteFileService_CreateRemoteFile`.",
                "required": [
                    "remoteFile"
                ]
            },
            "v1CreateReportFromReportTemplateRequest": {
                "type": "object",
                "properties": {
                    "reportTemplateId": {
                        "type": "string"
                    }
                },
                "description": "Deprecated - use RuleEvaluationService instead.\nReport rule lines use each template rule's `display_order` from `ReportTemplateRule` at creation time.",
                "required": [
                    "reportTemplateId"
                ]
            },
            "v1CreateReportFromRulesRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "tagNames": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "ruleIds": {
                        "$ref": "#/components/schemas/v1CreateReportRequestRuleIds"
                    },
                    "ruleClientKeys": {
                        "$ref": "#/components/schemas/v1CreateReportRequestClientKeys"
                    },
                    "ruleVersionIds": {
                        "$ref": "#/components/schemas/v1CreateReportRequestRuleVersionIds"
                    }
                },
                "description": "Deprecated - use RuleEvaluationService instead.\nHow rules are ordered on the created report depends on `rule_identifiers`: list order for `rule_ids`, or server resolution order for `rule_client_keys`.",
                "required": [
                    "name",
                    "description",
                    "tagNames"
                ]
            },
            "v1CreateReportRequest": {
                "type": "object",
                "properties": {
                    "reportFromReportTemplateRequest": {
                        "$ref": "#/components/schemas/v1CreateReportFromReportTemplateRequest"
                    },
                    "reportFromRulesRequest": {
                        "$ref": "#/components/schemas/v1CreateReportFromRulesRequest"
                    },
                    "organizationId": {
                        "type": "string"
                    },
                    "runId": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string",
                        "description": "Override the name of the report. If not provided, the name will be generated based on the report template or run."
                    },
                    "metadata": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        }
                    }
                },
                "description": "Deprecated - use RuleEvaluationService instead.",
                "required": [
                    "organizationId",
                    "runId",
                    "name"
                ]
            },
            "v1CreateReportRequestClientKeys": {
                "type": "object",
                "properties": {
                    "ruleClientKeys": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "description": "Deprecated - use RuleEvaluationService instead.\nRule order on the created report follows the order in which the server resolves these keys to rules (not client-defined).",
                "required": [
                    "ruleClientKeys"
                ]
            },
            "v1CreateReportRequestRuleIds": {
                "type": "object",
                "properties": {
                    "ruleIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "description": "Deprecated - use RuleEvaluationService instead.\nThe order of `rule_ids` is the report rule order: first ID is `display_order` 0, second is 1, etc., on the created report.",
                "required": [
                    "ruleIds"
                ]
            },
            "v1CreateReportRequestRuleVersionIds": {
                "type": "object",
                "properties": {
                    "ruleVersionIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "description": "Deprecated - use RuleEvaluationService instead.",
                "required": [
                    "ruleVersionIds"
                ]
            },
            "v1CreateReportResponse": {
                "type": "object",
                "properties": {
                    "report": {
                        "$ref": "#/components/schemas/v1Report"
                    }
                },
                "description": "Deprecated - use RuleEvaluationService instead.",
                "required": [
                    "report"
                ]
            },
            "v1CreateReportTemplateRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "clientKey": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "tagNames": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "organizationId": {
                        "type": "string",
                        "title": "`organization_id` is only required if your user belongs to multiple organizations"
                    },
                    "ruleIds": {
                        "$ref": "#/components/schemas/v1CreateReportTemplateRequestRuleIds"
                    },
                    "ruleClientKeys": {
                        "$ref": "#/components/schemas/v1CreateReportTemplateRequestClientKeys"
                    },
                    "metadata": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        }
                    }
                },
                "description": "The request of a call to `ReportTemplateService_CreateReportTemplate` to create a report template.",
                "required": [
                    "name",
                    "tagNames"
                ]
            },
            "v1CreateReportTemplateRequestClientKeys": {
                "type": "object",
                "properties": {
                    "ruleClientKeys": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "description": "Initial template rule order follows server resolution of keys to rules (not client-defined per-key ordering).",
                "required": [
                    "ruleClientKeys"
                ]
            },
            "v1CreateReportTemplateRequestRuleIds": {
                "type": "object",
                "properties": {
                    "ruleIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "description": "Initial rule order on the new template: first `rule_id` is `display_order` 0, second is 1, etc.",
                "required": [
                    "ruleIds"
                ]
            },
            "v1CreateReportTemplateResponse": {
                "type": "object",
                "properties": {
                    "reportTemplate": {
                        "$ref": "#/components/schemas/v1ReportTemplate"
                    }
                },
                "description": "The response of a call to `ReportTemplateService_CreateReportTemplate` to create a report template.",
                "required": [
                    "reportTemplate"
                ]
            },
            "v1CreateResourceAttributeEnumValueRequest": {
                "type": "object",
                "properties": {
                    "resourceAttributeKeyId": {
                        "type": "string"
                    },
                    "displayName": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    }
                },
                "title": "ResourceAttribute Enum Value RPC messages",
                "required": [
                    "resourceAttributeKeyId",
                    "displayName"
                ]
            },
            "v1CreateResourceAttributeEnumValueResponse": {
                "type": "object",
                "properties": {
                    "resourceAttributeEnumValue": {
                        "$ref": "#/components/schemas/v1ResourceAttributeEnumValue"
                    }
                },
                "required": [
                    "resourceAttributeEnumValue"
                ]
            },
            "v1CreateResourceAttributeKeyRequest": {
                "type": "object",
                "properties": {
                    "displayName": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "type": {
                        "$ref": "#/components/schemas/v1ResourceAttributeKeyType"
                    },
                    "initialEnumValues": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1CreateResourceAttributeKeyRequestInitialEnumValue"
                        },
                        "description": "Optional initial enum values to create alongside the key. Only applicable for ENUM type keys."
                    }
                },
                "title": "ResourceAttribute Key RPC messages",
                "required": [
                    "displayName",
                    "type"
                ]
            },
            "v1CreateResourceAttributeKeyRequestInitialEnumValue": {
                "type": "object",
                "properties": {
                    "displayName": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    }
                },
                "description": "Nested message for initial enum values in create requests.",
                "required": [
                    "displayName"
                ]
            },
            "v1CreateResourceAttributeKeyResponse": {
                "type": "object",
                "properties": {
                    "resourceAttributeKey": {
                        "$ref": "#/components/schemas/v1ResourceAttributeKey"
                    },
                    "enumValues": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ResourceAttributeEnumValue"
                        },
                        "description": "The enum values created alongside the key, if any were provided in the request."
                    }
                },
                "required": [
                    "resourceAttributeKey"
                ]
            },
            "v1CreateRuleRequest": {
                "type": "object",
                "properties": {
                    "update": {
                        "$ref": "#/components/schemas/v1UpdateRuleRequest"
                    }
                },
                "required": [
                    "update"
                ]
            },
            "v1CreateRuleResponse": {
                "type": "object",
                "properties": {
                    "ruleId": {
                        "type": "string"
                    }
                },
                "required": [
                    "ruleId"
                ]
            },
            "v1CreateSavedSearchRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "properties": {
                        "$ref": "#/components/schemas/v1SavedSearchProperties"
                    },
                    "organizationId": {
                        "type": "string",
                        "description": "This field is only required if your user belongs to multiple organizations."
                    }
                },
                "description": "The request for a call to `SavedSearchService_CreateSavedSearch` to create a saved search.",
                "required": [
                    "name",
                    "properties"
                ]
            },
            "v1CreateSavedSearchResponse": {
                "type": "object",
                "properties": {
                    "savedSearch": {
                        "$ref": "#/components/schemas/v1SavedSearch"
                    }
                },
                "description": "The response for a call to `SavedSearchService_CreateSavedResponse`.",
                "required": [
                    "savedSearch"
                ]
            },
            "v1CreateTestMeasurementRequest": {
                "type": "object",
                "properties": {
                    "testMeasurement": {
                        "$ref": "#/components/schemas/v1TestMeasurement"
                    }
                },
                "title": "Request message for CreateTestMeasurement",
                "required": [
                    "testMeasurement"
                ]
            },
            "v1CreateTestMeasurementResponse": {
                "type": "object",
                "properties": {
                    "testMeasurement": {
                        "$ref": "#/components/schemas/v1TestMeasurement"
                    }
                },
                "title": "Response message for CreateTestMeasurement"
            },
            "v1CreateTestMeasurementsRequest": {
                "type": "object",
                "properties": {
                    "testMeasurements": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1TestMeasurement"
                        },
                        "title": "The test measurements to create"
                    }
                },
                "title": "Request message for CreateTestMeasurements",
                "required": [
                    "testMeasurements"
                ]
            },
            "v1CreateTestMeasurementsResponse": {
                "type": "object",
                "properties": {
                    "measurementsCreatedCount": {
                        "type": "integer",
                        "format": "int32",
                        "title": "The number of test measurements successfully created"
                    },
                    "measurementIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "title": "The IDs of the created test measurements"
                    }
                },
                "title": "Response message for CreateTestMeasurements",
                "required": [
                    "measurementsCreatedCount",
                    "measurementIds"
                ]
            },
            "v1CreateTestReportRequest": {
                "type": "object",
                "properties": {
                    "status": {
                        "$ref": "#/components/schemas/v1TestStatus"
                    },
                    "name": {
                        "type": "string",
                        "title": "The name of the test run"
                    },
                    "testSystemName": {
                        "type": "string",
                        "title": "The name of the test system"
                    },
                    "testCase": {
                        "type": "string",
                        "title": "The test case that was run"
                    },
                    "startTime": {
                        "type": "string",
                        "format": "date-time",
                        "title": "The start time of the test run"
                    },
                    "endTime": {
                        "type": "string",
                        "format": "date-time",
                        "title": "The end time of the test run"
                    },
                    "metadata": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        },
                        "title": "The metadata values associated with this test run"
                    },
                    "serialNumber": {
                        "type": "string",
                        "title": "The serial number for the DUT"
                    },
                    "partNumber": {
                        "type": "string",
                        "title": "The part number for the DUT"
                    },
                    "systemOperator": {
                        "type": "string",
                        "title": "Unique identifier for user owner"
                    },
                    "runId": {
                        "type": "string",
                        "title": "The run ID for the test report"
                    }
                },
                "title": "Request message for CreateTestReport",
                "required": [
                    "status",
                    "name",
                    "testSystemName",
                    "testCase",
                    "startTime",
                    "endTime"
                ]
            },
            "v1CreateTestReportResponse": {
                "type": "object",
                "properties": {
                    "testReport": {
                        "$ref": "#/components/schemas/v1TestReport"
                    }
                },
                "title": "Response message for CreateTestReport"
            },
            "v1CreateTestStepRequest": {
                "type": "object",
                "properties": {
                    "testStep": {
                        "$ref": "#/components/schemas/v1TestStep"
                    }
                },
                "title": "Request message for CreateTestStep",
                "required": [
                    "testStep"
                ]
            },
            "v1CreateTestStepResponse": {
                "type": "object",
                "properties": {
                    "testStep": {
                        "$ref": "#/components/schemas/v1TestStep"
                    }
                },
                "title": "Response message for CreateTestStep"
            },
            "v1CreateUserDefinedFunctionRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "expression": {
                        "type": "string"
                    },
                    "functionInputs": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1FunctionInput"
                        }
                    },
                    "userNotes": {
                        "type": "string"
                    },
                    "metadata": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        }
                    }
                },
                "required": [
                    "name",
                    "expression",
                    "functionInputs",
                    "metadata"
                ]
            },
            "v1CreateUserDefinedFunctionResponse": {
                "type": "object",
                "properties": {
                    "userDefinedFunction": {
                        "$ref": "#/components/schemas/v1UserDefinedFunction"
                    }
                },
                "required": [
                    "userDefinedFunction"
                ]
            },
            "v1CreateWebhookLogRequest": {
                "type": "object",
                "properties": {
                    "webhookId": {
                        "type": "string"
                    },
                    "eventId": {
                        "type": "string"
                    },
                    "retryAttemptNumber": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "status": {
                        "$ref": "#/components/schemas/v1WebhookLogStatus"
                    },
                    "payload": {
                        "type": "string"
                    },
                    "errorReason": {
                        "type": "string"
                    },
                    "sentDate": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "description": "Request to create a single webhook log entry.",
                "required": [
                    "webhookId",
                    "eventId",
                    "retryAttemptNumber",
                    "status",
                    "payload",
                    "errorReason",
                    "sentDate"
                ]
            },
            "v1CreateWebhookRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "targetUrl": {
                        "type": "string"
                    },
                    "eventType": {
                        "$ref": "#/components/schemas/v1WebhookEventType"
                    },
                    "payload": {
                        "type": "string"
                    },
                    "httpHeaders": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1WebhookHttpHeader"
                        }
                    }
                },
                "description": "The request for a call to `WebhookService_CreateWebhook` to create a webhook.",
                "required": [
                    "name",
                    "targetUrl",
                    "eventType",
                    "httpHeaders"
                ]
            },
            "v1CreateWebhookResponse": {
                "type": "object",
                "properties": {
                    "webhook": {
                        "$ref": "#/components/schemas/v1Webhook"
                    }
                },
                "description": "The response of a call to `WebhookService_CreateWebhook`.",
                "required": [
                    "webhook"
                ]
            },
            "v1CreateWebhookSignatureKeyRequest": {
                "type": "object",
                "description": "The request for a call to `WebhookService_CreateWebhookSignatureKey` to create a webhook signature key."
            },
            "v1CreateWebhookSignatureKeyResponse": {
                "type": "object",
                "properties": {
                    "signatureKey": {
                        "$ref": "#/components/schemas/v1WebhookSignatureKey"
                    }
                },
                "description": "The response for a call to `WebhookService_CreateWebhookSignatureKey`. The `active` field indicates whether\nor not whether the key is currently active.",
                "required": [
                    "signatureKey"
                ]
            },
            "v1DataExportJobDetails": {
                "type": "object",
                "properties": {
                    "request": {
                        "$ref": "#/components/schemas/v1ExportDataRequest"
                    },
                    "storageKey": {
                        "type": "string"
                    }
                }
            },
            "v1DataExportStatusDetails": {
                "type": "object",
                "properties": {
                    "errorMessage": {
                        "type": "string"
                    }
                }
            },
            "v1DataImportJobDetails": {
                "type": "object",
                "properties": {
                    "dataImportId": {
                        "type": "string"
                    }
                },
                "required": [
                    "dataImportId"
                ]
            },
            "v1DataImportStatusDetails": {
                "type": "object",
                "properties": {
                    "pointsProcessed": {
                        "type": "string",
                        "format": "uint64"
                    },
                    "pointsTotal": {
                        "type": "string",
                        "format": "uint64"
                    }
                },
                "required": [
                    "pointsProcessed",
                    "pointsTotal"
                ]
            },
            "v1DefaultAnnotationAlignment": {
                "type": "object",
                "properties": {
                    "annotationName": {
                        "type": "string"
                    },
                    "bound": {
                        "$ref": "#/components/schemas/v1TimeRangeBound"
                    },
                    "occurrence": {
                        "$ref": "#/components/schemas/v1AnnotationOccurrence"
                    },
                    "occurrenceIndex": {
                        "type": "integer",
                        "format": "int32",
                        "description": "Index of the annotation to use when occurrence is \"nth\". Positive indices start from the beginning, negative from the end."
                    }
                },
                "required": [
                    "annotationName",
                    "bound",
                    "occurrence"
                ]
            },
            "v1DeleteAnnotationLogResponse": {
                "type": "object",
                "description": "The Response of a call to `AnnotationLogService_DeleteAnnotationLog`."
            },
            "v1DeleteAnnotationResponse": {
                "type": "object",
                "description": "The response of a call to `AnnotationService_DeleteAnnotation`."
            },
            "v1DeleteAssetResponse": {
                "type": "object",
                "description": "The response of a call to `AssetService_DeleteAsset`.\nDeprecated: Use ArchiveAssetResponse instead."
            },
            "v1DeleteAutomationTriggerResponse": {
                "type": "object",
                "description": "The response of a call to `AutomationService_DeleteAutomationTrigger`."
            },
            "v1DeleteCommentResponse": {
                "type": "object",
                "description": "The response of a call to `CommentService_DeleteComment`."
            },
            "v1DeleteMetadataKeysRequest": {
                "type": "object",
                "properties": {
                    "metadataKeys": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataKey"
                        }
                    }
                },
                "required": [
                    "metadataKeys"
                ]
            },
            "v1DeleteMetadataKeysResponse": {
                "type": "object"
            },
            "v1DeleteMetadataValuesRequest": {
                "type": "object",
                "properties": {
                    "metadataValues": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        }
                    }
                },
                "required": [
                    "metadataValues"
                ]
            },
            "v1DeleteMetadataValuesResponse": {
                "type": "object"
            },
            "v1DeleteRemoteFileResponse": {
                "type": "object",
                "description": "The response of a call to `RemoteFileService_DeleteRemoteFile`."
            },
            "v1DeleteRuleRequest": {
                "type": "object",
                "properties": {
                    "ruleId": {
                        "type": "string"
                    },
                    "clientKey": {
                        "type": "string"
                    }
                },
                "description": "DeleteRuleRequest is used to delete a rule by rule_id or client_key. If both are provided, only rule_id will be used."
            },
            "v1DeleteRuleResponse": {
                "type": "object"
            },
            "v1DeleteSavedSearchResponse": {
                "type": "object",
                "description": "The response of a call to `SavedSearchService_DeleteSavedSearch`."
            },
            "v1DeleteTestMeasurementResponse": {
                "type": "object",
                "description": "Empty response indicating successful deletion",
                "title": "Response message for DeleteTestMeasurement"
            },
            "v1DeleteTestReportResponse": {
                "type": "object",
                "description": "Empty response indicating successful deletion",
                "title": "Response message for DeleteTestReport"
            },
            "v1DeleteTestStepResponse": {
                "type": "object",
                "description": "Empty response indicating successful deletion",
                "title": "Response message for DeleteTestStep"
            },
            "v1DocHit": {
                "type": "object",
                "properties": {
                    "path": {
                        "type": "string",
                        "description": "Doc path, e.g. \"documentation/ingest/asset-channels.mdx\". Pass to ReadDoc.",
                        "readOnly": true
                    },
                    "title": {
                        "type": "string",
                        "readOnly": true
                    },
                    "score": {
                        "type": "integer",
                        "format": "int32",
                        "description": "Relevance score; higher is more relevant. Title matches weigh most, then\nheadings, then body.",
                        "readOnly": true
                    },
                    "matchLine": {
                        "type": "integer",
                        "format": "int32",
                        "description": "1-indexed line number of the best match, in the same coordinates as\nReadDoc; pass to ReadDoc as offset to see more.",
                        "readOnly": true
                    },
                    "totalLines": {
                        "type": "integer",
                        "format": "int32",
                        "description": "Total line count of the page.",
                        "readOnly": true
                    },
                    "content": {
                        "type": "string",
                        "description": "Window of the 10 lines above and below match_line, clamped to the page.\nEach line is prefixed with \"{line_number}\\t\", aligned with ReadDoc.",
                        "readOnly": true
                    }
                }
            },
            "v1DryRunAnnotation": {
                "type": "object",
                "properties": {
                    "conditionId": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "startTime": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "endTime": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "conditionVersionId": {
                        "type": "string"
                    }
                },
                "required": [
                    "startTime",
                    "endTime"
                ]
            },
            "v1EntityType": {
                "type": "string",
                "enum": [
                    "ENTITY_TYPE_UNSPECIFIED",
                    "ENTITY_TYPE_RUN",
                    "ENTITY_TYPE_ANNOTATION",
                    "ENTITY_TYPE_ASSET",
                    "ENTITY_TYPE_ANNOTATION_LOG",
                    "ENTITY_TYPE_TEST_REPORT",
                    "ENTITY_TYPE_TEST_STEP",
                    "ENTITY_TYPE_CANVAS_VERSION",
                    "ENTITY_TYPE_CANVAS_CELL_EXECUTION_ATTACHMENT",
                    "ENTITY_TYPE_CANVAS_CELL_EXECUTION_OUTPUT",
                    "ENTITY_TYPE_ARTIFACT_VERSION",
                    "ENTITY_TYPE_CHAT_CONVERSATION"
                ],
                "default": "ENTITY_TYPE_UNSPECIFIED",
                "description": " - ENTITY_TYPE_CANVAS_CELL_EXECUTION_ATTACHMENT: UI evidence files attached to a cell execution on a canvas report.\n - ENTITY_TYPE_CANVAS_CELL_EXECUTION_OUTPUT: Reserved for a future cell-output upload path (not used by the report\nattachment UI).\n - ENTITY_TYPE_ARTIFACT_VERSION: Bytes of one artifact version (sift.artifacts.v1.ArtifactService);\nentity_id is the artifact_version_id.\n - ENTITY_TYPE_CHAT_CONVERSATION: A file the user attached to an agent conversation\n(sift_internal.chat.v1.ChatService); entity_id is the conversation_id.\n\nPython code attached to a canvas version so cell code can import it;\n entity_id is the canvas_version_id. Separate from\n ENTITY_TYPE_CANVAS_VERSION, which holds the canvas's data attachments, so\n that listing either one never returns the other.\n Python code uploaded for a canvas but not yet attached to any version;\n entity_id is the canvas_id. UpdateCanvasDraft turns one of these into an\n ENTITY_TYPE_CANVAS_DEPENDENCY row on the version it mints, so an upload on\n its own never changes what an existing version runs."
            },
            "v1ErrorInfo": {
                "type": "object",
                "properties": {
                    "errorCode": {
                        "type": "integer",
                        "format": "int32"
                    },
                    "errorMessage": {
                        "type": "string"
                    }
                },
                "required": [
                    "errorCode",
                    "errorMessage"
                ]
            },
            "v1ErrorValidatingExpressionResult": {
                "type": "object",
                "properties": {
                    "errorMessage": {
                        "type": "string"
                    }
                },
                "required": [
                    "errorMessage"
                ]
            },
            "v1EvaluateRulesAnnotationOptions": {
                "type": "object",
                "properties": {
                    "tags": {
                        "$ref": "#/components/schemas/v1NamedResources"
                    }
                },
                "required": [
                    "tags"
                ]
            },
            "v1EvaluateRulesFromCurrentRuleVersions": {
                "type": "object",
                "properties": {
                    "rules": {
                        "$ref": "#/components/schemas/v1ResourceIdentifiers"
                    }
                },
                "required": [
                    "rules"
                ]
            },
            "v1EvaluateRulesFromReportTemplate": {
                "type": "object",
                "properties": {
                    "reportTemplate": {
                        "$ref": "#/components/schemas/v1ResourceIdentifier"
                    }
                },
                "required": [
                    "reportTemplate"
                ]
            },
            "v1EvaluateRulesFromRuleConfigs": {
                "type": "object",
                "properties": {
                    "configs": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1UpdateRuleRequest"
                        }
                    }
                },
                "required": [
                    "configs"
                ]
            },
            "v1EvaluateRulesFromRuleVersions": {
                "type": "object",
                "properties": {
                    "ruleVersionIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "required": [
                    "ruleVersionIds"
                ]
            },
            "v1EvaluateRulesPreviewRequest": {
                "type": "object",
                "properties": {
                    "run": {
                        "$ref": "#/components/schemas/v1ResourceIdentifier"
                    },
                    "runTimeRange": {
                        "$ref": "#/components/schemas/v1RunTimeRange"
                    },
                    "rules": {
                        "$ref": "#/components/schemas/v1EvaluateRulesFromCurrentRuleVersions"
                    },
                    "ruleVersions": {
                        "$ref": "#/components/schemas/v1EvaluateRulesFromRuleVersions"
                    },
                    "reportTemplate": {
                        "$ref": "#/components/schemas/v1EvaluateRulesFromReportTemplate"
                    },
                    "ruleConfigs": {
                        "$ref": "#/components/schemas/v1EvaluateRulesFromRuleConfigs"
                    },
                    "organizationId": {
                        "type": "string",
                        "title": "Only required if your user belongs to multiple organizations"
                    },
                    "runFamilyAlignmentConfigs": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1RunFamilyAlignmentConfig"
                        },
                        "title": "If evaluating a run against a family stat, this field will be used to provide alignment configuration for the run under test"
                    }
                }
            },
            "v1EvaluateRulesPreviewResponse": {
                "type": "object",
                "properties": {
                    "createdAnnotationCount": {
                        "type": "integer",
                        "format": "int32"
                    },
                    "dryRunAnnotations": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1DryRunAnnotation"
                        }
                    }
                },
                "required": [
                    "createdAnnotationCount"
                ]
            },
            "v1EvaluatedAnnotationOptions": {
                "type": "object",
                "properties": {
                    "tagIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "v1ExportDataRequest": {
                "type": "object",
                "properties": {
                    "timeRange": {
                        "$ref": "#/components/schemas/v1TimeRange"
                    },
                    "runsAndTimeRange": {
                        "$ref": "#/components/schemas/v1RunsAndTimeRange"
                    },
                    "assetsAndTimeRange": {
                        "$ref": "#/components/schemas/v1AssetsAndTimeRange"
                    },
                    "channelIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "calculatedChannelConfigs": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/siftexportsv1CalculatedChannelConfig"
                        }
                    },
                    "outputFormat": {
                        "$ref": "#/components/schemas/v1ExportOutputFormat"
                    },
                    "exportOptions": {
                        "$ref": "#/components/schemas/v1ExportOptions"
                    }
                },
                "required": [
                    "outputFormat",
                    "exportOptions"
                ]
            },
            "v1ExportDataResponse": {
                "type": "object",
                "properties": {
                    "presignedUrl": {
                        "type": "string",
                        "description": "Pre-signed URL of exported zip containing export files. This will be blank if\nthe job is processed as a background job, in which case `job_id` will be non-empty."
                    },
                    "jobId": {
                        "type": "string",
                        "description": "This will be non-empty if the export is being processed asynchronously in a background job."
                    },
                    "serviceMessage": {
                        "type": "string",
                        "description": "Optional message for the client to display in success or error notification (e.g. exclusions or 403 reason)."
                    }
                }
            },
            "v1ExportFamilyResponse": {
                "type": "object",
                "properties": {
                    "exportedFamily": {
                        "type": "string"
                    }
                },
                "required": [
                    "exportedFamily"
                ]
            },
            "v1ExportOptions": {
                "type": "object",
                "properties": {
                    "useLegacyFormat": {
                        "type": "boolean",
                        "description": "Whether to use legacy format string for channel headers which contains key-value metadata."
                    },
                    "simplifyChannelNames": {
                        "type": "boolean",
                        "title": "Whether to simplify channel names by removing the component part of the name if name is unique in export file"
                    },
                    "combineRuns": {
                        "type": "boolean",
                        "description": "Whether to combine runs. e.g. channels from the same asset in different runs will be combined into a single column of data."
                    },
                    "splitExportByAsset": {
                        "type": "boolean",
                        "title": "Split each asset into their own export file"
                    },
                    "splitExportByRun": {
                        "type": "boolean",
                        "title": "Split each run into their own export file"
                    },
                    "embedChannelConfigs": {
                        "type": "boolean",
                        "description": "Embeds a re-importable channel configuration into the export: for CSV, as a config row\ninserted immediately after the header row; for Parquet, as per-column field metadata\nunder the \"sift_channel_config\" key. Ignored for the SUN output format."
                    }
                }
            },
            "v1ExportOutputFormat": {
                "type": "string",
                "enum": [
                    "EXPORT_OUTPUT_FORMAT_UNSPECIFIED",
                    "EXPORT_OUTPUT_FORMAT_CSV",
                    "EXPORT_OUTPUT_FORMAT_SUN",
                    "EXPORT_OUTPUT_FORMAT_PARQUET"
                ],
                "default": "EXPORT_OUTPUT_FORMAT_UNSPECIFIED"
            },
            "v1ExpressionChannelReference": {
                "type": "object",
                "properties": {
                    "channelReference": {
                        "type": "string"
                    },
                    "channelId": {
                        "type": "string"
                    },
                    "calculatedChannel": {
                        "$ref": "#/components/schemas/v1ExpressionRequest"
                    }
                },
                "required": [
                    "channelReference",
                    "channelId"
                ]
            },
            "v1ExpressionIdentifier": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "type": {
                        "$ref": "#/components/schemas/v1ExpressionIdentifierType"
                    },
                    "displayName": {
                        "type": "string"
                    },
                    "library": {
                        "$ref": "#/components/schemas/v1ExpressionIdentifierLibrary"
                    }
                },
                "required": [
                    "name",
                    "description",
                    "type",
                    "displayName",
                    "library"
                ]
            },
            "v1ExpressionIdentifierLibrary": {
                "type": "string",
                "enum": [
                    "EXPRESSION_IDENTIFIER_LIBRARY_UNSPECIFIED",
                    "EXPRESSION_IDENTIFIER_LIBRARY_MATH",
                    "EXPRESSION_IDENTIFIER_LIBRARY_STRING",
                    "EXPRESSION_IDENTIFIER_LIBRARY_LIST",
                    "EXPRESSION_IDENTIFIER_LIBRARY_ITER",
                    "EXPRESSION_IDENTIFIER_LIBRARY_STATEFUL",
                    "EXPRESSION_IDENTIFIER_LIBRARY_SUMMARY",
                    "EXPRESSION_IDENTIFIER_LIBRARY_USER_DEFINED_FUNCTIONS"
                ],
                "default": "EXPRESSION_IDENTIFIER_LIBRARY_UNSPECIFIED"
            },
            "v1ExpressionIdentifierType": {
                "type": "string",
                "enum": [
                    "EXPRESSION_IDENTIFIER_TYPE_UNSPECIFIED",
                    "EXPRESSION_IDENTIFIER_TYPE_FUNCTION",
                    "EXPRESSION_IDENTIFIER_TYPE_CHANNEL"
                ],
                "default": "EXPRESSION_IDENTIFIER_TYPE_UNSPECIFIED"
            },
            "v1ExpressionMode": {
                "type": "string",
                "enum": [
                    "EXPRESSION_MODE_UNSPECIFIED",
                    "EXPRESSION_MODE_RULES",
                    "EXPRESSION_MODE_CALCULATED_CHANNELS",
                    "EXPRESSION_MODE_RULER",
                    "EXPRESSION_MODE_STRUCTURED_DATA"
                ],
                "default": "EXPRESSION_MODE_UNSPECIFIED"
            },
            "v1ExpressionRequest": {
                "type": "object",
                "properties": {
                    "channelReferences": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "string"
                        },
                        "description": "A map from the channel reference in the expression string (e.g. $1) to the channel id (uuid).\nThis is deprecated and should be passed in expression_channel_references instead."
                    },
                    "expression": {
                        "type": "string"
                    },
                    "expressionChannelReferences": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ExpressionChannelReference"
                        }
                    },
                    "functionDependencies": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1FunctionDependency"
                        }
                    }
                },
                "required": [
                    "expression"
                ]
            },
            "v1ExternalSync": {
                "type": "object",
                "properties": {
                    "organizationId": {
                        "type": "string"
                    },
                    "mostRecentSyncDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "mostRecentSyncByUserId": {
                        "type": "string"
                    },
                    "scimServerUrl": {
                        "type": "string"
                    },
                    "tokenCreatedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "tokenLifetimeSeconds": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "mostRecentTokenByUserId": {
                        "type": "string"
                    },
                    "realm": {
                        "type": "string",
                        "description": "The Keycloak realm the sync reads from. Already stored alongside the sync;\nreturned here so customer admins can reference it."
                    },
                    "client": {
                        "type": "string",
                        "description": "The Keycloak client id the sync authenticates as. Already stored alongside\nthe sync; returned here so customer admins can reference it. The\ncorresponding client secret stays write-only and is never returned."
                    }
                },
                "required": [
                    "scimServerUrl",
                    "tokenLifetimeSeconds"
                ]
            },
            "v1ExternalSyncGroupRef": {
                "type": "object",
                "properties": {
                    "userGroupId": {
                        "type": "string"
                    },
                    "groupName": {
                        "type": "string"
                    }
                },
                "description": "Sift user group identity for display (group_name) and stable API use (user_group_id).",
                "required": [
                    "userGroupId",
                    "groupName"
                ]
            },
            "v1ExternalSyncMembershipChange": {
                "type": "object",
                "properties": {
                    "userId": {
                        "type": "string"
                    },
                    "userName": {
                        "type": "string"
                    },
                    "userGroupId": {
                        "type": "string"
                    },
                    "groupName": {
                        "type": "string"
                    }
                },
                "description": "One membership edge that changed during the sync.",
                "required": [
                    "userId",
                    "userName",
                    "userGroupId",
                    "groupName"
                ]
            },
            "v1ExternalSyncRun": {
                "type": "object",
                "properties": {
                    "externalSyncRunId": {
                        "type": "string"
                    },
                    "syncedAt": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "triggerType": {
                        "$ref": "#/components/schemas/v1ExternalSyncRunTriggerType"
                    },
                    "triggeredByUserId": {
                        "type": "string"
                    },
                    "diff": {
                        "$ref": "#/components/schemas/v1ExternalSyncRunDiff"
                    }
                },
                "required": [
                    "externalSyncRunId",
                    "syncedAt",
                    "triggerType",
                    "diff"
                ]
            },
            "v1ExternalSyncRunDiff": {
                "type": "object",
                "properties": {
                    "usersActivated": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ExternalSyncUserRef"
                        }
                    },
                    "usersDeactivated": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ExternalSyncUserRef"
                        }
                    },
                    "groupsCreated": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ExternalSyncGroupRef"
                        }
                    },
                    "groupsDeleted": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ExternalSyncGroupRef"
                        }
                    },
                    "usersAddedToGroups": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ExternalSyncMembershipChange"
                        }
                    },
                    "usersRemovedFromGroups": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ExternalSyncMembershipChange"
                        }
                    }
                },
                "description": "Snapshot of membership and lifecycle changes from one external sync run.\nIdentifiers are Sift `user_id` / `user_group_id` UUIDs and human-readable names as stored in Sift\n(not Keycloak SCIM ids). Older stored runs may have empty ids with names only.",
                "required": [
                    "usersActivated",
                    "usersDeactivated",
                    "groupsCreated",
                    "groupsDeleted",
                    "usersAddedToGroups",
                    "usersRemovedFromGroups"
                ]
            },
            "v1ExternalSyncRunSummary": {
                "type": "object",
                "properties": {
                    "externalSyncRunId": {
                        "type": "string"
                    },
                    "syncedAt": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "triggerType": {
                        "$ref": "#/components/schemas/v1ExternalSyncRunTriggerType"
                    },
                    "triggeredByUserId": {
                        "type": "string"
                    },
                    "usersActivatedCount": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "usersDeactivatedCount": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "groupsCreatedCount": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "groupsDeletedCount": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "usersAddedToGroupsCount": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "usersRemovedFromGroupsCount": {
                        "type": "integer",
                        "format": "int64"
                    }
                },
                "required": [
                    "externalSyncRunId",
                    "syncedAt",
                    "triggerType",
                    "usersActivatedCount",
                    "usersDeactivatedCount",
                    "groupsCreatedCount",
                    "groupsDeletedCount",
                    "usersAddedToGroupsCount",
                    "usersRemovedFromGroupsCount"
                ]
            },
            "v1ExternalSyncRunTriggerType": {
                "type": "string",
                "enum": [
                    "EXTERNAL_SYNC_RUN_TRIGGER_TYPE_UNSPECIFIED",
                    "EXTERNAL_SYNC_RUN_TRIGGER_TYPE_MANUAL_USER",
                    "EXTERNAL_SYNC_RUN_TRIGGER_TYPE_SCHEDULED"
                ],
                "default": "EXTERNAL_SYNC_RUN_TRIGGER_TYPE_UNSPECIFIED",
                "description": " - EXTERNAL_SYNC_RUN_TRIGGER_TYPE_MANUAL_USER: User triggered sync via the Sift UI or API."
            },
            "v1ExternalSyncToken": {
                "type": "object",
                "properties": {
                    "tokenId": {
                        "type": "string"
                    },
                    "lifetimeSeconds": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "createdByUserId": {
                        "type": "string"
                    }
                },
                "description": "The actual token value is not returned after it is first generated.",
                "required": [
                    "tokenId",
                    "lifetimeSeconds",
                    "createdDate",
                    "createdByUserId"
                ]
            },
            "v1ExternalSyncUserRef": {
                "type": "object",
                "properties": {
                    "userId": {
                        "type": "string"
                    },
                    "userName": {
                        "type": "string"
                    }
                },
                "description": "Sift user identity for display (user_name) and stable API use (user_id).",
                "required": [
                    "userId",
                    "userName"
                ]
            },
            "v1Family": {
                "type": "object",
                "properties": {
                    "familyId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "clientKey": {
                        "type": "string",
                        "title": "Client key is a user-provided unique identifier for the family"
                    },
                    "currentVersionId": {
                        "type": "string",
                        "description": "The latest family_version_id for the family.",
                        "readOnly": true
                    },
                    "isArchived": {
                        "type": "boolean",
                        "description": "Whether the family is archived."
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "archivedDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "createdByUserId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "modifiedByUserId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "organizationId": {
                        "type": "string",
                        "readOnly": true
                    }
                },
                "required": [
                    "familyId",
                    "currentVersionId",
                    "isArchived",
                    "createdDate",
                    "modifiedDate",
                    "createdByUserId",
                    "modifiedByUserId",
                    "organizationId"
                ]
            },
            "v1FamilyAlignment": {
                "type": "object",
                "properties": {
                    "familyAlignmentId": {
                        "type": "string",
                        "description": "When creating a family, this field can contain a temporary identifier\nprovided by the client for referencing this alignment in family_stats. The temporary ID\nmust be unique within the CreateFamilyRequest and is required when this alignment is\nreferenced in family_stats. The service will resolve it to the actual alignment ID.\nWhen updating a family, this field must contain the actual family_alignment_id.\nIn responses, this field contains the actual family_alignment_id."
                    },
                    "familyVersionId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "name": {
                        "type": "string",
                        "description": "The name of the alignment. Must be unique within the family."
                    },
                    "description": {
                        "type": "string"
                    },
                    "run": {
                        "$ref": "#/components/schemas/v1RunAlignment"
                    },
                    "annotation": {
                        "$ref": "#/components/schemas/v1DefaultAnnotationAlignment"
                    },
                    "timestamp": {
                        "$ref": "#/components/schemas/v1TimestampAlignment"
                    },
                    "familyAlignmentPoints": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1FamilyAlignmentPoint"
                        },
                        "description": "Specific alignment points for each family member for the alignment. If not provided for a family member, the member does not implement this alignment."
                    }
                },
                "description": "FamilyAlignment represents a family-level time-alignment for naming and resolving run relative times.",
                "required": [
                    "familyAlignmentId",
                    "familyVersionId",
                    "name",
                    "familyAlignmentPoints"
                ]
            },
            "v1FamilyAlignmentPoint": {
                "type": "object",
                "properties": {
                    "familyAlignmentPointId": {
                        "type": "string",
                        "description": "When creating a family, this field can contain a temporary identifier\nprovided by the client for referencing this alignment point in family_stats. The temporary ID\nmust be unique within the CreateFamilyRequest and is required when this alignment point is\nreferenced in family_stats. The service will resolve it to the actual alignment_point_id.\nWhen updating a family, this field must contain the actual family_alignment_point_id.\nIn responses, this field contains the actual family_alignment_point_id.\nCan be empty string if not referenced in family_stats."
                    },
                    "familyRunId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "runId": {
                        "type": "string"
                    },
                    "familyAlignmentId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "run": {
                        "$ref": "#/components/schemas/v1RunAlignment"
                    },
                    "annotation": {
                        "$ref": "#/components/schemas/v1AnnotationAlignment"
                    },
                    "timestamp": {
                        "$ref": "#/components/schemas/v1TimestampAlignment"
                    }
                },
                "description": "FamilyAlignmentPoint represents a member specific time-alignment for the FamilyAlignment.",
                "required": [
                    "familyAlignmentPointId",
                    "familyRunId",
                    "runId",
                    "familyAlignmentId"
                ]
            },
            "v1FamilyDetails": {
                "type": "object",
                "properties": {
                    "family": {
                        "$ref": "#/components/schemas/v1Family"
                    },
                    "familyVersion": {
                        "$ref": "#/components/schemas/v1FamilyVersion"
                    },
                    "familyRuns": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1FamilyRun"
                        },
                        "description": "The family members associated with the FamilyVersion."
                    },
                    "familyAlignments": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1FamilyAlignment"
                        },
                        "description": "The alignments associated with the FamilyVersion."
                    },
                    "familyStats": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1FamilyStatDetails"
                        },
                        "description": "The family stats associated with the FamilyVersion."
                    }
                },
                "required": [
                    "family",
                    "familyVersion",
                    "familyRuns",
                    "familyAlignments"
                ]
            },
            "v1FamilyRuleDependency": {
                "type": "object",
                "properties": {
                    "ruleId": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "statReference": {
                        "$ref": "#/components/schemas/v1FamilyStatReference"
                    }
                },
                "required": [
                    "ruleId",
                    "name",
                    "statReference"
                ]
            },
            "v1FamilyRun": {
                "type": "object",
                "properties": {
                    "familyRunId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "familyVersionId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "runId": {
                        "type": "string"
                    },
                    "isExclusion": {
                        "type": "boolean",
                        "description": "Whether the run is excluded from the family. If `true` the run is explicitly excluded, otherwise it is included."
                    },
                    "rationale": {
                        "type": "string",
                        "description": "User rationale for the inclusion or exclusion."
                    },
                    "addedDate": {
                        "type": "string",
                        "format": "date-time",
                        "description": "Date when the run was included or excluded from the family.",
                        "readOnly": true
                    },
                    "addedByUserId": {
                        "type": "string",
                        "description": "User id of the user who included or excluded the run from the family.",
                        "readOnly": true
                    },
                    "addedInVersionId": {
                        "type": "string",
                        "description": "Version id of the version in which the run was included or excluded from the family.",
                        "readOnly": true
                    }
                },
                "description": "FamilyRun represents a run which is either included in the family or explicitly excluded.",
                "required": [
                    "familyRunId",
                    "familyVersionId",
                    "runId",
                    "addedDate",
                    "addedByUserId",
                    "addedInVersionId"
                ]
            },
            "v1FamilyStat": {
                "type": "object",
                "properties": {
                    "familyStatId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "familyVersionId": {
                        "type": "string",
                        "description": "The family version id of the family stat.",
                        "readOnly": true
                    },
                    "name": {
                        "type": "string",
                        "description": "The name of the family stat."
                    },
                    "description": {
                        "type": "string",
                        "description": "The description of the family stat."
                    },
                    "sampleRate": {
                        "type": "number",
                        "format": "double",
                        "description": "The sample rate of the family stat (Hz)."
                    },
                    "defaultChannelNames": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "Ordered list of channel names to include in the family stat.\nThe first channel name is the primary channel name across all the family members.\nThe remaining channel names are fallback channels or individual overrides when the primary channel\nis not available across all the family members."
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "createdByUserId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "modifiedByUserId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "organizationId": {
                        "type": "string",
                        "readOnly": true
                    }
                },
                "required": [
                    "familyStatId",
                    "familyVersionId",
                    "name",
                    "sampleRate",
                    "defaultChannelNames",
                    "createdDate",
                    "modifiedDate",
                    "createdByUserId",
                    "modifiedByUserId",
                    "organizationId"
                ]
            },
            "v1FamilyStatChannel": {
                "type": "object",
                "properties": {
                    "familyStatChannelId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "familyStatId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "channelId": {
                        "type": "string",
                        "description": "The channel id of the channel to include in the family stat given the list of channel names provided in the family stat."
                    },
                    "alignmentPointId": {
                        "type": "string",
                        "description": "Specific alignment point id of the family member / channel to include in the family stat.\nWhen creating a family stat with a new Family, this field should contain the temporary_id\nfrom FamilyAlignmentPoint.family_alignment_point_id. The service will resolve it to the actual alignment_point_id.\nWhen updating a family stat, this field must contain the actual alignment_point_id.\nThis will be prevalent when multiple alignment points are supported for a given family member."
                    }
                },
                "required": [
                    "familyStatChannelId",
                    "familyStatId",
                    "channelId",
                    "alignmentPointId"
                ]
            },
            "v1FamilyStatDetails": {
                "type": "object",
                "properties": {
                    "familyStat": {
                        "$ref": "#/components/schemas/v1FamilyStat"
                    },
                    "familyStatExpressions": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1FamilyStatExpression"
                        }
                    },
                    "familyStatChannels": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1FamilyStatChannel"
                        }
                    },
                    "familyStatRanges": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1FamilyStatRange"
                        }
                    }
                },
                "required": [
                    "familyStat",
                    "familyStatExpressions",
                    "familyStatRanges"
                ]
            },
            "v1FamilyStatExpression": {
                "type": "object",
                "properties": {
                    "familyStatExpressionId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "familyStatId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "avg": {
                        "type": "object",
                        "properties": {}
                    },
                    "median": {
                        "type": "object",
                        "properties": {}
                    },
                    "min": {
                        "type": "object",
                        "properties": {}
                    },
                    "max": {
                        "type": "object",
                        "properties": {}
                    },
                    "stdev": {
                        "type": "object",
                        "properties": {}
                    },
                    "sum": {
                        "type": "object",
                        "properties": {}
                    },
                    "inputCount": {
                        "type": "object",
                        "properties": {}
                    },
                    "sigma": {
                        "type": "object",
                        "properties": {},
                        "readOnly": true
                    }
                },
                "required": [
                    "familyStatExpressionId",
                    "familyStatId"
                ]
            },
            "v1FamilyStatRange": {
                "type": "object",
                "properties": {
                    "familyStatRangeId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "familyStatId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "familyAlignmentId": {
                        "type": "string",
                        "description": "T-0 Alignment ID to align the data for stat calculation.\nWhen creating a family stat with a new Family, this field should contain the temporary_id\nfrom FamilyAlignment.family_alignment_id. The service will resolve it to the actual alignment ID.\nWhen updating a family stat, this field must contain the actual family_alignment_id."
                    },
                    "name": {
                        "type": "string",
                        "description": "Unique name for the family stat range.",
                        "readOnly": true
                    },
                    "windowStart": {
                        "$ref": "#/components/schemas/v1WindowType"
                    },
                    "windowEnd": {
                        "$ref": "#/components/schemas/v1WindowType"
                    }
                },
                "required": [
                    "familyStatRangeId",
                    "familyStatId",
                    "familyAlignmentId",
                    "name"
                ]
            },
            "v1FamilyStatReference": {
                "type": "object",
                "properties": {
                    "reference": {
                        "type": "string",
                        "title": "How to refer to the family stat in the expression, e.g. $A"
                    },
                    "familyId": {
                        "type": "string",
                        "title": "Choose the family, e.g. Sift Rocket Engine"
                    },
                    "familyStatName": {
                        "type": "string",
                        "title": "Choose the stat, e.g. TC-TURB.avg"
                    },
                    "familyStatExpression": {
                        "type": "string"
                    },
                    "familyStatRangeName": {
                        "type": "string",
                        "title": "Choose the range by name, which will be used to resolve the alignment and range, e.g. Startup +/- 5s"
                    }
                },
                "required": [
                    "reference",
                    "familyId",
                    "familyStatName",
                    "familyStatExpression",
                    "familyStatRangeName"
                ]
            },
            "v1FamilyVersion": {
                "type": "object",
                "properties": {
                    "familyVersionId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "familyId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "version": {
                        "type": "integer",
                        "format": "int64",
                        "readOnly": true
                    },
                    "name": {
                        "type": "string",
                        "description": "The name of the family. Must be unique within the organization for the latest family versions."
                    },
                    "description": {
                        "type": "string"
                    },
                    "runQuery": {
                        "type": "string",
                        "description": "An optional query to track a CEL expression against the ListRuns endpoint. This query is only for reference,\nand does not affect the runs that are included in the family. To specify which runs are included in the family,\nuse the `runs` field."
                    },
                    "userNotes": {
                        "type": "string",
                        "title": "Notes provided by the user to describe the family version changes"
                    },
                    "changeMessage": {
                        "type": "string",
                        "description": "Family Service provided message describing the changes made to the family version.",
                        "readOnly": true
                    },
                    "metadata": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        },
                        "description": "Metadata associated with the family version."
                    },
                    "sigmaDefaultValues": {
                        "type": "array",
                        "items": {
                            "type": "number",
                            "format": "double"
                        },
                        "description": "User-configurable default sigma multiplier values, e.g. [1, 2, 3].\nIf not provided, the default values [-1, 1, -2, 2, -3, 3] will be used."
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "createdByUserId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "modifiedByUserId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "organizationId": {
                        "type": "string",
                        "readOnly": true
                    }
                },
                "required": [
                    "familyVersionId",
                    "familyId",
                    "version",
                    "name",
                    "changeMessage",
                    "createdDate",
                    "modifiedDate",
                    "createdByUserId",
                    "modifiedByUserId",
                    "organizationId"
                ]
            },
            "v1FunctionDataType": {
                "type": "string",
                "enum": [
                    "FUNCTION_DATA_TYPE_UNSPECIFIED",
                    "FUNCTION_DATA_TYPE_NUMERIC",
                    "FUNCTION_DATA_TYPE_STRING",
                    "FUNCTION_DATA_TYPE_BOOL"
                ],
                "default": "FUNCTION_DATA_TYPE_UNSPECIFIED"
            },
            "v1FunctionDependency": {
                "type": "object",
                "properties": {
                    "userDefinedFunctionVersionId": {
                        "type": "string"
                    }
                },
                "required": [
                    "userDefinedFunctionVersionId"
                ]
            },
            "v1FunctionInput": {
                "type": "object",
                "properties": {
                    "identifier": {
                        "type": "string"
                    },
                    "dataType": {
                        "$ref": "#/components/schemas/v1FunctionDataType"
                    },
                    "constant": {
                        "type": "boolean"
                    }
                },
                "required": [
                    "identifier",
                    "dataType",
                    "constant"
                ]
            },
            "v1GenerateFamilyStatRangeNameResponse": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string"
                    }
                },
                "required": [
                    "name"
                ]
            },
            "v1GenerateTokenRequest": {
                "type": "object"
            },
            "v1GenerateTokenResponse": {
                "type": "object",
                "properties": {
                    "externalSync": {
                        "$ref": "#/components/schemas/v1ExternalSync"
                    },
                    "token": {
                        "type": "string"
                    }
                },
                "required": [
                    "externalSync",
                    "token"
                ]
            },
            "v1GetAnnotationResponse": {
                "type": "object",
                "properties": {
                    "annotation": {
                        "$ref": "#/components/schemas/annotationsv1Annotation"
                    }
                },
                "description": "The response of a call to `AnnotationService_GetAnnotation`.",
                "required": [
                    "annotation"
                ]
            },
            "v1GetArtifactResponse": {
                "type": "object",
                "properties": {
                    "artifact": {
                        "$ref": "#/components/schemas/v1ArtifactDetails"
                    }
                }
            },
            "v1GetAssetResponse": {
                "type": "object",
                "properties": {
                    "asset": {
                        "$ref": "#/components/schemas/assetsv1Asset"
                    }
                }
            },
            "v1GetAutomationTriggerResponse": {
                "type": "object",
                "properties": {
                    "automationTrigger": {
                        "$ref": "#/components/schemas/v1AutomationTrigger"
                    }
                },
                "description": "The response of a call to `AutomationService_GetAutomationTrigger`.",
                "required": [
                    "automationTrigger"
                ]
            },
            "v1GetCampaignReportSummariesRequest": {
                "type": "object",
                "properties": {
                    "campaignIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "organizationId": {
                        "type": "string",
                        "description": "This field is only required if your user belongs to multiple organizations."
                    }
                },
                "required": [
                    "campaignIds"
                ]
            },
            "v1GetCampaignReportSummariesResponse": {
                "type": "object",
                "properties": {
                    "summariesByCampaignId": {
                        "type": "object",
                        "additionalProperties": {
                            "$ref": "#/components/schemas/v1CampaignReports"
                        },
                        "description": "Keyed by campaign_id. Each value contains the full list of CampaignReport\nentries for that campaign with summary fields (num_*) populated."
                    }
                }
            },
            "v1GetCampaignResponse": {
                "type": "object",
                "properties": {
                    "campaign": {
                        "$ref": "#/components/schemas/v1Campaign"
                    }
                },
                "description": "The response of a call to `CampaignService_GetCampaign` to retrieve a campaign.",
                "required": [
                    "campaign"
                ]
            },
            "v1GetDownloadUrlResponse": {
                "type": "object",
                "properties": {
                    "presignedUrl": {
                        "type": "string"
                    },
                    "serviceMessage": {
                        "type": "string",
                        "description": "Optional message for the client to display in success or error notification."
                    }
                },
                "required": [
                    "presignedUrl"
                ]
            },
            "v1GetExternalSyncResponse": {
                "type": "object",
                "properties": {
                    "success": {
                        "type": "boolean"
                    },
                    "externalSync": {
                        "$ref": "#/components/schemas/v1ExternalSync"
                    }
                },
                "required": [
                    "success",
                    "externalSync"
                ]
            },
            "v1GetExternalSyncRunResponse": {
                "type": "object",
                "properties": {
                    "externalSyncRun": {
                        "$ref": "#/components/schemas/v1ExternalSyncRun"
                    }
                },
                "required": [
                    "externalSyncRun"
                ]
            },
            "v1GetFamiliesRequest": {
                "type": "object",
                "properties": {
                    "familyIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "clientKeys": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "v1GetFamiliesResponse": {
                "type": "object",
                "properties": {
                    "families": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1FamilyDetails"
                        }
                    }
                },
                "required": [
                    "families"
                ]
            },
            "v1GetFamilyCandidateRunCountResponse": {
                "type": "object",
                "properties": {
                    "count": {
                        "type": "integer",
                        "format": "int64"
                    }
                },
                "required": [
                    "count"
                ]
            },
            "v1GetFamilyCandidateRunsResponse": {
                "type": "object",
                "properties": {
                    "runQuery": {
                        "type": "string"
                    },
                    "candidateRunIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "required": [
                    "runQuery",
                    "candidateRunIds"
                ]
            },
            "v1GetFamilyResponse": {
                "type": "object",
                "properties": {
                    "family": {
                        "$ref": "#/components/schemas/v1FamilyDetails"
                    }
                },
                "required": [
                    "family"
                ]
            },
            "v1GetFamilyRuleDependenciesResponse": {
                "type": "object",
                "properties": {
                    "ruleDependencies": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1FamilyRuleDependency"
                        }
                    }
                },
                "required": [
                    "ruleDependencies"
                ]
            },
            "v1GetFamilyStatResponse": {
                "type": "object",
                "properties": {
                    "familyStatDetails": {
                        "$ref": "#/components/schemas/v1FamilyStatDetails"
                    }
                },
                "required": [
                    "familyStatDetails"
                ]
            },
            "v1GetFamilyStatsResponse": {
                "type": "object",
                "properties": {
                    "familyStatsDetails": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1FamilyStatDetails"
                        }
                    }
                },
                "required": [
                    "familyStatsDetails"
                ]
            },
            "v1GetFamilyVersionResponse": {
                "type": "object",
                "properties": {
                    "family": {
                        "$ref": "#/components/schemas/v1FamilyDetails"
                    }
                },
                "required": [
                    "family"
                ]
            },
            "v1GetIsOrgExternallyProvisionedResponse": {
                "type": "object",
                "properties": {
                    "isExternallyProvisioned": {
                        "type": "boolean"
                    }
                },
                "required": [
                    "isExternallyProvisioned"
                ]
            },
            "v1GetPanelConfigurationResponse": {
                "type": "object",
                "properties": {
                    "panelConfiguration": {
                        "$ref": "#/components/schemas/v1PanelConfiguration"
                    }
                }
            },
            "v1GetPolicyResponse": {
                "type": "object",
                "properties": {
                    "policy": {
                        "$ref": "#/components/schemas/v1Policy"
                    }
                },
                "description": "The response of a call to `PolicyService_GetPolicy`.",
                "required": [
                    "policy"
                ]
            },
            "v1GetPrincipalAttributeEnumValueResponse": {
                "type": "object",
                "properties": {
                    "principalAttributeEnumValue": {
                        "$ref": "#/components/schemas/v1PrincipalAttributeEnumValue"
                    }
                },
                "required": [
                    "principalAttributeEnumValue"
                ]
            },
            "v1GetPrincipalAttributeKeyResponse": {
                "type": "object",
                "properties": {
                    "principalAttributeKey": {
                        "$ref": "#/components/schemas/v1PrincipalAttributeKey"
                    }
                },
                "description": "GetPrincipalAttributeKeyResponse returns a principal attribute key from a GetPrincipalAttributeKey call.",
                "required": [
                    "principalAttributeKey"
                ]
            },
            "v1GetPrincipalAttributeValueResponse": {
                "type": "object",
                "properties": {
                    "principalAttributeValue": {
                        "$ref": "#/components/schemas/v1PrincipalAttributeValue"
                    }
                },
                "description": "GetPrincipalAttributeValueResponse returns a principal attribute value from a GetPrincipalAttributeValue call.",
                "required": [
                    "principalAttributeValue"
                ]
            },
            "v1GetRemoteFileDownloadUrlResponse": {
                "type": "object",
                "properties": {
                    "downloadUrl": {
                        "type": "string"
                    }
                },
                "description": "The response of a call to `RemoteFileService_GetRemoteFileDownloadUrl`.",
                "required": [
                    "downloadUrl"
                ]
            },
            "v1GetRemoteFileResponse": {
                "type": "object",
                "properties": {
                    "remoteFile": {
                        "$ref": "#/components/schemas/v1RemoteFile"
                    }
                },
                "description": "The response of a call to `RemoteFileService_GetRemoteFile`.",
                "required": [
                    "remoteFile"
                ]
            },
            "v1GetReportResponse": {
                "type": "object",
                "properties": {
                    "report": {
                        "$ref": "#/components/schemas/v1Report"
                    }
                },
                "description": "The request of a call to `ReportService_GetReport` to retrieve a report template.",
                "required": [
                    "report"
                ]
            },
            "v1GetReportTemplateResponse": {
                "type": "object",
                "properties": {
                    "reportTemplate": {
                        "$ref": "#/components/schemas/v1ReportTemplate"
                    }
                },
                "description": "The request of a call to `ReportTemplateService_GetReportTemplate` to retrieve a report template.",
                "required": [
                    "reportTemplate"
                ]
            },
            "v1GetResourceAttributeEnumValueResponse": {
                "type": "object",
                "properties": {
                    "resourceAttributeEnumValue": {
                        "$ref": "#/components/schemas/v1ResourceAttributeEnumValue"
                    }
                },
                "required": [
                    "resourceAttributeEnumValue"
                ]
            },
            "v1GetResourceAttributeKeyResponse": {
                "type": "object",
                "properties": {
                    "resourceAttributeKey": {
                        "$ref": "#/components/schemas/v1ResourceAttributeKey"
                    }
                },
                "required": [
                    "resourceAttributeKey"
                ]
            },
            "v1GetResourceAttributeResponse": {
                "type": "object",
                "properties": {
                    "resourceAttribute": {
                        "$ref": "#/components/schemas/v1ResourceAttribute"
                    }
                },
                "required": [
                    "resourceAttribute"
                ]
            },
            "v1GetRuleResponse": {
                "type": "object",
                "properties": {
                    "rule": {
                        "$ref": "#/components/schemas/v1Rule"
                    }
                },
                "required": [
                    "rule"
                ]
            },
            "v1GetRuleVersionResponse": {
                "type": "object",
                "properties": {
                    "rule": {
                        "$ref": "#/components/schemas/v1Rule"
                    }
                },
                "required": [
                    "rule"
                ]
            },
            "v1GetSavedSearchResponse": {
                "type": "object",
                "properties": {
                    "savedSearch": {
                        "$ref": "#/components/schemas/v1SavedSearch"
                    }
                },
                "description": "The response of a call to `SavedSearchService_GetSavedSearch`.",
                "required": [
                    "savedSearch"
                ]
            },
            "v1GetTestReportResponse": {
                "type": "object",
                "properties": {
                    "testReport": {
                        "$ref": "#/components/schemas/v1TestReport"
                    }
                },
                "title": "Response message for GetTestReport"
            },
            "v1GetUserDefinedFunctionDependentsResponse": {
                "type": "object",
                "properties": {
                    "userDefinedFunctions": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1UserDefinedFunction"
                        }
                    },
                    "nextPageTokenUserDefinedFunction": {
                        "type": "string"
                    },
                    "calculatedChannels": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v2CalculatedChannel"
                        }
                    },
                    "nextPageTokenCalculatedChannel": {
                        "type": "string"
                    },
                    "rules": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1Rule"
                        }
                    },
                    "nextPageTokenRule": {
                        "type": "string"
                    }
                },
                "required": [
                    "userDefinedFunctions",
                    "calculatedChannels",
                    "rules"
                ]
            },
            "v1GetUserDefinedFunctionResponse": {
                "type": "object",
                "properties": {
                    "userDefinedFunction": {
                        "$ref": "#/components/schemas/v1UserDefinedFunction"
                    }
                },
                "required": [
                    "userDefinedFunction"
                ]
            },
            "v1GetUserDefinedFunctionVersionResponse": {
                "type": "object",
                "properties": {
                    "userDefinedFunction": {
                        "$ref": "#/components/schemas/v1UserDefinedFunction"
                    }
                },
                "required": [
                    "userDefinedFunction"
                ]
            },
            "v1GetUserDefinedFunctionVersionsResponse": {
                "type": "object",
                "properties": {
                    "userDefinedFunctions": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1UserDefinedFunction"
                        }
                    }
                },
                "required": [
                    "userDefinedFunctions"
                ]
            },
            "v1GetWebhookResponse": {
                "type": "object",
                "properties": {
                    "webhook": {
                        "$ref": "#/components/schemas/v1Webhook"
                    }
                },
                "description": "The response of a call to `WebhookService_GetWebhook`.",
                "required": [
                    "webhook"
                ]
            },
            "v1GetWebhookSignatureKeyResponse": {
                "type": "object",
                "properties": {
                    "signatureKey": {
                        "$ref": "#/components/schemas/v1WebhookSignatureKey"
                    }
                },
                "description": "The response for a call to `WebhookService_GetWebhookSignatureKey`. The `active` field indicates whether\nor not whether the key is currently active.",
                "required": [
                    "signatureKey"
                ]
            },
            "v1Ids": {
                "type": "object",
                "properties": {
                    "ids": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "required": [
                    "ids"
                ]
            },
            "v1ImageMetadata": {
                "type": "object",
                "properties": {
                    "height": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "width": {
                        "type": "integer",
                        "format": "int64"
                    }
                }
            },
            "v1ImportFamilyRequest": {
                "type": "object",
                "properties": {
                    "familyYaml": {
                        "type": "string",
                        "title": "The source to import the family from. Must provide family_yaml. The contents of the source\nshould match the shape of CreateFamilyRequest"
                    }
                },
                "required": [
                    "familyYaml"
                ]
            },
            "v1ImportFamilyResponse": {
                "type": "object",
                "properties": {
                    "familyId": {
                        "type": "string"
                    },
                    "family": {
                        "$ref": "#/components/schemas/v1FamilyDetails"
                    }
                },
                "required": [
                    "familyId",
                    "family"
                ]
            },
            "v1ImportTestReportRequest": {
                "type": "object",
                "properties": {
                    "remoteFileId": {
                        "type": "string",
                        "title": "The remote file ID containing the XML test data"
                    }
                },
                "title": "Request message for ImportTestReport",
                "required": [
                    "remoteFileId"
                ]
            },
            "v1ImportTestReportResponse": {
                "type": "object",
                "properties": {
                    "testReport": {
                        "$ref": "#/components/schemas/v1TestReport"
                    }
                },
                "title": "Response message for ImportTestReport"
            },
            "v1ImportUpdateFamilyResponse": {
                "type": "object",
                "properties": {
                    "familyVersionId": {
                        "type": "string"
                    },
                    "family": {
                        "$ref": "#/components/schemas/v1FamilyDetails"
                    }
                },
                "required": [
                    "familyVersionId",
                    "family"
                ]
            },
            "v1IngestArbitraryProtobufDataStreamResponse": {
                "type": "object"
            },
            "v1IngestWithConfigDataChannelValue": {
                "type": "object",
                "properties": {
                    "string": {
                        "type": "string"
                    },
                    "double": {
                        "type": "number",
                        "format": "double"
                    },
                    "float": {
                        "type": "number",
                        "format": "float"
                    },
                    "bool": {
                        "type": "boolean"
                    },
                    "int32": {
                        "type": "integer",
                        "format": "int32"
                    },
                    "uint32": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "int64": {
                        "type": "string",
                        "format": "int64"
                    },
                    "uint64": {
                        "type": "string",
                        "format": "uint64"
                    },
                    "bitField": {
                        "type": "string",
                        "format": "byte"
                    },
                    "enum": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "empty": {
                        "type": "object",
                        "properties": {},
                        "title": "If there's not a new data point for a channel at the given timestamp, pass empty to skip it"
                    },
                    "bytes": {
                        "type": "string",
                        "format": "byte"
                    }
                }
            },
            "v1IngestWithConfigDataStreamResponse": {
                "type": "object"
            },
            "v1Job": {
                "type": "object",
                "properties": {
                    "jobId": {
                        "type": "string"
                    },
                    "organizationId": {
                        "type": "string"
                    },
                    "createdByUserId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "modifiedByUserId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "startedDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "completedDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "jobType": {
                        "$ref": "#/components/schemas/v1JobType"
                    },
                    "jobStatus": {
                        "$ref": "#/components/schemas/v1JobStatus"
                    },
                    "jobStatusDetails": {
                        "$ref": "#/components/schemas/v1JobStatusDetails"
                    },
                    "jobDetails": {
                        "$ref": "#/components/schemas/v1JobDetails"
                    }
                },
                "required": [
                    "jobId",
                    "createdByUserId",
                    "modifiedByUserId",
                    "createdDate",
                    "modifiedDate",
                    "jobType",
                    "jobStatus"
                ]
            },
            "v1JobDetails": {
                "type": "object",
                "properties": {
                    "ruleEvaluation": {
                        "$ref": "#/components/schemas/v1RuleEvaluationJobDetails"
                    },
                    "dataImport": {
                        "$ref": "#/components/schemas/v1DataImportJobDetails"
                    },
                    "dataExport": {
                        "$ref": "#/components/schemas/v1DataExportJobDetails"
                    }
                }
            },
            "v1JobStatus": {
                "type": "string",
                "enum": [
                    "JOB_STATUS_UNSPECIFIED",
                    "JOB_STATUS_CREATED",
                    "JOB_STATUS_RUNNING",
                    "JOB_STATUS_FINISHED",
                    "JOB_STATUS_FAILED",
                    "JOB_STATUS_CANCELLED",
                    "JOB_STATUS_CANCEL_REQUESTED"
                ],
                "default": "JOB_STATUS_UNSPECIFIED"
            },
            "v1JobStatusDetails": {
                "type": "object",
                "properties": {
                    "ruleEvaluation": {
                        "$ref": "#/components/schemas/v1RuleEvaluationStatusDetails"
                    },
                    "dataImport": {
                        "$ref": "#/components/schemas/v1DataImportStatusDetails"
                    },
                    "dataExport": {
                        "$ref": "#/components/schemas/v1DataExportStatusDetails"
                    }
                }
            },
            "v1JobType": {
                "type": "string",
                "enum": [
                    "JOB_TYPE_UNSPECIFIED",
                    "JOB_TYPE_RULE_EVALUATION",
                    "JOB_TYPE_DATA_IMPORT",
                    "JOB_TYPE_DATA_EXPORT"
                ],
                "default": "JOB_TYPE_UNSPECIFIED"
            },
            "v1JsonRulesRequest": {
                "type": "object",
                "properties": {
                    "assetId": {
                        "type": "string"
                    },
                    "rulesJson": {
                        "type": "string"
                    },
                    "organizationId": {
                        "type": "string"
                    }
                },
                "required": [
                    "assetId",
                    "rulesJson",
                    "organizationId"
                ]
            },
            "v1JsonRulesResponse": {
                "type": "object",
                "properties": {
                    "success": {
                        "type": "boolean"
                    },
                    "totalRulesCount": {
                        "type": "integer",
                        "format": "int32"
                    },
                    "rulesCreatedCount": {
                        "type": "integer",
                        "format": "int32"
                    },
                    "rulesUpdatedCount": {
                        "type": "integer",
                        "format": "int32"
                    },
                    "rulesDeletedCount": {
                        "type": "integer",
                        "format": "int32"
                    },
                    "errorMessages": {
                        "type": "string"
                    }
                },
                "required": [
                    "success",
                    "totalRulesCount",
                    "rulesCreatedCount",
                    "rulesUpdatedCount",
                    "rulesDeletedCount"
                ]
            },
            "v1LastValueThreshold": {
                "type": "object"
            },
            "v1LinkArtifactToConversationResponse": {
                "type": "object"
            },
            "v1ListAnnotationLogsResponse": {
                "type": "object",
                "properties": {
                    "annotationLogs": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1AnnotationLogSearchResult"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "The response of a call to `AnnotationLogService_ListAnnotationLogs`."
            },
            "v1ListAnnotationsResponse": {
                "type": "object",
                "properties": {
                    "annotations": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/annotationsv1Annotation"
                        }
                    },
                    "nextPageToken": {
                        "type": "string",
                        "description": "Oops, we skipped to index 5! No reason for that; the indices between aren't reserved or anything."
                    }
                },
                "description": "The result of a call to `AnnotationService_ListAnnotations`."
            },
            "v1ListArtifactVersionsResponse": {
                "type": "object",
                "properties": {
                    "versions": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ArtifactVersion"
                        },
                        "readOnly": true
                    },
                    "nextPageToken": {
                        "type": "string",
                        "readOnly": true
                    }
                }
            },
            "v1ListArtifactsResponse": {
                "type": "object",
                "properties": {
                    "artifacts": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ArtifactDetails"
                        },
                        "readOnly": true
                    },
                    "nextPageToken": {
                        "type": "string",
                        "readOnly": true
                    }
                }
            },
            "v1ListAssetsResponse": {
                "type": "object",
                "properties": {
                    "assets": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/assetsv1Asset"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "The result of a call to `AssetService_ListAssets`."
            },
            "v1ListAutomationTriggeredEventsResponse": {
                "type": "object",
                "properties": {
                    "automationTriggeredEvents": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1AutomationTriggeredEvent"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "The response of a call to `AutomationService_ListAutomationTriggeredEvents`.",
                "required": [
                    "automationTriggeredEvents",
                    "nextPageToken"
                ]
            },
            "v1ListAutomationTriggersResponse": {
                "type": "object",
                "properties": {
                    "automationTriggers": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1AutomationTrigger"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "The response of a call to `AutomationService_ListAutomationTriggers`.",
                "required": [
                    "automationTriggers",
                    "nextPageToken"
                ]
            },
            "v1ListCampaignAnnotationsResponse": {
                "type": "object",
                "properties": {
                    "annotations": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/annotationsv1Annotation"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                }
            },
            "v1ListCampaignsResponse": {
                "type": "object",
                "properties": {
                    "campaigns": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1Campaign"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "The response of a call to `CampaignService_ListCampaignsResponse`."
            },
            "v1ListCommentsResponse": {
                "type": "object",
                "properties": {
                    "comments": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1Comment"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "The response of a call to `CommentService_ListComments`."
            },
            "v1ListExpressionIdentifiersResponse": {
                "type": "object",
                "properties": {
                    "identifiers": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ExpressionIdentifier"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "required": [
                    "identifiers"
                ]
            },
            "v1ListExternalSyncRunsResponse": {
                "type": "object",
                "properties": {
                    "externalSyncRunSummaries": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ExternalSyncRunSummary"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "required": [
                    "externalSyncRunSummaries"
                ]
            },
            "v1ListExternalSyncTokensResponse": {
                "type": "object",
                "properties": {
                    "externalSyncTokens": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ExternalSyncToken"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "required": [
                    "externalSyncTokens"
                ]
            },
            "v1ListFamiliesResponse": {
                "type": "object",
                "properties": {
                    "families": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ListFamily"
                        }
                    },
                    "nextPageToken": {
                        "type": "string",
                        "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages."
                    }
                },
                "required": [
                    "families",
                    "nextPageToken"
                ]
            },
            "v1ListFamily": {
                "type": "object",
                "properties": {
                    "family": {
                        "$ref": "#/components/schemas/v1Family"
                    },
                    "familyVersion": {
                        "$ref": "#/components/schemas/v1FamilyVersion"
                    }
                },
                "required": [
                    "family",
                    "familyVersion"
                ]
            },
            "v1ListFamilyAlignmentPointsResponse": {
                "type": "object",
                "properties": {
                    "familyAlignmentPoints": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1FamilyAlignmentPoint"
                        }
                    },
                    "nextPageToken": {
                        "type": "string",
                        "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages."
                    }
                },
                "required": [
                    "familyAlignmentPoints"
                ]
            },
            "v1ListFamilyAlignmentsResponse": {
                "type": "object",
                "properties": {
                    "familyAlignments": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1FamilyAlignment"
                        }
                    },
                    "nextPageToken": {
                        "type": "string",
                        "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages."
                    }
                },
                "required": [
                    "familyAlignments"
                ]
            },
            "v1ListFamilyCandidateRunsResponse": {
                "type": "object",
                "properties": {
                    "runs": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/runsv2Run"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "required": [
                    "runs"
                ]
            },
            "v1ListFamilyMembersResponse": {
                "type": "object",
                "properties": {
                    "familyRuns": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1FamilyRun"
                        }
                    },
                    "nextPageToken": {
                        "type": "string",
                        "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages."
                    }
                },
                "required": [
                    "familyRuns"
                ]
            },
            "v1ListFamilyVersionsResponse": {
                "type": "object",
                "properties": {
                    "familyVersions": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1FamilyVersion"
                        }
                    },
                    "nextPageToken": {
                        "type": "string",
                        "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages."
                    }
                },
                "required": [
                    "familyVersions"
                ]
            },
            "v1ListJobsResponse": {
                "type": "object",
                "properties": {
                    "jobs": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1Job"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                }
            },
            "v1ListMetadataKeysResponse": {
                "type": "object",
                "properties": {
                    "metadataKeys": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataKey"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "The response of a call to `MetadataService_ListMetadataKeysResponse`."
            },
            "v1ListMetadataUsageResponse": {
                "type": "object",
                "properties": {
                    "metadataUsages": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataUsage"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                }
            },
            "v1ListMetadataValuesResponse": {
                "type": "object",
                "properties": {
                    "metadataValues": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                }
            },
            "v1ListNotificationsResponse": {
                "type": "object",
                "properties": {
                    "notifications": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1Notification"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "The response of a call to `NotificationService_ListNotifications`."
            },
            "v1ListPanelConfigurationsResponse": {
                "type": "object",
                "properties": {
                    "panelConfigurations": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1PanelConfiguration"
                        }
                    },
                    "nextPageToken": {
                        "type": "string",
                        "description": "A token, which can be sent as `page_token` to retrieve the next page.\nIf this field is omitted, there are no subsequent pages."
                    }
                }
            },
            "v1ListPoliciesResponse": {
                "type": "object",
                "properties": {
                    "policies": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1Policy"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "The result of a call to `PolicyService_ListPolicies`."
            },
            "v1ListPrincipalAttributeEnumValuesResponse": {
                "type": "object",
                "properties": {
                    "principalAttributeEnumValues": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1PrincipalAttributeEnumValue"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                }
            },
            "v1ListPrincipalAttributeKeyValuesResponse": {
                "type": "object",
                "properties": {
                    "principalAttributeValues": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1PrincipalAttributeValue"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "ListPrincipalAttributeKeyValuesResponse returns the list of principal attribute values from a ListPrincipalAttributeKeyValues call.",
                "required": [
                    "principalAttributeValues"
                ]
            },
            "v1ListPrincipalAttributeKeysResponse": {
                "type": "object",
                "properties": {
                    "principalAttributeKeys": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1PrincipalAttributeKey"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "ListPrincipalAttributeKeysResponse returns the list of principal attribute keys from a ListPrincipalAttributeKeys call.",
                "required": [
                    "principalAttributeKeys"
                ]
            },
            "v1ListPrincipalAttributeValuesResponse": {
                "type": "object",
                "properties": {
                    "principalAttributeValues": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1PrincipalAttributeValue"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "ListPrincipalAttributeValuesResponse returns the list of principal attribute values from a ListPrincipalAttributeValues call.",
                "required": [
                    "principalAttributeValues"
                ]
            },
            "v1ListRemoteFilesResponse": {
                "type": "object",
                "properties": {
                    "remoteFiles": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1RemoteFile"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "The response of a call to `RemoteFileService_ListRemoteFilesResponse`."
            },
            "v1ListReportMetadataValuesResponse": {
                "type": "object",
                "properties": {
                    "metadataValues": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "The response of a call to `ReportService_ListReportMetadataValues`."
            },
            "v1ListReportRuleSummariesResponse": {
                "type": "object",
                "properties": {
                    "reportRuleSummaries": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ReportRuleSummary"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "The response of a call to `ReportService_ListReportRuleSummaries`."
            },
            "v1ListReportTemplatesResponse": {
                "type": "object",
                "properties": {
                    "reportTemplates": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ReportTemplate"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "The response of a call to `ReportTemplateService_ListReportTemplatesResponse`."
            },
            "v1ListReportsResponse": {
                "type": "object",
                "properties": {
                    "reports": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1Report"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "The response of a call to `ReportService_ListReportsResponse`."
            },
            "v1ListReportsWithCumulativeSummaryResponse": {
                "type": "object",
                "properties": {
                    "reports": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ReportWithCumulativeSummary"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "The response of a call to `ReportService_ListReportsWithCumulativeSummaryResponse`."
            },
            "v1ListResourceAttributeEnumValuesResponse": {
                "type": "object",
                "properties": {
                    "resourceAttributeEnumValues": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ResourceAttributeEnumValue"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                }
            },
            "v1ListResourceAttributeKeysResponse": {
                "type": "object",
                "properties": {
                    "resourceAttributeKeys": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ResourceAttributeKey"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                }
            },
            "v1ListResourceAttributesByEntityResponse": {
                "type": "object",
                "properties": {
                    "resourceAttributes": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ResourceAttribute"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                }
            },
            "v1ListResourceAttributesResponse": {
                "type": "object",
                "properties": {
                    "resourceAttributes": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ResourceAttribute"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                }
            },
            "v1ListRuleVersionsResponse": {
                "type": "object",
                "properties": {
                    "ruleVersions": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1RuleVersion"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "required": [
                    "ruleVersions"
                ]
            },
            "v1ListRulesResponse": {
                "type": "object",
                "properties": {
                    "rules": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1Rule"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "required": [
                    "rules"
                ]
            },
            "v1ListSavedSearchesResponse": {
                "type": "object",
                "properties": {
                    "savedSearches": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1SavedSearch"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "The response of a call to `SavedSearchService_ListSavedSearchesResponse`."
            },
            "v1ListTestMeasurementsResponse": {
                "type": "object",
                "properties": {
                    "testMeasurements": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1TestMeasurement"
                        },
                        "title": "The list of test measurements"
                    },
                    "nextPageToken": {
                        "type": "string",
                        "title": "The next page token for pagination"
                    }
                },
                "title": "Response message for ListTestMeasurements"
            },
            "v1ListTestReportsResponse": {
                "type": "object",
                "properties": {
                    "testReports": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1TestReport"
                        },
                        "title": "The list of test reports"
                    },
                    "nextPageToken": {
                        "type": "string",
                        "title": "The next page token for pagination"
                    }
                },
                "title": "Response message for ListTestReports"
            },
            "v1ListTestStepsResponse": {
                "type": "object",
                "properties": {
                    "testSteps": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1TestStep"
                        },
                        "title": "The list of test steps"
                    },
                    "nextPageToken": {
                        "type": "string",
                        "title": "The next page token for pagination"
                    }
                },
                "title": "Response message for ListTestSteps"
            },
            "v1ListUserDefinedFunctionVersionsResponse": {
                "type": "object",
                "properties": {
                    "userDefinedFunctions": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1UserDefinedFunction"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "The response of a call to `UserDefinedFunctionService_ListUserDefinedFunctionVersions`.",
                "required": [
                    "userDefinedFunctions"
                ]
            },
            "v1ListUserDefinedFunctionsResponse": {
                "type": "object",
                "properties": {
                    "userDefinedFunctions": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1UserDefinedFunction"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "The response of a call to `UserDefinedFunctionService_ListUserDefinedFunctions`.",
                "required": [
                    "userDefinedFunctions"
                ]
            },
            "v1ListWebhookLogsResponse": {
                "type": "object",
                "properties": {
                    "logs": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1WebhookLog"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "The response of a call to `WebhookService_ListWebhookLogsResponse`.",
                "required": [
                    "logs",
                    "nextPageToken"
                ]
            },
            "v1ListWebhooksResponse": {
                "type": "object",
                "properties": {
                    "webhooks": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1Webhook"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "The response of a call to `WebhookService_ListWebhooks`.",
                "required": [
                    "webhooks",
                    "nextPageToken"
                ]
            },
            "v1MetadataKey": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "type": {
                        "$ref": "#/components/schemas/v1MetadataKeyType"
                    },
                    "archivedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "isArchived": {
                        "type": "boolean",
                        "description": "Whether the metadata key is archived. This is inferred from whether archived_date is set.\n\nThe filter field type this key maps to, so a client can build a CEL filter\n against it (`metadata[\"<name>\"]`) and resolve its operators and functions\n from FilterGrammarService. Derived from `type`."
                    }
                },
                "required": [
                    "name",
                    "type"
                ]
            },
            "v1MetadataKeyType": {
                "type": "string",
                "enum": [
                    "METADATA_KEY_TYPE_UNSPECIFIED",
                    "METADATA_KEY_TYPE_STRING",
                    "METADATA_KEY_TYPE_NUMBER",
                    "METADATA_KEY_TYPE_BOOLEAN",
                    "METADATA_KEY_TYPE_RELATION"
                ],
                "default": "METADATA_KEY_TYPE_UNSPECIFIED",
                "description": "Metadata key type.\n\n - METADATA_KEY_TYPE_STRING: string\n - METADATA_KEY_TYPE_NUMBER: number\n - METADATA_KEY_TYPE_BOOLEAN: boolean\n - METADATA_KEY_TYPE_RELATION: relation \u2014 references another resource by UUID (e.g. folder membership)"
            },
            "v1MetadataRelationValue": {
                "type": "object",
                "properties": {
                    "resourceType": {
                        "type": "string"
                    },
                    "resourceId": {
                        "type": "string"
                    }
                },
                "required": [
                    "resourceType",
                    "resourceId"
                ]
            },
            "v1MetadataUsage": {
                "type": "object",
                "properties": {
                    "entityId": {
                        "type": "string",
                        "description": "The ID of the entity. For example assetId, runId, reportId, etc."
                    },
                    "entityType": {
                        "type": "string",
                        "description": "The type of the entity. For example asset, run, report, etc."
                    },
                    "value": {
                        "$ref": "#/components/schemas/v1MetadataValue"
                    }
                },
                "required": [
                    "entityId",
                    "entityType",
                    "value"
                ]
            },
            "v1MetadataValue": {
                "type": "object",
                "properties": {
                    "key": {
                        "$ref": "#/components/schemas/v1MetadataKey"
                    },
                    "stringValue": {
                        "type": "string"
                    },
                    "numberValue": {
                        "type": "number",
                        "format": "double"
                    },
                    "booleanValue": {
                        "type": "boolean"
                    },
                    "relationValue": {
                        "$ref": "#/components/schemas/v1MetadataRelationValue"
                    },
                    "archivedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "isArchived": {
                        "type": "boolean",
                        "description": "Whether the metadata value is archived. This is inferred from whether archived_date is set."
                    }
                },
                "required": [
                    "key"
                ]
            },
            "v1NamedResources": {
                "type": "object",
                "properties": {
                    "ids": {
                        "$ref": "#/components/schemas/v1Ids"
                    },
                    "names": {
                        "$ref": "#/components/schemas/v1Names"
                    }
                }
            },
            "v1Names": {
                "type": "object",
                "properties": {
                    "names": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "required": [
                    "names"
                ]
            },
            "v1Notification": {
                "type": "object",
                "properties": {
                    "notificationId": {
                        "type": "string"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "createdByUserId": {
                        "type": "string"
                    },
                    "modifiedByUserId": {
                        "type": "string"
                    },
                    "organizationId": {
                        "type": "string"
                    },
                    "recipientUserId": {
                        "type": "string"
                    },
                    "isRead": {
                        "type": "boolean"
                    },
                    "fullLink": {
                        "type": "string"
                    },
                    "notificationType": {
                        "$ref": "#/components/schemas/v1NotificationKind"
                    },
                    "contents": {
                        "type": "string"
                    },
                    "entityId": {
                        "type": "string"
                    }
                }
            },
            "v1NotificationActionConfiguration": {
                "type": "object",
                "properties": {
                    "recipientUserIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "required": [
                    "recipientUserIds"
                ]
            },
            "v1NotificationKind": {
                "type": "string",
                "enum": [
                    "NOTIFICATION_KIND_UNSPECIFIED",
                    "NOTIFICATION_KIND_TEXT",
                    "NOTIFICATION_KIND_ANNOTATION_ASSIGNED",
                    "NOTIFICATION_KIND_MENTIONED_IN_ANNOTATION_COMMENT",
                    "NOTIFICATION_KIND_CONDITION_TRIGGERED",
                    "NOTIFICATION_KIND_ANNOTATION_STATE_CHANGED",
                    "NOTIFICATION_KIND_REPORT_READY",
                    "NOTIFICATION_KIND_DATA_EXPORT_READY",
                    "NOTIFICATION_KIND_MENTIONED_IN_COMMENT",
                    "NOTIFICATION_KIND_AUTOMATION_TRIGGER_DISPATCHED"
                ],
                "default": "NOTIFICATION_KIND_UNSPECIFIED"
            },
            "v1NumericBounds": {
                "type": "object",
                "properties": {
                    "min": {
                        "type": "number",
                        "format": "double"
                    },
                    "max": {
                        "type": "number",
                        "format": "double"
                    }
                }
            },
            "v1Organization": {
                "type": "object",
                "properties": {
                    "organizationId": {
                        "type": "string"
                    },
                    "organizationName": {
                        "type": "string"
                    },
                    "isAbacEnabled": {
                        "type": "boolean"
                    }
                },
                "required": [
                    "organizationId",
                    "organizationName"
                ]
            },
            "v1PanelConfiguration": {
                "type": "object",
                "properties": {
                    "panelConfigurationId": {
                        "type": "string"
                    },
                    "versionId": {
                        "type": "string"
                    },
                    "version": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "changeMessage": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "channelConfigurations": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ChannelConfigurations"
                        }
                    },
                    "chartSettings": {
                        "type": "object"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "archivedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "createdByUserId": {
                        "type": "string"
                    },
                    "modifiedByUserId": {
                        "type": "string"
                    },
                    "isArchived": {
                        "type": "boolean"
                    },
                    "metadata": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        }
                    },
                    "folderIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "Ids of the folders this panel configuration belongs to."
                    }
                }
            },
            "v1PingResponse": {
                "type": "object",
                "properties": {
                    "response": {
                        "type": "string",
                        "readOnly": true
                    }
                }
            },
            "v1PlottedChannelType": {
                "type": "string",
                "enum": [
                    "PLOTTED_CHANNEL_TYPE_UNSPECIFIED",
                    "PLOTTED_CHANNEL_TYPE_REGULAR",
                    "PLOTTED_CHANNEL_TYPE_CALCULATED_CHANNEL",
                    "PLOTTED_CHANNEL_TYPE_BIT_FIELD_ELEMENT",
                    "PLOTTED_CHANNEL_TYPE_ENUM"
                ],
                "default": "PLOTTED_CHANNEL_TYPE_UNSPECIFIED"
            },
            "v1Policy": {
                "type": "object",
                "properties": {
                    "policyId": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "organizationId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "createdByUserId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "modifiedByUserId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "configuration": {
                        "$ref": "#/components/schemas/v1PolicyConfiguration"
                    },
                    "policyVersionId": {
                        "type": "string",
                        "title": "Reference to the current policy version ID",
                        "readOnly": true
                    },
                    "archivedDate": {
                        "type": "string",
                        "format": "date-time",
                        "description": "The date the policy was archived.",
                        "readOnly": true
                    },
                    "isArchived": {
                        "type": "boolean"
                    },
                    "version": {
                        "type": "integer",
                        "format": "int32",
                        "title": "Optional version number for this policy",
                        "readOnly": true
                    },
                    "versionNotes": {
                        "type": "string",
                        "title": "Optional notes for this version"
                    },
                    "generatedChangeMessage": {
                        "type": "string",
                        "title": "Auto-generated change message for this version",
                        "readOnly": true
                    }
                },
                "required": [
                    "policyId",
                    "name",
                    "organizationId",
                    "createdByUserId",
                    "modifiedByUserId",
                    "createdDate",
                    "modifiedDate",
                    "configuration",
                    "policyVersionId",
                    "isArchived"
                ]
            },
            "v1PolicyConfiguration": {
                "type": "object",
                "properties": {
                    "cedarPolicy": {
                        "type": "string"
                    }
                },
                "title": "PolicyConfiguration represents the configuration and rules for a policy.\nExpects a string containing a policy in the Cedar format\nhttps://docs.cedarpolicy.com/policies/syntax-policy.html"
            },
            "v1PrincipalAttributeEnumValue": {
                "type": "object",
                "properties": {
                    "principalAttributeEnumValueId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "principalAttributeKeyId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "displayName": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "createdByUserId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "modifiedByUserId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "archivedDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "isArchived": {
                        "type": "boolean",
                        "description": "Whether or not the principal attribute enum value is archived. This is inferred from whether archived_date is set.",
                        "readOnly": true
                    }
                },
                "description": "Represents a possible enumerable value for ENUM type principal attribute keys.\nUsers can add new enum values as needed.",
                "required": [
                    "principalAttributeEnumValueId",
                    "principalAttributeKeyId",
                    "displayName",
                    "createdDate",
                    "createdByUserId",
                    "modifiedDate",
                    "modifiedByUserId"
                ]
            },
            "v1PrincipalAttributeEnumValueIdList": {
                "type": "object",
                "properties": {
                    "ids": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "v1PrincipalAttributeKey": {
                "type": "object",
                "properties": {
                    "principalAttributeKeyId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "organizationId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "displayName": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "type": {
                        "$ref": "#/components/schemas/v1PrincipalAttributeValueType"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "createdByUserId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "modifiedByUserId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "archivedDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "isArchived": {
                        "type": "boolean",
                        "description": "Whether or not the principal attribute key is archived. This is inferred from whether archived_date is set.",
                        "readOnly": true
                    }
                },
                "required": [
                    "principalAttributeKeyId",
                    "organizationId",
                    "displayName",
                    "type",
                    "createdDate",
                    "createdByUserId",
                    "modifiedDate",
                    "modifiedByUserId"
                ]
            },
            "v1PrincipalAttributePrincipalType": {
                "type": "string",
                "enum": [
                    "PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_UNSPECIFIED",
                    "PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_USER",
                    "PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_USER_GROUP",
                    "PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_SERVICE_ACCOUNT"
                ],
                "default": "PRINCIPAL_ATTRIBUTE_PRINCIPAL_TYPE_UNSPECIFIED",
                "description": "PrincipalAttributePrincipalType enumerates the supported principal types for principal attribute values."
            },
            "v1PrincipalAttributeValue": {
                "type": "object",
                "properties": {
                    "principalAttributeValueId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "principalAttributeKeyId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "principalId": {
                        "type": "string",
                        "description": "The ID of the user or user group this value is assigned to.",
                        "readOnly": true
                    },
                    "principalType": {
                        "$ref": "#/components/schemas/v1PrincipalAttributePrincipalType"
                    },
                    "organizationId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "principalAttributeEnumValueId": {
                        "type": "string"
                    },
                    "numberValue": {
                        "type": "string",
                        "format": "int64"
                    },
                    "booleanValue": {
                        "type": "boolean"
                    },
                    "createdByUserId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "archivedDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "isArchived": {
                        "type": "boolean",
                        "description": "Whether or not the principal attribute value is archived. This is inferred from whether archived_date is set.",
                        "readOnly": true
                    },
                    "key": {
                        "$ref": "#/components/schemas/v1PrincipalAttributeKey"
                    },
                    "enumValueDetails": {
                        "$ref": "#/components/schemas/v1PrincipalAttributeEnumValue"
                    }
                },
                "required": [
                    "principalAttributeValueId",
                    "principalAttributeKeyId",
                    "principalId",
                    "principalType",
                    "organizationId",
                    "createdByUserId",
                    "createdDate",
                    "key"
                ]
            },
            "v1PrincipalAttributeValueType": {
                "type": "string",
                "enum": [
                    "PRINCIPAL_ATTRIBUTE_VALUE_TYPE_UNSPECIFIED",
                    "PRINCIPAL_ATTRIBUTE_VALUE_TYPE_ENUM",
                    "PRINCIPAL_ATTRIBUTE_VALUE_TYPE_BOOLEAN",
                    "PRINCIPAL_ATTRIBUTE_VALUE_TYPE_NUMBER",
                    "PRINCIPAL_ATTRIBUTE_VALUE_TYPE_SET_OF_ENUM"
                ],
                "default": "PRINCIPAL_ATTRIBUTE_VALUE_TYPE_UNSPECIFIED",
                "description": "PrincipalAttributeValueType enumerates the supported value types for a principal attribute key."
            },
            "v1PromoteArtifactVersionResponse": {
                "type": "object",
                "properties": {
                    "artifact": {
                        "$ref": "#/components/schemas/v1ArtifactDetails"
                    }
                }
            },
            "v1ReadDocResponse": {
                "type": "object",
                "properties": {
                    "path": {
                        "type": "string",
                        "readOnly": true
                    },
                    "title": {
                        "type": "string",
                        "readOnly": true
                    },
                    "totalLines": {
                        "type": "integer",
                        "format": "int32",
                        "description": "Total line count of the page (independent of offset/limit).",
                        "readOnly": true
                    },
                    "startLine": {
                        "type": "integer",
                        "format": "int32",
                        "description": "1-indexed line number of the first returned line.",
                        "readOnly": true
                    },
                    "content": {
                        "type": "string",
                        "description": "Page markdown. Each line is prefixed with \"{line_number}\\t\" so follow-up\nreads can target specific ranges. MDX/JSX tags are stripped; fenced code\nblocks are preserved.",
                        "readOnly": true
                    }
                }
            },
            "v1RemoteFile": {
                "type": "object",
                "properties": {
                    "remoteFileId": {
                        "type": "string"
                    },
                    "organizationId": {
                        "type": "string"
                    },
                    "entityId": {
                        "type": "string"
                    },
                    "entityType": {
                        "$ref": "#/components/schemas/v1EntityType"
                    },
                    "fileName": {
                        "type": "string"
                    },
                    "fileMimeType": {
                        "type": "string"
                    },
                    "fileContentEncoding": {
                        "type": "string"
                    },
                    "storageKey": {
                        "type": "string"
                    },
                    "fileSize": {
                        "type": "string",
                        "format": "uint64"
                    },
                    "description": {
                        "type": "string"
                    },
                    "videoMetadata": {
                        "$ref": "#/components/schemas/v1VideoMetadata"
                    },
                    "imageMetadata": {
                        "$ref": "#/components/schemas/v1ImageMetadata"
                    },
                    "audioMetadata": {
                        "$ref": "#/components/schemas/v1AudioMetadata"
                    },
                    "createdByUserId": {
                        "type": "string"
                    },
                    "modifiedByUserId": {
                        "type": "string"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "metadataValues": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        }
                    },
                    "remoteFileType": {
                        "$ref": "#/components/schemas/v1RemoteFileType"
                    }
                },
                "required": [
                    "remoteFileId",
                    "organizationId",
                    "entityId",
                    "entityType",
                    "fileName",
                    "fileMimeType",
                    "fileContentEncoding",
                    "storageKey",
                    "fileSize",
                    "createdByUserId",
                    "modifiedByUserId",
                    "createdDate",
                    "modifiedDate",
                    "remoteFileType"
                ]
            },
            "v1RemoteFileType": {
                "type": "string",
                "enum": [
                    "REMOTE_FILE_TYPE_UNSPECIFIED",
                    "REMOTE_FILE_TYPE_TELEMETRY",
                    "REMOTE_FILE_TYPE_IMAGE",
                    "REMOTE_FILE_TYPE_VIDEO",
                    "REMOTE_FILE_TYPE_AUDIO",
                    "REMOTE_FILE_TYPE_TEST_REPORT"
                ],
                "default": "REMOTE_FILE_TYPE_UNSPECIFIED",
                "description": " - REMOTE_FILE_TYPE_TELEMETRY: Data import / telemetry (internal: created by import job)."
            },
            "v1Report": {
                "type": "object",
                "properties": {
                    "reportId": {
                        "type": "string"
                    },
                    "reportTemplateId": {
                        "type": "string"
                    },
                    "runId": {
                        "type": "string",
                        "description": "Populated for RULE_EVALUATION reports (which are tied to a run).\nEmpty string for CANVAS reports. Kept REQUIRED (rather than a wrapped\noptional) to mirror ReportWithCumulativeSummary and avoid rippling\noptionality through existing rule-report clients."
                    },
                    "organizationId": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "createdByUserId": {
                        "type": "string"
                    },
                    "modifiedByUserId": {
                        "type": "string"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "summaries": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ReportRuleSummary"
                        },
                        "description": "One entry per rule line on this report. Sort by `display_order` ascending for the canonical evaluation / display sequence\n(clients may still group by status for UI). `display_order` is set when the report is created from a template or from rules."
                    },
                    "tags": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ReportTag"
                        }
                    },
                    "rerunFromReportId": {
                        "type": "string"
                    },
                    "jobId": {
                        "type": "string"
                    },
                    "archivedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "metadata": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        }
                    },
                    "isArchived": {
                        "type": "boolean"
                    },
                    "reportType": {
                        "$ref": "#/components/schemas/v1ReportType"
                    },
                    "canvasExecutionId": {
                        "type": "string",
                        "description": "For CANVAS reports, the id of the published canvas_execution this report row\nis linked to (read-through from canvas_executions.canvas_execution_id). Empty\nfor RULE_EVALUATION reports. Used by clients to route to the canvas detail page."
                    },
                    "canvasStatus": {
                        "$ref": "#/components/schemas/v1CanvasCellExecutionStatus"
                    },
                    "canvasVersionId": {
                        "type": "string",
                        "description": "For CANVAS reports, the id of the canvas_version the linked execution was run\nfrom (read-through from canvas_executions.canvas_version_id). Empty for\nRULE_EVALUATION reports. Used by clients to route to the canvas source and to\nre-run the report from the same version."
                    },
                    "canvasId": {
                        "type": "string",
                        "description": "For CANVAS reports, the id of the canvas the linked execution was published\nfrom (resolved through canvas_versions.canvas_id). Empty for RULE_EVALUATION\nreports, whose equivalent grouping is `report_template_id`. Also the value\nmatched by the `canvas_id` list filter. Resolve the canvas's display name by\nlisting canvases filtered on the ids collected from a page of reports."
                    },
                    "isAutomated": {
                        "type": "boolean",
                        "description": "For CANVAS reports, whether the linked execution was produced by an automation\ntrigger (read-through from canvas_executions.automation_trigger_id being set).\nUnset for RULE_EVALUATION reports. Display only; there is no matching list filter."
                    }
                },
                "required": [
                    "reportId",
                    "runId",
                    "organizationId",
                    "name",
                    "createdByUserId",
                    "modifiedByUserId",
                    "createdDate",
                    "modifiedDate",
                    "summaries",
                    "tags",
                    "metadata",
                    "reportType"
                ]
            },
            "v1ReportCumulativeRuleSummary": {
                "type": "object",
                "properties": {
                    "numAnnotationsOpen": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Total number of open (unresolved) annotations across all rules."
                    },
                    "numAnnotationsFailed": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Total number of failed (flagged) annotations across all rules."
                    },
                    "numAnnotationsPassed": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Total number of passed (resolved) annotations across all rules."
                    },
                    "numAnnotationsTotal": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Total number of annotations across all rules (open + failed + passed)."
                    },
                    "numRulesCreated": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Number of rule versions in CREATED status."
                    },
                    "numRulesLive": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Number of rule versions currently running (LIVE status)."
                    },
                    "numRulesFinished": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Number of rule versions that finished successfully."
                    },
                    "numRulesFailed": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Number of rule versions that failed during execution."
                    },
                    "numRulesCanceled": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Number of rule versions that were canceled."
                    },
                    "numRulesError": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Number of rule versions that encountered an error."
                    },
                    "numRulesTotal": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Total number of rule versions across all statuses."
                    },
                    "numOfRulesWithoutAnnotations": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Number of finished rule versions that produced no annotations."
                    }
                },
                "description": "Aggregated annotation and rule-status counts across all rules in a report.\nAnnotation counts (num_annotations_*) reflect the total number\nof annotations in each state summed over every rule version in the report.\nRule counts (num_rules_*) reflect how many rule versions are in each\nexecution status.",
                "required": [
                    "numAnnotationsOpen",
                    "numAnnotationsFailed",
                    "numAnnotationsPassed",
                    "numAnnotationsTotal",
                    "numRulesCreated",
                    "numRulesLive",
                    "numRulesFinished",
                    "numRulesFailed",
                    "numRulesCanceled",
                    "numRulesError",
                    "numRulesTotal",
                    "numOfRulesWithoutAnnotations"
                ]
            },
            "v1ReportRuleStatus": {
                "type": "string",
                "enum": [
                    "REPORT_RULE_STATUS_UNSPECIFIED",
                    "REPORT_RULE_STATUS_CREATED",
                    "REPORT_RULE_STATUS_LIVE",
                    "REPORT_RULE_STATUS_FINISHED",
                    "REPORT_RULE_STATUS_FAILED",
                    "REPORT_RULE_STATUS_CANCELED",
                    "REPORT_RULE_STATUS_ERROR"
                ],
                "default": "REPORT_RULE_STATUS_UNSPECIFIED"
            },
            "v1ReportRuleStatusDetails": {
                "type": "object",
                "properties": {
                    "created": {
                        "$ref": "#/components/schemas/v1ReportRuleStatusDetailsCreated"
                    },
                    "live": {
                        "$ref": "#/components/schemas/v1ReportRuleStatusDetailsLive"
                    },
                    "finished": {
                        "$ref": "#/components/schemas/v1ReportRuleStatusDetailsFinished"
                    },
                    "failed": {
                        "$ref": "#/components/schemas/v1ReportRuleStatusDetailsFailed"
                    },
                    "canceled": {
                        "$ref": "#/components/schemas/v1ReportRuleStatusDetailsCanceled"
                    },
                    "error": {
                        "$ref": "#/components/schemas/v1ReportRuleStatusDetailsError"
                    }
                }
            },
            "v1ReportRuleStatusDetailsCanceled": {
                "type": "object"
            },
            "v1ReportRuleStatusDetailsCreated": {
                "type": "object"
            },
            "v1ReportRuleStatusDetailsError": {
                "type": "object",
                "properties": {
                    "errorMessage": {
                        "type": "string"
                    },
                    "exitCode": {
                        "type": "integer",
                        "format": "int32"
                    },
                    "stdout": {
                        "type": "string"
                    },
                    "stderr": {
                        "type": "string"
                    }
                },
                "required": [
                    "errorMessage"
                ]
            },
            "v1ReportRuleStatusDetailsFailed": {
                "type": "object",
                "properties": {
                    "errorMessage": {
                        "type": "string"
                    },
                    "exitCode": {
                        "type": "integer",
                        "format": "int32"
                    },
                    "stdout": {
                        "type": "string"
                    },
                    "stderr": {
                        "type": "string"
                    }
                },
                "required": [
                    "errorMessage"
                ]
            },
            "v1ReportRuleStatusDetailsFinished": {
                "type": "object",
                "properties": {
                    "stdout": {
                        "type": "string"
                    },
                    "stderr": {
                        "type": "string"
                    }
                }
            },
            "v1ReportRuleStatusDetailsLive": {
                "type": "object"
            },
            "v1ReportRuleSummary": {
                "type": "object",
                "properties": {
                    "ruleId": {
                        "type": "string"
                    },
                    "ruleClientKey": {
                        "type": "string"
                    },
                    "ruleVersionId": {
                        "type": "string"
                    },
                    "ruleVersionNumber": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "reportRuleVersionId": {
                        "type": "string"
                    },
                    "numOpen": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "numFailed": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "numPassed": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "status": {
                        "$ref": "#/components/schemas/v1ReportRuleStatus"
                    },
                    "statusDetails": {
                        "$ref": "#/components/schemas/v1ReportRuleStatusDetails"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "assetId": {
                        "type": "string"
                    },
                    "deletedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "resolvedFamilyStats": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ResolvedFamilyStat"
                        }
                    },
                    "resolvedAlignmentConfigs": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ResolvedAlignmentEntry"
                        }
                    },
                    "displayOrder": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Zero-based position of this rule line on the report. Copied from the report template rule's `display_order`, or from the\nposition of `rule_id` in `CreateReportRequestRuleIds.rule_ids` when creating from explicit rule IDs. Lower values run first."
                    },
                    "exploreFullLink": {
                        "type": "string",
                        "description": "Remapped Explore full_link for this rule's run. Set when the rule version has a\nlinked saved exploration template. Used by the \"View in Saved Exploration\" redirect.",
                        "readOnly": true
                    }
                },
                "required": [
                    "ruleId",
                    "ruleVersionId",
                    "ruleVersionNumber",
                    "reportRuleVersionId",
                    "numOpen",
                    "numFailed",
                    "numPassed",
                    "status",
                    "statusDetails",
                    "createdDate",
                    "modifiedDate",
                    "assetId",
                    "displayOrder"
                ]
            },
            "v1ReportTag": {
                "type": "object",
                "properties": {
                    "tagName": {
                        "type": "string"
                    }
                },
                "required": [
                    "tagName"
                ]
            },
            "v1ReportTemplate": {
                "type": "object",
                "properties": {
                    "reportTemplateId": {
                        "type": "string"
                    },
                    "organizationId": {
                        "type": "string"
                    },
                    "clientKey": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "archivedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "createdByUserId": {
                        "type": "string"
                    },
                    "modifiedByUserId": {
                        "type": "string"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "rules": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ReportTemplateRule"
                        },
                        "description": "Rules on this template. On responses, sort by each rule's `display_order` ascending for execution order. On writes, if\n`display_order` is omitted on a rule, that rule's position follows the slice order of `rules` (same as explicit orders 0..n-1)."
                    },
                    "tags": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ReportTemplateTag"
                        }
                    },
                    "metadata": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        }
                    },
                    "isArchived": {
                        "type": "boolean",
                        "description": "Whether the report template is archived. This is inferred from whether archived_date is set."
                    }
                },
                "required": [
                    "reportTemplateId",
                    "organizationId",
                    "name",
                    "createdByUserId",
                    "modifiedByUserId",
                    "createdDate",
                    "modifiedDate",
                    "rules",
                    "tags",
                    "metadata",
                    "isArchived"
                ]
            },
            "v1ReportTemplateRule": {
                "type": "object",
                "properties": {
                    "ruleId": {
                        "type": "string"
                    },
                    "ruleVersionId": {
                        "type": "string"
                    },
                    "ruleVersionNumber": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "clientKey": {
                        "type": "string"
                    },
                    "displayOrder": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Zero-based order for this rule on the template. Copied to `ReportRuleSummary.display_order` when creating a report from\nthe template. Lower values indicate earlier position in the template and on generated reports.\n\nOptional on writes (e.g. `UpdateReportTemplate`): if omitted, servers use the order of entries in `ReportTemplate.rules`\n(first entry is earliest). On reads, this field is always populated."
                    }
                },
                "required": [
                    "ruleId",
                    "ruleVersionId",
                    "ruleVersionNumber"
                ]
            },
            "v1ReportTemplateTag": {
                "type": "object",
                "properties": {
                    "tagName": {
                        "type": "string"
                    }
                },
                "required": [
                    "tagName"
                ]
            },
            "v1ReportType": {
                "type": "string",
                "enum": [
                    "REPORT_TYPE_UNSPECIFIED",
                    "REPORT_TYPE_RULE_EVALUATION",
                    "REPORT_TYPE_CANVAS"
                ],
                "default": "REPORT_TYPE_UNSPECIFIED",
                "description": "ReportType discriminates the two kinds of report rows that share the unified\n`reports` surface. Rule-evaluation reports are tied to a run; canvas\nreports are tied to a published canvas_execution."
            },
            "v1ReportWithCumulativeSummary": {
                "type": "object",
                "properties": {
                    "reportId": {
                        "type": "string",
                        "description": "The unique identifier of the report."
                    },
                    "reportTemplateId": {
                        "type": "string",
                        "description": "The identifier of the report template this report was created from, if any."
                    },
                    "runId": {
                        "type": "string",
                        "description": "The identifier of the run associated with this report."
                    },
                    "organizationId": {
                        "type": "string",
                        "description": "The organization this report belongs to."
                    },
                    "name": {
                        "type": "string",
                        "description": "The display name of the report."
                    },
                    "description": {
                        "type": "string",
                        "description": "An optional description of the report."
                    },
                    "createdByUserId": {
                        "type": "string",
                        "description": "The identifier of the user who created the report."
                    },
                    "modifiedByUserId": {
                        "type": "string",
                        "description": "The identifier of the user who last modified the report."
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time",
                        "description": "When the report was created."
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time",
                        "description": "When the report was last modified."
                    },
                    "cumulativeSummary": {
                        "$ref": "#/components/schemas/v1ReportCumulativeRuleSummary"
                    },
                    "tags": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1ReportTag"
                        },
                        "description": "Tags associated with this report."
                    },
                    "rerunFromReportId": {
                        "type": "string",
                        "description": "The identifier of the report this report was rerun from, if any."
                    },
                    "jobId": {
                        "type": "string",
                        "description": "The identifier of the job that produced this report, if any."
                    },
                    "archivedDate": {
                        "type": "string",
                        "format": "date-time",
                        "description": "When the report was archived, if it has been archived."
                    },
                    "isArchived": {
                        "type": "boolean",
                        "description": "Whether the report has been archived."
                    },
                    "reportType": {
                        "$ref": "#/components/schemas/v1ReportType"
                    },
                    "canvasExecutionId": {
                        "type": "string",
                        "description": "For CANVAS reports, the id of the published canvas_execution this report row\nis linked to (read-through from canvas_executions.canvas_execution_id). Empty\nfor RULE_EVALUATION reports. Used by clients to route to the canvas detail page."
                    },
                    "canvasStatus": {
                        "$ref": "#/components/schemas/v1CanvasCellExecutionStatus"
                    },
                    "canvasVersionId": {
                        "type": "string",
                        "description": "For CANVAS reports, the id of the canvas_version the linked execution was run\nfrom (read-through from canvas_executions.canvas_version_id). Empty for\nRULE_EVALUATION reports. Used by clients to route to the canvas source and to\nre-run the report from the same version."
                    },
                    "canvasId": {
                        "type": "string",
                        "description": "For CANVAS reports, the id of the canvas the linked execution was published\nfrom (resolved through canvas_versions.canvas_id). Empty for RULE_EVALUATION\nreports, whose equivalent grouping is `report_template_id`. Also the value\nmatched by the `canvas_id` list filter. Resolve the canvas's display name by\nlisting canvases filtered on the ids collected from a page of reports."
                    },
                    "isAutomated": {
                        "type": "boolean",
                        "description": "For CANVAS reports, whether the linked execution was produced by an automation\ntrigger (read-through from canvas_executions.automation_trigger_id being set).\nUnset for RULE_EVALUATION reports. Display only; there is no matching list filter."
                    }
                },
                "description": "ReportWithCumulativeSummary is a projection of `Report` that replaces the per-rule `summaries`\nlist with a single `cumulative_summary` aggregated across all rules. It is returned by\n`ListReportsWithCumulativeSummary` to keep response sizes manageable when listing many reports.",
                "required": [
                    "reportId",
                    "runId",
                    "organizationId",
                    "name",
                    "createdByUserId",
                    "modifiedByUserId",
                    "createdDate",
                    "modifiedDate",
                    "cumulativeSummary",
                    "tags",
                    "reportType"
                ]
            },
            "v1RerunReportResponse": {
                "type": "object",
                "properties": {
                    "jobId": {
                        "type": "string"
                    },
                    "reportId": {
                        "type": "string"
                    }
                },
                "required": [
                    "jobId",
                    "reportId"
                ]
            },
            "v1ResolvedAlignmentEntry": {
                "type": "object",
                "properties": {
                    "channelReferences": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "t0": {
                        "$ref": "#/components/schemas/v1ResolvedAlignmentPoint"
                    },
                    "startTime": {
                        "$ref": "#/components/schemas/v1ResolvedAlignmentPoint"
                    },
                    "endTime": {
                        "$ref": "#/components/schemas/v1ResolvedAlignmentPoint"
                    }
                }
            },
            "v1ResolvedAlignmentPoint": {
                "type": "object",
                "properties": {
                    "timestamp": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "run": {
                        "$ref": "#/components/schemas/v1RunAlignment"
                    },
                    "annotation": {
                        "$ref": "#/components/schemas/v1AnnotationAlignment"
                    },
                    "timestampConfig": {
                        "$ref": "#/components/schemas/v1TimestampAlignment"
                    }
                }
            },
            "v1ResolvedFamilyStat": {
                "type": "object",
                "properties": {
                    "reference": {
                        "type": "string"
                    },
                    "familyId": {
                        "type": "string"
                    },
                    "familyVersionId": {
                        "type": "string"
                    },
                    "familyStatExpressionId": {
                        "type": "string"
                    },
                    "familyStatRangeId": {
                        "type": "string"
                    }
                },
                "required": [
                    "reference",
                    "familyId",
                    "familyVersionId",
                    "familyStatExpressionId",
                    "familyStatRangeId"
                ]
            },
            "v1ResourceAttribute": {
                "type": "object",
                "properties": {
                    "resourceAttributeId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "organizationId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "entity": {
                        "$ref": "#/components/schemas/v1ResourceAttributeEntityIdentifier"
                    },
                    "resourceAttributeKeyId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "key": {
                        "$ref": "#/components/schemas/v1ResourceAttributeKey"
                    },
                    "resourceAttributeEnumValueId": {
                        "type": "string"
                    },
                    "booleanValue": {
                        "type": "boolean"
                    },
                    "numberValue": {
                        "type": "string",
                        "format": "int64"
                    },
                    "enumValueDetails": {
                        "$ref": "#/components/schemas/v1ResourceAttributeEnumValue"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time",
                        "description": "The timestamp when the relation between the Entity and ResourceAttribute Key and Value was created.",
                        "readOnly": true
                    },
                    "createdByUserId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "archivedDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "isArchived": {
                        "type": "boolean",
                        "description": "Whether or not the resource attribute is archived. This is inferred from whether archived_date is set.",
                        "readOnly": true
                    }
                },
                "description": "Represents the assignment of a resource_attribute key-value pair to an entity (asset or channel).",
                "required": [
                    "resourceAttributeId",
                    "organizationId",
                    "entity",
                    "resourceAttributeKeyId",
                    "createdDate",
                    "createdByUserId"
                ]
            },
            "v1ResourceAttributeEntityIdentifier": {
                "type": "object",
                "properties": {
                    "entityId": {
                        "type": "string"
                    },
                    "entityType": {
                        "$ref": "#/components/schemas/v1ResourceAttributeEntityType"
                    }
                },
                "description": "Represents an entity to which a resource_attribute will be assigned.",
                "required": [
                    "entityId",
                    "entityType"
                ]
            },
            "v1ResourceAttributeEntityType": {
                "type": "string",
                "enum": [
                    "RESOURCE_ATTRIBUTE_ENTITY_TYPE_UNSPECIFIED",
                    "RESOURCE_ATTRIBUTE_ENTITY_TYPE_ASSET",
                    "RESOURCE_ATTRIBUTE_ENTITY_TYPE_CHANNEL",
                    "RESOURCE_ATTRIBUTE_ENTITY_TYPE_RUN"
                ],
                "default": "RESOURCE_ATTRIBUTE_ENTITY_TYPE_UNSPECIFIED"
            },
            "v1ResourceAttributeEnumValue": {
                "type": "object",
                "properties": {
                    "resourceAttributeEnumValueId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "resourceAttributeKeyId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "displayName": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "createdByUserId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "modifiedByUserId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "archivedDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "isArchived": {
                        "type": "boolean",
                        "description": "Whether or not the enum value is archived. This is inferred from whether archived_date is set.",
                        "readOnly": true
                    }
                },
                "description": "Represents a possible enumerable value for ENUM type resource_attribute keys.\nUsers can add new enum values as needed.",
                "required": [
                    "resourceAttributeEnumValueId",
                    "resourceAttributeKeyId",
                    "displayName",
                    "createdDate",
                    "createdByUserId",
                    "modifiedDate",
                    "modifiedByUserId"
                ]
            },
            "v1ResourceAttributeEnumValueIdList": {
                "type": "object",
                "properties": {
                    "ids": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "v1ResourceAttributeKey": {
                "type": "object",
                "properties": {
                    "resourceAttributeKeyId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "organizationId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "displayName": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "type": {
                        "$ref": "#/components/schemas/v1ResourceAttributeKeyType"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "createdByUserId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "modifiedByUserId": {
                        "type": "string",
                        "readOnly": true
                    },
                    "archivedDate": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "isArchived": {
                        "type": "boolean",
                        "description": "Whether or not the key is archived. This is inferred from whether archived_date is set.",
                        "readOnly": true
                    }
                },
                "description": "A ResourceAttribute Key defines an attribute that can be assigned to Entities for the purpose of attribute based access control (ABAC).",
                "required": [
                    "resourceAttributeKeyId",
                    "organizationId",
                    "displayName",
                    "type",
                    "createdDate",
                    "createdByUserId",
                    "modifiedDate",
                    "modifiedByUserId"
                ]
            },
            "v1ResourceAttributeKeyType": {
                "type": "string",
                "enum": [
                    "RESOURCE_ATTRIBUTE_KEY_TYPE_UNSPECIFIED",
                    "RESOURCE_ATTRIBUTE_KEY_TYPE_ENUM",
                    "RESOURCE_ATTRIBUTE_KEY_TYPE_BOOLEAN",
                    "RESOURCE_ATTRIBUTE_KEY_TYPE_NUMBER",
                    "RESOURCE_ATTRIBUTE_KEY_TYPE_SET_OF_ENUM"
                ],
                "default": "RESOURCE_ATTRIBUTE_KEY_TYPE_UNSPECIFIED",
                "description": "Values become selectable enumerable options."
            },
            "v1ResourceIdentifier": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "clientKey": {
                        "type": "string"
                    }
                }
            },
            "v1ResourceIdentifiers": {
                "type": "object",
                "properties": {
                    "ids": {
                        "$ref": "#/components/schemas/v1Ids"
                    },
                    "clientKeys": {
                        "$ref": "#/components/schemas/v1ClientKeys"
                    }
                }
            },
            "v1RetryJobResponse": {
                "type": "object",
                "properties": {
                    "job": {
                        "$ref": "#/components/schemas/v1Job"
                    }
                }
            },
            "v1RotateWebhookSignatureKeyRequest": {
                "type": "object",
                "description": "The request for a call to `WebhookService_RotateWebhookSignatureKey` replace the current webhook signature key\nwith a new one. The activation state of the new signature key will be inherited from the previous key. If no key\nexists then this will return an error - see `WebhookService_CreateWebhookSignatureKey`."
            },
            "v1RotateWebhookSignatureKeyResponse": {
                "type": "object",
                "properties": {
                    "signatureKey": {
                        "$ref": "#/components/schemas/v1WebhookSignatureKey"
                    }
                },
                "description": "The response for a call to `WebhookService_RotateWebhookSignatureKey`. The `active` field indicates whether\nor not whether the key is currently active.",
                "required": [
                    "signatureKey"
                ]
            },
            "v1Rule": {
                "type": "object",
                "properties": {
                    "ruleId": {
                        "type": "string"
                    },
                    "assetId": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "isEnabled": {
                        "type": "boolean"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "createdByUserId": {
                        "type": "string"
                    },
                    "modifiedByUserId": {
                        "type": "string"
                    },
                    "organizationId": {
                        "type": "string"
                    },
                    "conditions": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1RuleCondition"
                        }
                    },
                    "ruleVersion": {
                        "$ref": "#/components/schemas/v1RuleVersion"
                    },
                    "clientKey": {
                        "type": "string",
                        "description": "client_key is a client provided identifier for the rule. It is immutable after rule creation."
                    },
                    "assetConfiguration": {
                        "$ref": "#/components/schemas/v1RuleAssetConfiguration"
                    },
                    "contextualChannels": {
                        "$ref": "#/components/schemas/v1ContextualChannels"
                    },
                    "deletedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "isExternal": {
                        "type": "boolean"
                    },
                    "metadata": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        }
                    },
                    "archivedDate": {
                        "type": "string",
                        "format": "date-time",
                        "title": "archived_date indicates when the rule was archived"
                    },
                    "isArchived": {
                        "type": "boolean",
                        "title": "is_archived is inferred from when archived_date is not null"
                    },
                    "isLiveEvaluationEnabled": {
                        "type": "boolean",
                        "description": "If `true`, this rule will be evaluated on live data; if `false`, live rule evaluation is\ndisabled (the rule remains usable for report generation).\n\nNote: this value is the server's effective state, not necessarily what was requested. A rule\nsaved via `BatchUpdateRulesRequest.override_expression_validation = true` whose UDF inlining\nfails (e.g. type resolution exhausted; see error returned by `BatchUpdateRules`) is forced\nto `is_live_evaluation_enabled = false` even when the caller requested `true`. To recover\nafter the underlying issue is fixed (channels populated, expression simplified, etc.),\nreissue an `UpdateRule` / `BatchUpdateRules` request that explicitly sets\n`is_live_evaluation_enabled = true`."
                    },
                    "currentVersionId": {
                        "type": "string",
                        "description": "The current version of the rule. This is may be different from the rule_version.version if the rule has been updated since the rule_version was created."
                    },
                    "folderIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "Ids of the folders this rule belongs to."
                    }
                },
                "required": [
                    "ruleId",
                    "assetId",
                    "name",
                    "description",
                    "isEnabled",
                    "createdDate",
                    "modifiedDate",
                    "createdByUserId",
                    "modifiedByUserId",
                    "organizationId",
                    "conditions",
                    "ruleVersion",
                    "assetConfiguration",
                    "contextualChannels",
                    "isExternal",
                    "metadata",
                    "isArchived",
                    "currentVersionId"
                ]
            },
            "v1RuleAction": {
                "type": "object",
                "properties": {
                    "ruleActionId": {
                        "type": "string"
                    },
                    "ruleConditionId": {
                        "type": "string"
                    },
                    "actionType": {
                        "$ref": "#/components/schemas/v1ActionKind"
                    },
                    "configuration": {
                        "$ref": "#/components/schemas/v1RuleActionConfiguration"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "createdByUserId": {
                        "type": "string"
                    },
                    "modifiedByUserId": {
                        "type": "string"
                    },
                    "ruleActionVersionId": {
                        "type": "string"
                    }
                },
                "required": [
                    "ruleActionId",
                    "ruleConditionId",
                    "actionType",
                    "configuration",
                    "createdDate",
                    "modifiedDate",
                    "createdByUserId",
                    "modifiedByUserId",
                    "ruleActionVersionId"
                ]
            },
            "v1RuleActionConfiguration": {
                "type": "object",
                "properties": {
                    "notification": {
                        "$ref": "#/components/schemas/v1NotificationActionConfiguration"
                    },
                    "annotation": {
                        "$ref": "#/components/schemas/v1AnnotationActionConfiguration"
                    },
                    "webhook": {
                        "$ref": "#/components/schemas/v1WebhookActionConfiguration"
                    }
                }
            },
            "v1RuleAssetConfiguration": {
                "type": "object",
                "properties": {
                    "assetIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "tagIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "v1RuleCondition": {
                "type": "object",
                "properties": {
                    "ruleConditionId": {
                        "type": "string"
                    },
                    "ruleId": {
                        "type": "string"
                    },
                    "expression": {
                        "$ref": "#/components/schemas/v1RuleConditionExpression"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "createdByUserId": {
                        "type": "string"
                    },
                    "modifiedByUserId": {
                        "type": "string"
                    },
                    "actions": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1RuleAction"
                        }
                    },
                    "ruleConditionVersionId": {
                        "type": "string"
                    }
                },
                "required": [
                    "ruleConditionId",
                    "ruleId",
                    "expression",
                    "createdDate",
                    "modifiedDate",
                    "createdByUserId",
                    "modifiedByUserId",
                    "actions",
                    "ruleConditionVersionId"
                ]
            },
            "v1RuleConditionExpression": {
                "type": "object",
                "properties": {
                    "singleChannelComparison": {
                        "$ref": "#/components/schemas/v1SingleChannelComparisonExpression"
                    },
                    "calculatedChannel": {
                        "$ref": "#/components/schemas/siftrulesv1CalculatedChannelConfig"
                    }
                }
            },
            "v1RuleEvaluationJobDetails": {
                "type": "object",
                "properties": {
                    "reportId": {
                        "type": "string"
                    }
                },
                "required": [
                    "reportId"
                ]
            },
            "v1RuleEvaluationStatusDetails": {
                "type": "object"
            },
            "v1RuleVersion": {
                "type": "object",
                "properties": {
                    "ruleId": {
                        "type": "string"
                    },
                    "ruleVersionId": {
                        "type": "string"
                    },
                    "version": {
                        "type": "string"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "createdByUserId": {
                        "type": "string"
                    },
                    "versionNotes": {
                        "type": "string"
                    },
                    "generatedChangeMessage": {
                        "type": "string"
                    },
                    "deletedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "archivedDate": {
                        "type": "string",
                        "format": "date-time",
                        "title": "archived_date indicates when the rule version was archived"
                    },
                    "isArchived": {
                        "type": "boolean",
                        "title": "is_archived is inferred from when archived_date is not null"
                    },
                    "savedExplorationId": {
                        "type": "string",
                        "description": "ID of the saved exploration linked to this rule version, if any.",
                        "readOnly": true
                    }
                },
                "required": [
                    "ruleId",
                    "ruleVersionId",
                    "version",
                    "createdDate",
                    "createdByUserId",
                    "versionNotes",
                    "generatedChangeMessage",
                    "isArchived"
                ]
            },
            "v1RunAlignment": {
                "type": "object",
                "properties": {
                    "bound": {
                        "$ref": "#/components/schemas/v1TimeRangeBound"
                    }
                },
                "required": [
                    "bound"
                ]
            },
            "v1RunFamilyAlignmentConfig": {
                "type": "object",
                "properties": {
                    "familyAlignmentName": {
                        "type": "string"
                    },
                    "run": {
                        "$ref": "#/components/schemas/v1RunAlignment"
                    },
                    "annotation": {
                        "$ref": "#/components/schemas/v1AnnotationAlignment"
                    },
                    "timestamp": {
                        "$ref": "#/components/schemas/v1TimestampAlignment"
                    }
                },
                "required": [
                    "familyAlignmentName"
                ]
            },
            "v1RunTimeRange": {
                "type": "object",
                "properties": {
                    "run": {
                        "$ref": "#/components/schemas/v1ResourceIdentifier"
                    },
                    "startTime": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "endTime": {
                        "type": "string",
                        "format": "date-time"
                    }
                }
            },
            "v1RunsAndTimeRange": {
                "type": "object",
                "properties": {
                    "runIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "startTime": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "stopTime": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "required": [
                    "runIds"
                ]
            },
            "v1SavedSearch": {
                "type": "object",
                "properties": {
                    "savedSearchId": {
                        "type": "string"
                    },
                    "organizationId": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "properties": {
                        "$ref": "#/components/schemas/v1SavedSearchProperties"
                    },
                    "createdByUserId": {
                        "type": "string"
                    },
                    "modifiedByUserId": {
                        "type": "string"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "required": [
                    "savedSearchId",
                    "organizationId",
                    "name",
                    "properties",
                    "createdByUserId",
                    "modifiedByUserId",
                    "createdDate",
                    "modifiedDate"
                ]
            },
            "v1SavedSearchFilterItem": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    }
                },
                "required": [
                    "id",
                    "name"
                ]
            },
            "v1SavedSearchMetadataItem": {
                "type": "object",
                "properties": {
                    "key": {
                        "type": "string"
                    },
                    "stringValue": {
                        "type": "string"
                    },
                    "numberValue": {
                        "type": "number",
                        "format": "double"
                    },
                    "booleanValue": {
                        "type": "boolean"
                    }
                },
                "required": [
                    "key"
                ]
            },
            "v1SavedSearchProperties": {
                "type": "object",
                "properties": {
                    "overviewMode": {
                        "type": "string"
                    },
                    "searchTerm": {
                        "type": "string"
                    },
                    "fromDateTime": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "toDateTime": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "assetItems": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1SavedSearchFilterItem"
                        }
                    },
                    "userItems": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1SavedSearchFilterItem"
                        }
                    },
                    "tagItems": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1SavedSearchFilterItem"
                        }
                    },
                    "annotationItems": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1SavedSearchFilterItem"
                        }
                    },
                    "runItems": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1SavedSearchFilterItem"
                        }
                    },
                    "reportTemplateItems": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1SavedSearchFilterItem"
                        },
                        "description": "Superseded by `template_items`, which also carries canvases. Saved searches\nwritten before that field exists only populate this one, and reads hydrate\n`template_items` from it with `kind` set to \"reportTemplate\"."
                    },
                    "showAdvancedFilters": {
                        "type": "boolean"
                    },
                    "includeArchived": {
                        "type": "boolean"
                    },
                    "orderBy": {
                        "type": "string"
                    },
                    "metadataItems": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1SavedSearchMetadataItem"
                        }
                    },
                    "duration": {
                        "type": "string"
                    },
                    "templateItems": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1SavedSearchTemplateItem"
                        },
                        "description": "Reports search: report templates and canvases are stored together in a single filter."
                    },
                    "reportType": {
                        "type": "string",
                        "description": "Reports search: restricts results to a single report kind. One of\n\"RULE_EVALUATION\" or \"CANVAS\", matching the `report_type` filter values."
                    }
                },
                "required": [
                    "overviewMode"
                ]
            },
            "v1SavedSearchTemplateItem": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "kind": {
                        "type": "string",
                        "description": "One of \"reportTemplate\" or \"canvas\"."
                    }
                },
                "description": "A report template or canvas selected in the reports Template filter. Distinct\nfrom `SavedSearchFilterItem`, which is shared by filters that have no kind.",
                "required": [
                    "id",
                    "name",
                    "kind"
                ]
            },
            "v1SearchDocsResponse": {
                "type": "object",
                "properties": {
                    "hits": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1DocHit"
                        },
                        "readOnly": true
                    },
                    "totalScanned": {
                        "type": "integer",
                        "format": "int32",
                        "description": "Total number of doc pages scanned to produce these hits.",
                        "readOnly": true
                    }
                }
            },
            "v1SearchOrder": {
                "type": "string",
                "enum": [
                    "SEARCH_ORDER_UNSPECIFIED",
                    "SEARCH_ORDER_ASC",
                    "SEARCH_ORDER_DESC"
                ],
                "default": "SEARCH_ORDER_UNSPECIFIED"
            },
            "v1SearchRulesRequest": {
                "type": "object",
                "properties": {
                    "limit": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Max number of rules to return (returns all if omitted)."
                    },
                    "offset": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Only applies if limit provided."
                    },
                    "order": {
                        "$ref": "#/components/schemas/v1SearchOrder"
                    },
                    "nameMatches": {
                        "type": "string"
                    },
                    "caseSensitive": {
                        "type": "boolean"
                    },
                    "regexp": {
                        "type": "boolean"
                    },
                    "orderBy": {
                        "type": "string",
                        "description": "The field to sort results by. Valid values are `created_date` and `modified_date`.\nDefaults to `created_date`. Use `order` to set the sort direction."
                    },
                    "ruleIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "title": "If provided, only returns rules with the given ids"
                    },
                    "assetIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "title": "If provided, only returns rules that apply to the given asset ids"
                    },
                    "includeDeleted": {
                        "type": "boolean"
                    },
                    "assetTags": {
                        "$ref": "#/components/schemas/v1NamedResources"
                    }
                }
            },
            "v1SearchRulesResponse": {
                "type": "object",
                "properties": {
                    "count": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "rules": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1Rule"
                        },
                        "description": "The latest version of the rule is returned."
                    }
                },
                "required": [
                    "count",
                    "rules"
                ]
            },
            "v1SingleChannelComparisonExpression": {
                "type": "object",
                "properties": {
                    "channelComponent": {
                        "type": "string",
                        "title": "Deprecated - use channel_name instead. If provided, channel_component will be joined with the name as `channel_component.channel_name`"
                    },
                    "channelName": {
                        "type": "string"
                    },
                    "comparator": {
                        "$ref": "#/components/schemas/v1ConditionComparator"
                    },
                    "double": {
                        "type": "number",
                        "format": "double"
                    },
                    "string": {
                        "type": "string"
                    },
                    "lastValue": {
                        "$ref": "#/components/schemas/v1LastValueThreshold"
                    }
                },
                "description": "Deprecated - use CalculatedChannelConfig.",
                "required": [
                    "channelComponent",
                    "channelName",
                    "comparator"
                ]
            },
            "v1StringBounds": {
                "type": "object",
                "properties": {
                    "expectedValue": {
                        "type": "string"
                    }
                },
                "required": [
                    "expectedValue"
                ]
            },
            "v1SuccessValidatingExpressionResult": {
                "type": "object",
                "properties": {
                    "dataType": {
                        "$ref": "#/components/schemas/v1ChannelDataType"
                    }
                },
                "required": [
                    "dataType"
                ]
            },
            "v1SyncOrganizationRequest": {
                "type": "object"
            },
            "v1SyncOrganizationResponse": {
                "type": "object",
                "properties": {
                    "externalSync": {
                        "$ref": "#/components/schemas/v1ExternalSync"
                    },
                    "existingUserCount": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "addedToOrganizationUserIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "createdUsers": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1User"
                        }
                    },
                    "deactivatedUserIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "existingGroupCount": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "createdUserGroups": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v2UserGroup"
                        }
                    },
                    "deletedUserGroupNames": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "required": [
                    "externalSync",
                    "existingUserCount",
                    "addedToOrganizationUserIds",
                    "createdUsers",
                    "deactivatedUserIds",
                    "existingGroupCount",
                    "createdUserGroups",
                    "deletedUserGroupNames"
                ]
            },
            "v1TagRef": {
                "type": "object",
                "properties": {
                    "tagId": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    }
                },
                "description": "Points to a tag by name or tag_id.\nWhen this message is used for a request, you can use either name or tag_id to refer to a tag.\nWhen this message is returned in a response, both of the fields will be populated and valid."
            },
            "v1TestMeasurement": {
                "type": "object",
                "properties": {
                    "measurementId": {
                        "type": "string"
                    },
                    "measurementType": {
                        "$ref": "#/components/schemas/v1TestMeasurementType"
                    },
                    "name": {
                        "type": "string"
                    },
                    "testStepId": {
                        "type": "string"
                    },
                    "testReportId": {
                        "type": "string"
                    },
                    "numericValue": {
                        "type": "number",
                        "format": "double"
                    },
                    "stringValue": {
                        "type": "string"
                    },
                    "booleanValue": {
                        "type": "boolean"
                    },
                    "unit": {
                        "$ref": "#/components/schemas/unitv2Unit"
                    },
                    "numericBounds": {
                        "$ref": "#/components/schemas/v1NumericBounds"
                    },
                    "stringBounds": {
                        "$ref": "#/components/schemas/v1StringBounds"
                    },
                    "passed": {
                        "type": "boolean"
                    },
                    "timestamp": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "description": {
                        "type": "string",
                        "title": "Description or note about the measurement"
                    },
                    "channelNames": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "Names of Sift channels this measurement is associated with. Allows cross-plotting\nin Explore using the Report's associated Run to resolve channels from names."
                    },
                    "metadata": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        },
                        "title": "The metadata values associated with this measurement"
                    }
                },
                "required": [
                    "measurementId",
                    "measurementType",
                    "name",
                    "testStepId",
                    "testReportId",
                    "passed",
                    "timestamp"
                ]
            },
            "v1TestMeasurementType": {
                "type": "string",
                "enum": [
                    "TEST_MEASUREMENT_TYPE_UNSPECIFIED",
                    "TEST_MEASUREMENT_TYPE_DOUBLE",
                    "TEST_MEASUREMENT_TYPE_STRING",
                    "TEST_MEASUREMENT_TYPE_BOOLEAN",
                    "TEST_MEASUREMENT_TYPE_LIMIT"
                ],
                "default": "TEST_MEASUREMENT_TYPE_UNSPECIFIED"
            },
            "v1TestReport": {
                "type": "object",
                "properties": {
                    "testReportId": {
                        "type": "string",
                        "title": "Unique identifier for the run"
                    },
                    "status": {
                        "$ref": "#/components/schemas/v1TestStatus"
                    },
                    "name": {
                        "type": "string",
                        "title": "The name of the test run"
                    },
                    "testSystemName": {
                        "type": "string",
                        "title": "The name of the test system"
                    },
                    "testCase": {
                        "type": "string",
                        "title": "The test case that was run"
                    },
                    "startTime": {
                        "type": "string",
                        "format": "date-time",
                        "title": "The start time of the test run"
                    },
                    "endTime": {
                        "type": "string",
                        "format": "date-time",
                        "title": "The end time of the test run"
                    },
                    "metadata": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        },
                        "title": "The metadata values associated with this test run"
                    },
                    "serialNumber": {
                        "type": "string",
                        "title": "The serial number for the DUT"
                    },
                    "partNumber": {
                        "type": "string",
                        "title": "The part number for the DUT"
                    },
                    "systemOperator": {
                        "type": "string",
                        "title": "Unique identifier for user owner"
                    },
                    "archivedDate": {
                        "type": "string",
                        "format": "date-time",
                        "title": "The date and time the test run was archived (internal)"
                    },
                    "isArchived": {
                        "type": "boolean",
                        "title": "Whether the test run is archived (externally exposed)"
                    },
                    "runId": {
                        "type": "string",
                        "title": "The run ID for the test run"
                    },
                    "overallModifiedDate": {
                        "type": "string",
                        "format": "date-time",
                        "description": "The most recent write to this report or to any of its steps or measurements.\nOnly populated when GetTestReport is called with include_overall_modified_date."
                    }
                },
                "required": [
                    "testReportId",
                    "status",
                    "name",
                    "testSystemName",
                    "testCase",
                    "startTime",
                    "endTime"
                ]
            },
            "v1TestStatus": {
                "type": "string",
                "enum": [
                    "TEST_STATUS_UNSPECIFIED",
                    "TEST_STATUS_DRAFT",
                    "TEST_STATUS_PASSED",
                    "TEST_STATUS_FAILED",
                    "TEST_STATUS_ABORTED",
                    "TEST_STATUS_ERROR",
                    "TEST_STATUS_IN_PROGRESS",
                    "TEST_STATUS_SKIPPED"
                ],
                "default": "TEST_STATUS_UNSPECIFIED",
                "title": "- TEST_STATUS_DRAFT: Barebones test report created, waiting for file processing"
            },
            "v1TestStep": {
                "type": "object",
                "properties": {
                    "testStepId": {
                        "type": "string",
                        "title": "unique identifier for the step"
                    },
                    "testReportId": {
                        "type": "string",
                        "title": "pointer to overall test run"
                    },
                    "parentStepId": {
                        "type": "string",
                        "title": "pointer to parent step, if any"
                    },
                    "name": {
                        "type": "string",
                        "title": "Name of the test step for display"
                    },
                    "description": {
                        "type": "string",
                        "title": "Description of the test step from test controller"
                    },
                    "stepType": {
                        "$ref": "#/components/schemas/v1TestStepType"
                    },
                    "stepPath": {
                        "type": "string",
                        "title": "Hierarchical path (e.g., \"1\", \"1.1\", \"1.2.3\")"
                    },
                    "status": {
                        "$ref": "#/components/schemas/v1TestStatus"
                    },
                    "startTime": {
                        "type": "string",
                        "format": "date-time",
                        "title": "Start time of the test step"
                    },
                    "endTime": {
                        "type": "string",
                        "format": "date-time",
                        "title": "End time of the test step"
                    },
                    "errorInfo": {
                        "$ref": "#/components/schemas/v1ErrorInfo"
                    },
                    "metadata": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        },
                        "title": "The metadata values associated with this test step"
                    }
                },
                "required": [
                    "testStepId",
                    "testReportId",
                    "name",
                    "stepType",
                    "stepPath",
                    "status",
                    "startTime",
                    "endTime"
                ]
            },
            "v1TestStepType": {
                "type": "string",
                "enum": [
                    "TEST_STEP_TYPE_UNSPECIFIED",
                    "TEST_STEP_TYPE_SEQUENCE",
                    "TEST_STEP_TYPE_GROUP",
                    "TEST_STEP_TYPE_ACTION",
                    "TEST_STEP_TYPE_FLOW_CONTROL"
                ],
                "default": "TEST_STEP_TYPE_UNSPECIFIED",
                "title": "- TEST_STEP_TYPE_SEQUENCE: ResultSet/MainSequence - top-level test sequence\n - TEST_STEP_TYPE_GROUP: TestGroup - logical grouping of test steps\n - TEST_STEP_TYPE_ACTION: SessionAction - individual executable action\n - TEST_STEP_TYPE_FLOW_CONTROL: Flow control elements (While, If, etc.)"
            },
            "v1TestWebhookRequest": {
                "type": "object",
                "properties": {
                    "webhookId": {
                        "type": "string"
                    },
                    "webhook": {
                        "$ref": "#/components/schemas/v1Webhook"
                    },
                    "createRequest": {
                        "$ref": "#/components/schemas/v1CreateWebhookRequest"
                    }
                },
                "description": "The request for a call to `WebhookService_TestWebhook` to test an existing webhook\nor a webhook create request."
            },
            "v1TestWebhookResponse": {
                "type": "object",
                "properties": {
                    "httpResponseCode": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "httpResponseBody": {
                        "type": "string",
                        "format": "byte"
                    }
                },
                "description": "The response of a call to `WebhookService_TestWebhook`. The response code and body will come from the HTTP response\nfrom the target URL.",
                "required": [
                    "httpResponseCode",
                    "httpResponseBody"
                ]
            },
            "v1TimeRange": {
                "type": "object",
                "properties": {
                    "startTime": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "stopTime": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "required": [
                    "startTime",
                    "stopTime"
                ]
            },
            "v1TimeRangeBound": {
                "type": "string",
                "enum": [
                    "TIME_RANGE_BOUND_UNSPECIFIED",
                    "TIME_RANGE_BOUND_START",
                    "TIME_RANGE_BOUND_END"
                ],
                "default": "TIME_RANGE_BOUND_UNSPECIFIED"
            },
            "v1TimeRangeQuery": {
                "type": "object",
                "properties": {
                    "startTime": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "endTime": {
                        "type": "string",
                        "format": "date-time"
                    }
                }
            },
            "v1TimestampAlignment": {
                "type": "object",
                "properties": {
                    "timestamp": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "required": [
                    "timestamp"
                ]
            },
            "v1ToggleWebhookSignatureKeyActivationRequest": {
                "type": "object",
                "properties": {
                    "enable": {
                        "type": "boolean"
                    }
                },
                "description": "The request for a call to `WebhookService_ToggleWebhookSignatureKeyActivation` to enable or disable the current\nwebhook signature key. Set `enable` to `true` to activate the signature key, and `false` to deactivate.",
                "required": [
                    "enable"
                ]
            },
            "v1ToggleWebhookSignatureKeyActivationResponse": {
                "type": "object",
                "properties": {
                    "signatureKey": {
                        "$ref": "#/components/schemas/v1WebhookSignatureKey"
                    }
                },
                "description": "The response for a call to `WebhookService_ToggleWebhookSignatureKeyActivation`.",
                "required": [
                    "signatureKey"
                ]
            },
            "v1UnarchiveAnnotationResponse": {
                "type": "object",
                "properties": {
                    "annotation": {
                        "$ref": "#/components/schemas/annotationsv1Annotation"
                    }
                },
                "description": "The response of a call to `AnnotationService_UnarchiveAnnotation`.",
                "required": [
                    "annotation"
                ]
            },
            "v1UnarchiveArtifactResponse": {
                "type": "object"
            },
            "v1UnarchiveMetadataKeysRequest": {
                "type": "object",
                "properties": {
                    "metadataKeys": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataKey"
                        }
                    },
                    "unarchiveValues": {
                        "type": "boolean"
                    }
                },
                "required": [
                    "metadataKeys"
                ]
            },
            "v1UnarchiveMetadataKeysResponse": {
                "type": "object"
            },
            "v1UnarchiveMetadataValuesRequest": {
                "type": "object",
                "properties": {
                    "metadataValues": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        }
                    }
                },
                "required": [
                    "metadataValues"
                ]
            },
            "v1UnarchiveMetadataValuesResponse": {
                "type": "object"
            },
            "v1UnarchivePolicyResponse": {
                "type": "object",
                "properties": {
                    "policy": {
                        "$ref": "#/components/schemas/v1Policy"
                    }
                },
                "description": "The response of a call to `PolicyService_UnarchivePolicy`.",
                "required": [
                    "policy"
                ]
            },
            "v1UnarchivePrincipalAttributeEnumValueResponse": {
                "type": "object"
            },
            "v1UnarchivePrincipalAttributeKeysRequest": {
                "type": "object",
                "properties": {
                    "principalAttributeKeyIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "description": "UnarchivePrincipalAttributeKeysRequest is used to batch unarchive principal attribute keys by id.",
                "required": [
                    "principalAttributeKeyIds"
                ]
            },
            "v1UnarchivePrincipalAttributeKeysResponse": {
                "type": "object"
            },
            "v1UnarchivePrincipalAttributeValuesRequest": {
                "type": "object",
                "properties": {
                    "principalAttributeValueIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "principalType": {
                        "$ref": "#/components/schemas/v1PrincipalAttributePrincipalType"
                    }
                },
                "description": "UnarchivePrincipalAttributeValuesRequest is used to batch unarchive principal attribute values by id.",
                "required": [
                    "principalAttributeValueIds",
                    "principalType"
                ]
            },
            "v1UnarchivePrincipalAttributeValuesResponse": {
                "type": "object"
            },
            "v1UnarchiveResourceAttributeEnumValueResponse": {
                "type": "object"
            },
            "v1UnarchiveResourceAttributeKeyResponse": {
                "type": "object"
            },
            "v1UnarchiveResourceAttributeResponse": {
                "type": "object"
            },
            "v1UnarchiveRuleRequest": {
                "type": "object",
                "properties": {
                    "ruleId": {
                        "type": "string"
                    },
                    "clientKey": {
                        "type": "string"
                    }
                },
                "description": "UnarchiveRuleRequest is used to unarchive a rule by rule_id or client_key. If both are provided, only rule_id will be used."
            },
            "v1UnarchiveRuleResponse": {
                "type": "object"
            },
            "v1UndeleteRuleRequest": {
                "type": "object",
                "properties": {
                    "ruleId": {
                        "type": "string"
                    },
                    "clientKey": {
                        "type": "string"
                    }
                },
                "description": "UndeleteRuleRequest is used to undelete a rule by rule_id or client_key. If both are provided, only rule_id will be used."
            },
            "v1UndeleteRuleResponse": {
                "type": "object"
            },
            "v1UnlinkArtifactFromConversationResponse": {
                "type": "object"
            },
            "v1UpdateActionRequest": {
                "type": "object",
                "properties": {
                    "ruleActionId": {
                        "type": "string"
                    },
                    "actionType": {
                        "$ref": "#/components/schemas/v1ActionKind"
                    },
                    "configuration": {
                        "$ref": "#/components/schemas/v1RuleActionConfiguration"
                    }
                },
                "required": [
                    "actionType",
                    "configuration"
                ]
            },
            "v1UpdateAnnotationRequest": {
                "type": "object",
                "properties": {
                    "annotation": {
                        "$ref": "#/components/schemas/annotationsv1Annotation"
                    },
                    "updateMask": {
                        "type": "string",
                        "description": "The list of fields to be updated. The fields available to be updated are `name`, `description`, `start_time`,\n`end_time`, `assigned_to_user_id`, `state`, `tags`, `legend_config`, `linked_channels`, `metadata`, and `is_archived`.\nPrefer the ArchiveAnnotation, UnarchiveAnnotation, and batch RPCs for changing archive state.\nImportant Note: if `tags` is specified in the update mask and `annotation.tags` is an empty list then all associated tags on the annotation\nwill be removed."
                    }
                },
                "description": "The request for a call to `AnnotationService_UpdateAnnotation` to update an annotation.",
                "required": [
                    "annotation",
                    "updateMask"
                ]
            },
            "v1UpdateAnnotationResponse": {
                "type": "object",
                "properties": {
                    "annotation": {
                        "$ref": "#/components/schemas/annotationsv1Annotation"
                    }
                },
                "description": "The response of a call to `AnnotationService_UpdateAnnotation`."
            },
            "v1UpdateArtifactResponse": {
                "type": "object",
                "properties": {
                    "artifact": {
                        "$ref": "#/components/schemas/v1ArtifactDetails"
                    }
                }
            },
            "v1UpdateAssetRequest": {
                "type": "object",
                "properties": {
                    "asset": {
                        "$ref": "#/components/schemas/assetsv1Asset"
                    },
                    "updateMask": {
                        "type": "string",
                        "description": "The list of fields to be updated. The fields available to be updated are `tags`, `metadata`, `archived_date`, and `is_archived`."
                    }
                },
                "description": "The request for a call to `AssetService_UpdateAsset` to update a single existing asset.",
                "required": [
                    "updateMask"
                ]
            },
            "v1UpdateAssetResponse": {
                "type": "object",
                "properties": {
                    "asset": {
                        "$ref": "#/components/schemas/assetsv1Asset"
                    }
                },
                "description": "The response of a call to `AssetService_UpdateAsset`."
            },
            "v1UpdateAutomationTriggerRequest": {
                "type": "object",
                "properties": {
                    "automationTrigger": {
                        "$ref": "#/components/schemas/v1AutomationTrigger"
                    },
                    "updateMask": {
                        "type": "string"
                    }
                },
                "description": "The request for a call to `AutomationService_UpdateAutomationTrigger`.\nFields apply only when named in `update_mask`. Archive by setting\n`archived_date` in the mask; unarchive by clearing it.",
                "required": [
                    "automationTrigger",
                    "updateMask"
                ]
            },
            "v1UpdateAutomationTriggerResponse": {
                "type": "object",
                "properties": {
                    "automationTrigger": {
                        "$ref": "#/components/schemas/v1AutomationTrigger"
                    }
                },
                "description": "The response of a call to `AutomationService_UpdateAutomationTrigger`.",
                "required": [
                    "automationTrigger"
                ]
            },
            "v1UpdateCampaignRequest": {
                "type": "object",
                "properties": {
                    "campaign": {
                        "$ref": "#/components/schemas/v1Campaign"
                    },
                    "updateMask": {
                        "type": "string",
                        "description": "The list of fields to be updated. The fields available to be updated are `name`, `archived_date`, `is_archived`, `description`, `tags`, `reports`, and `metadata`."
                    }
                },
                "description": "The request for a call to `CampaignService_UpdateCampaign` to update a campaign. When updating\ntags or rules, the update will perform a full replace. Additionally, when updating rules, only the rule ID or the rule client key\nis required, but it is okay to provide both. If some rules contain only client keys and others only rule IDs, they will be consolidated.",
                "required": [
                    "campaign",
                    "updateMask"
                ]
            },
            "v1UpdateCampaignResponse": {
                "type": "object",
                "properties": {
                    "campaign": {
                        "$ref": "#/components/schemas/v1Campaign"
                    }
                },
                "description": "The response of a call to `CampaignService_UpdateCampaign`.",
                "required": [
                    "campaign"
                ]
            },
            "v1UpdateCommentResponse": {
                "type": "object",
                "properties": {
                    "comment": {
                        "$ref": "#/components/schemas/v1Comment"
                    }
                },
                "description": "The response of a call to `CommentService_UpdateComment`."
            },
            "v1UpdateConditionRequest": {
                "type": "object",
                "properties": {
                    "ruleConditionId": {
                        "type": "string"
                    },
                    "expression": {
                        "$ref": "#/components/schemas/v1RuleConditionExpression"
                    },
                    "actions": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1UpdateActionRequest"
                        }
                    }
                },
                "required": [
                    "expression",
                    "actions"
                ]
            },
            "v1UpdateFamilyResponse": {
                "type": "object",
                "properties": {
                    "familyVersionId": {
                        "type": "string"
                    },
                    "family": {
                        "$ref": "#/components/schemas/v1FamilyDetails"
                    },
                    "familyStats": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1FamilyStatDetails"
                        }
                    }
                },
                "required": [
                    "familyVersionId",
                    "family"
                ]
            },
            "v1UpdateHumanFriendlyRulesRequest": {
                "type": "object",
                "properties": {
                    "assetId": {
                        "type": "string"
                    },
                    "rulesJson": {
                        "type": "string"
                    },
                    "organizationId": {
                        "type": "string"
                    }
                },
                "description": "Deprecated - use UpdateJsonRulesRequest.",
                "required": [
                    "assetId",
                    "rulesJson",
                    "organizationId"
                ]
            },
            "v1UpdateHumanFriendlyRulesResponse": {
                "type": "object",
                "properties": {
                    "success": {
                        "type": "boolean"
                    },
                    "rulesCount": {
                        "type": "integer",
                        "format": "int32"
                    },
                    "messages": {
                        "type": "string"
                    }
                },
                "description": "Deprecated - use UpdateJsonRulesResponse.",
                "required": [
                    "success",
                    "rulesCount",
                    "messages"
                ]
            },
            "v1UpdateJsonRulesRequest": {
                "type": "object",
                "properties": {
                    "request": {
                        "$ref": "#/components/schemas/v1JsonRulesRequest"
                    }
                },
                "required": [
                    "request"
                ]
            },
            "v1UpdateJsonRulesResponse": {
                "type": "object",
                "properties": {
                    "response": {
                        "$ref": "#/components/schemas/v1JsonRulesResponse"
                    }
                },
                "required": [
                    "response"
                ]
            },
            "v1UpdateNotificationRequest": {
                "type": "object",
                "properties": {
                    "notification": {
                        "$ref": "#/components/schemas/v1Notification"
                    },
                    "updateMask": {
                        "type": "string",
                        "description": "The list of fields to be updated. Currently, the only field that can be updated is `is_read`."
                    }
                },
                "required": [
                    "notification",
                    "updateMask"
                ]
            },
            "v1UpdatePanelConfigurationResponse": {
                "type": "object",
                "properties": {
                    "panelConfiguration": {
                        "$ref": "#/components/schemas/v1PanelConfiguration"
                    }
                }
            },
            "v1UpdatePolicyRequest": {
                "type": "object",
                "properties": {
                    "policy": {
                        "$ref": "#/components/schemas/v1Policy"
                    },
                    "updateMask": {
                        "type": "string",
                        "description": "The list of fields to be updated. The fields available to be updated are `name`, `description`, `configuration`, and `is_archived`."
                    },
                    "versionNotes": {
                        "type": "string",
                        "title": "Optional notes for the new policy version when configuration changes"
                    }
                },
                "description": "The request for a call to `PolicyService_UpdatePolicy` to update a policy.",
                "required": [
                    "policy",
                    "updateMask"
                ]
            },
            "v1UpdatePolicyResponse": {
                "type": "object",
                "properties": {
                    "policy": {
                        "$ref": "#/components/schemas/v1Policy"
                    }
                },
                "description": "The response of a call to `PolicyService_UpdatePolicy`.",
                "required": [
                    "policy"
                ]
            },
            "v1UpdatePrincipalAttributeEnumValueResponse": {
                "type": "object",
                "properties": {
                    "principalAttributeEnumValue": {
                        "$ref": "#/components/schemas/v1PrincipalAttributeEnumValue"
                    }
                },
                "required": [
                    "principalAttributeEnumValue"
                ]
            },
            "v1UpdatePrincipalAttributeKeyResponse": {
                "type": "object",
                "properties": {
                    "principalAttributeKey": {
                        "$ref": "#/components/schemas/v1PrincipalAttributeKey"
                    }
                },
                "description": "UpdatePrincipalAttributeKeyResponse returns the principal attribute key from a UpdatePrincipalAttributeKey call.",
                "required": [
                    "principalAttributeKey"
                ]
            },
            "v1UpdateRemoteFileRequest": {
                "type": "object",
                "properties": {
                    "remoteFile": {
                        "$ref": "#/components/schemas/v1RemoteFile"
                    },
                    "updateMask": {
                        "type": "string",
                        "description": "The list of fields to be updated. The fields available to be updated are `description`, `metadata_values`, and `metadata`."
                    }
                },
                "description": "The request for a call to `RemoteFileService_UpdateRemoteFile` to update a remote file.",
                "required": [
                    "remoteFile",
                    "updateMask"
                ]
            },
            "v1UpdateRemoteFileResponse": {
                "type": "object",
                "properties": {
                    "remoteFile": {
                        "$ref": "#/components/schemas/v1RemoteFile"
                    }
                },
                "description": "The response of a call to `RemoteFileService_UpdateRemoteFile`.",
                "required": [
                    "remoteFile"
                ]
            },
            "v1UpdateReportRequest": {
                "type": "object",
                "properties": {
                    "report": {
                        "$ref": "#/components/schemas/v1Report"
                    },
                    "updateMask": {
                        "type": "string",
                        "description": "The list of fields to be updated. The fields available to be updated are `name`, `description`, `archived_date`,\n`is_archived`, and `metadata`. An empty `name` is ignored and the existing name is preserved. Including\n`description` in the mask with the field unset clears the description."
                    }
                },
                "required": [
                    "report",
                    "updateMask"
                ]
            },
            "v1UpdateReportResponse": {
                "type": "object",
                "title": "no response fields"
            },
            "v1UpdateReportTemplateRequest": {
                "type": "object",
                "properties": {
                    "reportTemplate": {
                        "$ref": "#/components/schemas/v1ReportTemplate"
                    },
                    "updateMask": {
                        "type": "string",
                        "description": "The list of fields to be updated. The fields available to be updated are `name`, `archived_date`, `is_archived`, `description`, `tags`, `rules`, and `metadata`."
                    }
                },
                "description": "The request for a call to `ReportTemplateService_UpdateReportTemplate` to update a report template. When updating\ntags or rules, the update will perform a full replace. Additionally, when updating rules, only the rule ID or the rule client key\nis required, but it is okay to provide both. If some rules contain only client keys and others only rule IDs, they will be consolidated.",
                "required": [
                    "reportTemplate",
                    "updateMask"
                ]
            },
            "v1UpdateReportTemplateResponse": {
                "type": "object",
                "properties": {
                    "reportTemplate": {
                        "$ref": "#/components/schemas/v1ReportTemplate"
                    }
                },
                "description": "The response of a call to `ReportTemplateService_UpdateReportTemplate`.",
                "required": [
                    "reportTemplate"
                ]
            },
            "v1UpdateResourceAttributeEnumValueResponse": {
                "type": "object",
                "properties": {
                    "resourceAttributeEnumValue": {
                        "$ref": "#/components/schemas/v1ResourceAttributeEnumValue"
                    }
                },
                "required": [
                    "resourceAttributeEnumValue"
                ]
            },
            "v1UpdateResourceAttributeKeyResponse": {
                "type": "object",
                "properties": {
                    "resourceAttributeKey": {
                        "$ref": "#/components/schemas/v1ResourceAttributeKey"
                    }
                },
                "required": [
                    "resourceAttributeKey"
                ]
            },
            "v1UpdateRuleRequest": {
                "type": "object",
                "properties": {
                    "ruleId": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "assetId": {
                        "type": "string",
                        "description": "Deprecated - use asset_configuration instead."
                    },
                    "isEnabled": {
                        "type": "boolean",
                        "description": "Deprecated - use DeleteRule instead."
                    },
                    "conditions": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1UpdateConditionRequest"
                        }
                    },
                    "organizationId": {
                        "type": "string"
                    },
                    "versionNotes": {
                        "type": "string"
                    },
                    "clientKey": {
                        "type": "string",
                        "title": "client_key is a client provided identifier for the rule. It is immutable after being set"
                    },
                    "assetConfiguration": {
                        "$ref": "#/components/schemas/v1RuleAssetConfiguration"
                    },
                    "contextualChannels": {
                        "$ref": "#/components/schemas/v1ContextualChannels"
                    },
                    "isExternal": {
                        "type": "boolean"
                    },
                    "metadata": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        }
                    },
                    "isArchived": {
                        "type": "boolean"
                    },
                    "isLiveEvaluationEnabled": {
                        "type": "boolean",
                        "description": "If set to `true` then this rule will be evaluated on live data, otherwise live rule evaluation\nwill be disabled. This rule can still be used, however, in report generation. If this value\nis null then the original value is preserved.\n\nThis is a request, not a guarantee. When combined with\n`BatchUpdateRulesRequest.override_expression_validation = true`, a `true` value here can be\nsilently overridden to `false` if UDF inlining fails (the rule is still persisted, just with\nlive evaluation disabled). Re-send this request with the underlying issue resolved -- e.g.\nthe referenced channels populated, or the expression simplified -- to flip it back on."
                    },
                    "savedExplorationId": {
                        "type": "string",
                        "description": "ID of the saved exploration linked to this rule. When set, changing this value creates a new\nrule version. Cleared by sending an empty string."
                    }
                },
                "description": "UpdateRuleRequest is used to create or update a rule. If the rule_id or client_key is provided, the rule will be updated. If not, a new rule will be created.",
                "required": [
                    "name",
                    "description",
                    "conditions",
                    "metadata"
                ]
            },
            "v1UpdateRuleResponse": {
                "type": "object",
                "properties": {
                    "ruleId": {
                        "type": "string"
                    }
                },
                "required": [
                    "ruleId"
                ]
            },
            "v1UpdateSavedSearchRequest": {
                "type": "object",
                "properties": {
                    "savedSearch": {
                        "$ref": "#/components/schemas/v1SavedSearch"
                    },
                    "updateMask": {
                        "type": "string",
                        "description": "The list of fields to be updated. The fields available to be updated are `name` and `properties`."
                    }
                },
                "description": "The request for a call to `SavedSearchService_UpdateSavedSearch` to update a saved search.",
                "required": [
                    "savedSearch",
                    "updateMask"
                ]
            },
            "v1UpdateSavedSearchResponse": {
                "type": "object",
                "properties": {
                    "savedSearch": {
                        "$ref": "#/components/schemas/v1SavedSearch"
                    }
                },
                "description": "The response of a call to `SavedSearchService_UpdateSavedSearch`.",
                "required": [
                    "savedSearch"
                ]
            },
            "v1UpdateTestMeasurementRequest": {
                "type": "object",
                "properties": {
                    "testMeasurement": {
                        "$ref": "#/components/schemas/v1TestMeasurement"
                    },
                    "updateMask": {
                        "type": "string",
                        "description": "The field mask specifying which fields to update. The fields available to be updated are\n`name`, `measurement_type`, `numeric_value`, `string_value`, `boolean_value`, `unit`, `numeric_bounds`,\n`string_bounds`, `passed`, `timestamp`, `description`, and `channel_names` and `metadata`. When `metadata` is in the\nmask, the supplied list replaces all existing metadata for the measurement; sending\nan empty or omitted list clears all metadata."
                    }
                },
                "title": "Request message for UpdateTestMeasurement",
                "required": [
                    "testMeasurement"
                ]
            },
            "v1UpdateTestMeasurementResponse": {
                "type": "object",
                "properties": {
                    "testMeasurement": {
                        "$ref": "#/components/schemas/v1TestMeasurement"
                    }
                },
                "title": "Response message for UpdateTestMeasurement"
            },
            "v1UpdateTestReportRequest": {
                "type": "object",
                "properties": {
                    "testReport": {
                        "$ref": "#/components/schemas/v1TestReport"
                    },
                    "updateMask": {
                        "type": "string",
                        "description": "The field mask specifying which fields to update. The fields available to be updated are\n`status`, `name`, `test_system_name`, `test_case`, `start_time`, `end_time`, `serial_number`,\n`part_number`, `system_operator`, `run_id`, and `is_archived`."
                    }
                },
                "title": "Request message for UpdateTestReport",
                "required": [
                    "testReport"
                ]
            },
            "v1UpdateTestReportResponse": {
                "type": "object",
                "properties": {
                    "testReport": {
                        "$ref": "#/components/schemas/v1TestReport"
                    }
                },
                "title": "Response message for UpdateTestReport"
            },
            "v1UpdateTestStepRequest": {
                "type": "object",
                "properties": {
                    "testStep": {
                        "$ref": "#/components/schemas/v1TestStep"
                    },
                    "updateMask": {
                        "type": "string",
                        "description": "The field mask specifying which fields to update. The fields available to be updated are\n`name`, `description`, `step_type`, `step_path`, `test_case`, `status`,\n`start_time`, `end_time`, `error_info`, and `metadata`. When `metadata` is in the\nmask, the supplied list replaces all existing metadata for the test step; sending an\nempty or omitted list clears all metadata."
                    }
                },
                "title": "Request message for UpdateTestStep",
                "required": [
                    "testStep"
                ]
            },
            "v1UpdateTestStepResponse": {
                "type": "object",
                "properties": {
                    "testStep": {
                        "$ref": "#/components/schemas/v1TestStep"
                    }
                },
                "title": "Response message for UpdateTestStep"
            },
            "v1UpdateUserDefinedFunctionRequest": {
                "type": "object",
                "properties": {
                    "userDefinedFunction": {
                        "$ref": "#/components/schemas/v1UserDefinedFunction"
                    },
                    "updateMask": {
                        "type": "string",
                        "title": "The list of fields to be updated. The fields available to be updated are `name`, `archived_date`, `is_archived`, `description`, `expression`, `function_inputs`, and `metadata`.\n -- `name` can't be updated if the function has ever had any dependencies\n -- `function_inputs` inputs can't be updated if the function has any dependents (functions or calculated channels with a dependency on this function).\n -- `expression` can't be updated if the function has dependents and the expression changes the output type.\n -- `metadata` updates metadata associated with the function"
                    }
                },
                "description": "The request for a call to `UserDefinedFunctionService_UpdateUserDefinedFunction` to update a user defined function. Updating a user\ndefined function creates a new version of the user defined function, leaving the previous untouched. If no update is deemed necessary, then the\nthe current version is returned. If name is changed then only name will be changed. If archive date is changed then only archive date will be changed.\nTo archive user defined function, specify `archived_date` in the `update mask` as well as a non-null value for `archived_date` in the\n`user_defined_function` object. To unarchive a user defined function, specify `archived_date` in the `update mask` and a `null` value for `archived_date`\nin the `user_defined_function` object. Alternatively, use `is_archived` with a boolean value to archive/unarchive.",
                "required": [
                    "userDefinedFunction",
                    "updateMask"
                ]
            },
            "v1UpdateUserDefinedFunctionResponse": {
                "type": "object",
                "properties": {
                    "userDefinedFunction": {
                        "$ref": "#/components/schemas/v1UserDefinedFunction"
                    }
                },
                "required": [
                    "userDefinedFunction"
                ]
            },
            "v1UpdateWebhookRequest": {
                "type": "object",
                "properties": {
                    "webhook": {
                        "$ref": "#/components/schemas/v1Webhook"
                    },
                    "updateMask": {
                        "type": "string",
                        "description": "The list of fields to be updated. The fields available to be updated are\n'target_url', 'name', 'event_type', 'payload', 'http_headers', 'archived_date', 'is_archived'."
                    }
                },
                "description": "The request for a call to `WebhookService_UpdateWebhook` to update a webhook.",
                "required": [
                    "webhook",
                    "updateMask"
                ]
            },
            "v1UpdateWebhookResponse": {
                "type": "object",
                "properties": {
                    "webhook": {
                        "$ref": "#/components/schemas/v1Webhook"
                    }
                },
                "description": "The response of a call to `WebhookService_UpdateWebhook`. To archive a webhook, specify `archived_date`\nin the `update mask` as well as a non-null value for `archived_date` in the `webhook` object.\nTo unarchive a webhook, specify `archived_date` in the `update mask` and a `null` value for\n`archived_date` in the `webhook` object.",
                "required": [
                    "webhook"
                ]
            },
            "v1User": {
                "type": "object",
                "properties": {
                    "userId": {
                        "type": "string"
                    },
                    "userName": {
                        "type": "string"
                    },
                    "organizations": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1Organization"
                        }
                    }
                },
                "required": [
                    "userId",
                    "userName"
                ]
            },
            "v1UserDefinedFunction": {
                "type": "object",
                "properties": {
                    "userDefinedFunctionId": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "archivedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "userDefinedFunctionVersionId": {
                        "type": "string"
                    },
                    "version": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "description": {
                        "type": "string"
                    },
                    "changeMessage": {
                        "type": "string"
                    },
                    "userNotes": {
                        "type": "string"
                    },
                    "expression": {
                        "type": "string"
                    },
                    "functionInputs": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1FunctionInput"
                        }
                    },
                    "functionOutputType": {
                        "$ref": "#/components/schemas/v1FunctionDataType"
                    },
                    "functionDependencies": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1FunctionDependency"
                        }
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "createdByUserId": {
                        "type": "string"
                    },
                    "modifiedByUserId": {
                        "type": "string"
                    },
                    "metadata": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        }
                    },
                    "isArchived": {
                        "type": "boolean"
                    }
                },
                "required": [
                    "userDefinedFunctionId",
                    "name",
                    "userDefinedFunctionVersionId",
                    "version",
                    "description",
                    "changeMessage",
                    "userNotes",
                    "expression",
                    "functionInputs",
                    "functionDependencies",
                    "createdDate",
                    "modifiedDate",
                    "createdByUserId",
                    "modifiedByUserId",
                    "metadata",
                    "isArchived"
                ]
            },
            "v1ValidateExpressionRequest": {
                "type": "object",
                "properties": {
                    "expression": {
                        "$ref": "#/components/schemas/v1ExpressionRequest"
                    },
                    "mode": {
                        "$ref": "#/components/schemas/v1ExpressionMode"
                    }
                },
                "required": [
                    "expression",
                    "mode"
                ]
            },
            "v1ValidateExpressionResponse": {
                "type": "object",
                "properties": {
                    "error": {
                        "$ref": "#/components/schemas/v1ErrorValidatingExpressionResult"
                    },
                    "success": {
                        "$ref": "#/components/schemas/v1SuccessValidatingExpressionResult"
                    }
                }
            },
            "v1ValidateFamilyClientKeyRequest": {
                "type": "object",
                "properties": {
                    "clientKey": {
                        "type": "string"
                    }
                },
                "required": [
                    "clientKey"
                ]
            },
            "v1ValidateFamilyClientKeyResponse": {
                "type": "object",
                "properties": {
                    "success": {
                        "type": "boolean"
                    },
                    "errorMessage": {
                        "type": "string"
                    }
                }
            },
            "v1ValidateFamilyNameRequest": {
                "type": "object",
                "properties": {
                    "familyName": {
                        "type": "string"
                    }
                },
                "required": [
                    "familyName"
                ]
            },
            "v1ValidateFamilyNameResponse": {
                "type": "object",
                "properties": {
                    "success": {
                        "type": "boolean"
                    },
                    "errorMessage": {
                        "type": "string"
                    }
                }
            },
            "v1ValidateJsonRulesRequest": {
                "type": "object",
                "properties": {
                    "request": {
                        "$ref": "#/components/schemas/v1JsonRulesRequest"
                    }
                },
                "required": [
                    "request"
                ]
            },
            "v1ValidateJsonRulesResponse": {
                "type": "object",
                "properties": {
                    "response": {
                        "$ref": "#/components/schemas/v1JsonRulesResponse"
                    }
                },
                "required": [
                    "response"
                ]
            },
            "v1ValidatePolicyRequest": {
                "type": "object",
                "properties": {
                    "cedarPolicy": {
                        "type": "string"
                    }
                },
                "description": "The request for a call to `PolicyService_ValidatePolicy`.",
                "required": [
                    "cedarPolicy"
                ]
            },
            "v1ValidatePolicyResponse": {
                "type": "object",
                "properties": {
                    "valid": {
                        "type": "boolean"
                    },
                    "failureMessage": {
                        "type": "string"
                    }
                },
                "description": "The response of a call to `PolicyService_ValidatePolicy`.",
                "required": [
                    "valid"
                ]
            },
            "v1ValidateUserDefinedFunctionRequest": {
                "type": "object",
                "properties": {
                    "expression": {
                        "type": "string"
                    },
                    "functionInputs": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1FunctionInput"
                        }
                    }
                },
                "required": [
                    "expression",
                    "functionInputs"
                ]
            },
            "v1ValidateUserDefinedFunctionResponse": {
                "type": "object",
                "properties": {
                    "error": {
                        "$ref": "#/components/schemas/ValidateUserDefinedFunctionResponseErrorValidatingUserDefinedFunctionResult"
                    },
                    "success": {
                        "$ref": "#/components/schemas/ValidateUserDefinedFunctionResponseSuccessValidatingUserDefinedFunctionResult"
                    }
                }
            },
            "v1ValidationResult": {
                "type": "object",
                "properties": {
                    "ruleId": {
                        "type": "string"
                    },
                    "clientKey": {
                        "type": "string"
                    },
                    "assetExpressionValidationResults": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1AssetExpressionValidationResult"
                        },
                        "description": "If the expression is invalid for an asset, one or more AssetExpressionValidationResult will be returned. This may block\nsaving if the override_expression_validation flag is not set."
                    },
                    "error": {
                        "type": "string",
                        "description": "If the rule is invalid and unable to be saved, this will contain the error message. Expression errors will be returned in\nthe asset_expression_validation_results."
                    },
                    "ruleName": {
                        "type": "string"
                    }
                },
                "required": [
                    "assetExpressionValidationResults"
                ]
            },
            "v1VideoMetadata": {
                "type": "object",
                "properties": {
                    "height": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "width": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "durationSeconds": {
                        "type": "number",
                        "format": "float"
                    },
                    "timestamp": {
                        "type": "string",
                        "format": "date-time"
                    }
                }
            },
            "v1ViewHumanFriendlyRulesResponse": {
                "type": "object",
                "properties": {
                    "rulesJson": {
                        "type": "string"
                    }
                },
                "description": "Deprecated - use ViewJsonRulesResponse.",
                "required": [
                    "rulesJson"
                ]
            },
            "v1ViewJsonRulesResponse": {
                "type": "object",
                "properties": {
                    "rulesJson": {
                        "type": "string"
                    }
                },
                "required": [
                    "rulesJson"
                ]
            },
            "v1Webhook": {
                "type": "object",
                "properties": {
                    "webhookId": {
                        "type": "string"
                    },
                    "organizationId": {
                        "type": "string"
                    },
                    "targetUrl": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "eventType": {
                        "$ref": "#/components/schemas/v1WebhookEventType"
                    },
                    "payload": {
                        "type": "string"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "archivedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "createdByUserId": {
                        "type": "string"
                    },
                    "modifiedByUserId": {
                        "type": "string"
                    },
                    "httpHeaders": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1WebhookHttpHeader"
                        }
                    },
                    "isArchived": {
                        "type": "boolean"
                    }
                },
                "required": [
                    "webhookId",
                    "organizationId",
                    "targetUrl",
                    "name",
                    "eventType",
                    "createdDate",
                    "modifiedDate",
                    "createdByUserId",
                    "modifiedByUserId",
                    "httpHeaders",
                    "isArchived"
                ]
            },
            "v1WebhookActionConfiguration": {
                "type": "object",
                "properties": {
                    "webhookId": {
                        "type": "string"
                    }
                },
                "required": [
                    "webhookId"
                ]
            },
            "v1WebhookEventType": {
                "type": "string",
                "enum": [
                    "WEBHOOK_EVENT_TYPE_UNSPECIFIED",
                    "WEBHOOK_EVENT_TYPE_RULE_VIOLATION"
                ],
                "default": "WEBHOOK_EVENT_TYPE_UNSPECIFIED"
            },
            "v1WebhookHttpHeader": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "value": {
                        "type": "string"
                    }
                },
                "required": [
                    "name",
                    "value"
                ]
            },
            "v1WebhookLog": {
                "type": "object",
                "properties": {
                    "webhookLogId": {
                        "type": "string"
                    },
                    "webhookId": {
                        "type": "string"
                    },
                    "eventId": {
                        "type": "string"
                    },
                    "organizationId": {
                        "type": "string"
                    },
                    "status": {
                        "$ref": "#/components/schemas/v1WebhookLogStatus"
                    },
                    "payload": {
                        "type": "string"
                    },
                    "retryAttemptNumber": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "errorReason": {
                        "type": "string"
                    },
                    "sentDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "createdByUserId": {
                        "type": "string"
                    },
                    "modifiedByUserId": {
                        "type": "string"
                    }
                },
                "required": [
                    "webhookLogId",
                    "webhookId",
                    "eventId",
                    "organizationId",
                    "status",
                    "retryAttemptNumber",
                    "sentDate",
                    "createdDate",
                    "modifiedDate",
                    "createdByUserId",
                    "modifiedByUserId"
                ]
            },
            "v1WebhookLogStatus": {
                "type": "string",
                "enum": [
                    "WEBHOOK_LOG_STATUS_UNSPECIFIED",
                    "WEBHOOK_LOG_STATUS_SENT",
                    "WEBHOOK_LOG_STATUS_FAILED",
                    "WEBHOOK_LOG_STATUS_RETRYING"
                ],
                "default": "WEBHOOK_LOG_STATUS_UNSPECIFIED"
            },
            "v1WebhookSignatureKey": {
                "type": "object",
                "properties": {
                    "signatureKey": {
                        "type": "string"
                    },
                    "active": {
                        "type": "boolean"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "createdByUserId": {
                        "type": "string"
                    },
                    "modifiedByUserId": {
                        "type": "string"
                    }
                },
                "required": [
                    "signatureKey",
                    "active",
                    "createdDate",
                    "modifiedDate",
                    "createdByUserId",
                    "modifiedByUserId"
                ]
            },
            "v1WindowType": {
                "type": "object",
                "properties": {
                    "familyAlignmentId": {
                        "type": "string",
                        "description": "Alignment ID to use as the window boundary.\nWhen creating a family stat with a new Family, this field should contain the temporary_id\nfrom FamilyAlignment.family_alignment_id. Default to the window's T-0 alignment.\nThe service will resolve it to the actual alignment ID.\nWhen updating a family stat, this field must contain the actual family_alignment_id."
                    },
                    "duration": {
                        "type": "string",
                        "description": "Duration relative to the alignment used to compare the data. Defaults to 0 seconds."
                    }
                },
                "description": "WindowType represents a window boundary that can be either an alignment ID or a duration."
            },
            "v2AddUserToUserGroupResponse": {
                "type": "object"
            },
            "v2ApiKey": {
                "type": "object",
                "properties": {
                    "apiKeyId": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "createdByUserId": {
                        "type": "string"
                    },
                    "userId": {
                        "type": "string"
                    }
                },
                "required": [
                    "apiKeyId",
                    "name",
                    "createdDate",
                    "createdByUserId",
                    "userId"
                ]
            },
            "v2ApiKeyOrganizationResponse": {
                "type": "object",
                "properties": {
                    "organization": {
                        "$ref": "#/components/schemas/v1Organization"
                    }
                }
            },
            "v2BatchConfig": {
                "type": "object",
                "properties": {
                    "runName": {
                        "type": "string",
                        "description": "Shared run for all files. Both are optional. If neither is set, data is ingested without a run.\nRun information must be set here instead of the per file configs if a Run is desired."
                    },
                    "runId": {
                        "type": "string"
                    },
                    "assetName": {
                        "type": "string",
                        "description": "Default asset name for all files.\nThe asset name must be set here instead of the per file configs."
                    },
                    "defaultCsvConfig": {
                        "$ref": "#/components/schemas/v2CsvConfig"
                    },
                    "defaultTdmsConfig": {
                        "$ref": "#/components/schemas/v2TDMSConfig"
                    },
                    "defaultParquetConfig": {
                        "$ref": "#/components/schemas/v2ParquetConfig"
                    },
                    "defaultHdf5Config": {
                        "$ref": "#/components/schemas/v2Hdf5Config"
                    },
                    "defaultUlogConfig": {
                        "$ref": "#/components/schemas/v2UlogConfig"
                    },
                    "defaultMcapConfig": {
                        "$ref": "#/components/schemas/v2McapConfig"
                    },
                    "fileConfigs": {
                        "type": "object",
                        "additionalProperties": {
                            "$ref": "#/components/schemas/v2BatchFileConfig"
                        },
                        "description": "Files to import. Key is the filepath as it appears within the archive.\nOnly files listed here are imported; other archive files are ignored."
                    }
                }
            },
            "v2BatchFileConfig": {
                "type": "object",
                "properties": {
                    "type": {
                        "$ref": "#/components/schemas/v2DataTypeKey"
                    },
                    "csvConfig": {
                        "$ref": "#/components/schemas/v2CsvConfig"
                    },
                    "tdmsConfig": {
                        "$ref": "#/components/schemas/v2TDMSConfig"
                    },
                    "parquetConfig": {
                        "$ref": "#/components/schemas/v2ParquetConfig"
                    },
                    "hdf5Config": {
                        "$ref": "#/components/schemas/v2Hdf5Config"
                    },
                    "ulogConfig": {
                        "$ref": "#/components/schemas/v2UlogConfig"
                    },
                    "mcapConfig": {
                        "$ref": "#/components/schemas/v2McapConfig"
                    }
                }
            },
            "v2BatchResolveCalculatedChannelsRequest": {
                "type": "object",
                "properties": {
                    "requests": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v2ResolveCalculatedChannelRequest"
                        },
                        "description": "All calculated channels to resolve."
                    }
                },
                "description": "The request of a call to `CalculatedChannelService_BatchResolveCalculatedChannels`.",
                "required": [
                    "requests"
                ]
            },
            "v2BatchResolveCalculatedChannelsResponse": {
                "type": "object",
                "properties": {
                    "responses": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v2ResolveCalculatedChannelResponse"
                        },
                        "description": "All calculated channels that attempted resolution."
                    }
                },
                "description": "The response of a call to `CalculatedChannelService_BatchResolveCalculatedChannels`.",
                "required": [
                    "responses"
                ]
            },
            "v2CalculatedChannel": {
                "type": "object",
                "properties": {
                    "calculatedChannelId": {
                        "type": "string"
                    },
                    "organizationId": {
                        "type": "string"
                    },
                    "clientKey": {
                        "type": "string"
                    },
                    "archivedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "versionId": {
                        "type": "string"
                    },
                    "version": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "name": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "changeMessage": {
                        "type": "string"
                    },
                    "userNotes": {
                        "type": "string"
                    },
                    "units": {
                        "type": "string"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "calculatedChannelConfiguration": {
                        "$ref": "#/components/schemas/v2CalculatedChannelConfiguration"
                    },
                    "createdByUserId": {
                        "type": "string"
                    },
                    "modifiedByUserId": {
                        "type": "string"
                    },
                    "functionDependencies": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1FunctionDependency"
                        }
                    },
                    "metadata": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        }
                    },
                    "isArchived": {
                        "type": "boolean",
                        "description": "Whether the calculated channel is archived. This is inferred from whether archived_date is set."
                    },
                    "calculatedChannelDependencies": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/calculated_channelsv2CalculatedChannelDependency"
                        },
                        "description": "Calculated channels that this channel depends on."
                    },
                    "folderIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "Ids of the folders this calculated channel belongs to."
                    }
                },
                "required": [
                    "calculatedChannelId",
                    "organizationId",
                    "versionId",
                    "version",
                    "name",
                    "description",
                    "changeMessage",
                    "userNotes",
                    "createdDate",
                    "modifiedDate",
                    "calculatedChannelConfiguration",
                    "createdByUserId",
                    "modifiedByUserId",
                    "functionDependencies",
                    "metadata",
                    "isArchived",
                    "calculatedChannelDependencies"
                ]
            },
            "v2CalculatedChannelAbstractChannelReference": {
                "type": "object",
                "properties": {
                    "channelReference": {
                        "type": "string"
                    },
                    "channelIdentifier": {
                        "type": "string",
                        "title": "must use either a channel_identifier or a calculated_channel_reference, not both"
                    },
                    "calculatedChannelVersionId": {
                        "type": "string"
                    },
                    "calculatedChannel": {
                        "$ref": "#/components/schemas/v1ExpressionRequest"
                    }
                },
                "required": [
                    "channelReference"
                ]
            },
            "v2CalculatedChannelAssetConfiguration": {
                "type": "object",
                "properties": {
                    "allAssets": {
                        "type": "boolean"
                    },
                    "selection": {
                        "$ref": "#/components/schemas/CalculatedChannelAssetConfigurationAssetSelection"
                    }
                }
            },
            "v2CalculatedChannelConfiguration": {
                "type": "object",
                "properties": {
                    "assetConfiguration": {
                        "$ref": "#/components/schemas/v2CalculatedChannelAssetConfiguration"
                    },
                    "queryConfiguration": {
                        "$ref": "#/components/schemas/v2CalculatedChannelQueryConfiguration"
                    }
                },
                "required": [
                    "assetConfiguration",
                    "queryConfiguration"
                ]
            },
            "v2CalculatedChannelQueryConfiguration": {
                "type": "object",
                "properties": {
                    "sel": {
                        "$ref": "#/components/schemas/CalculatedChannelQueryConfigurationSel"
                    }
                }
            },
            "v2CalculatedChannelResolution": {
                "type": "object",
                "properties": {
                    "calculatedChannel": {
                        "$ref": "#/components/schemas/v2CalculatedChannel"
                    },
                    "resolved": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v2ResolvedCalculatedChannel"
                        },
                        "description": "All resolved calculated channels."
                    },
                    "unresolved": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v2UnresolvedCalculatedChannel"
                        },
                        "description": "All assets with any issues in resolution."
                    }
                },
                "required": [
                    "resolved",
                    "unresolved"
                ]
            },
            "v2CalculatedChannelValidationResult": {
                "type": "object",
                "properties": {
                    "assetId": {
                        "type": "string"
                    },
                    "assetName": {
                        "type": "string",
                        "title": "Only included if asset was named in the request"
                    },
                    "tagNames": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "title": "Includes all tags that have this asset"
                    },
                    "missingChannels": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "title": "Names of the channels that asset does not have"
                    }
                },
                "required": [
                    "assetId",
                    "tagNames",
                    "missingChannels"
                ]
            },
            "v2Ch10Config": {
                "type": "object",
                "properties": {
                    "assetName": {
                        "type": "string"
                    },
                    "runName": {
                        "type": "string"
                    },
                    "scaleValues": {
                        "type": "boolean"
                    }
                }
            },
            "v2CheckProtobufDescriptorCompatibilityRequest": {
                "type": "object",
                "properties": {
                    "protobufDescriptor": {
                        "$ref": "#/components/schemas/protobuf_descriptorsv2ProtobufDescriptor"
                    }
                }
            },
            "v2CheckProtobufDescriptorCompatibilityResponse": {
                "type": "object",
                "properties": {
                    "isValid": {
                        "type": "boolean"
                    },
                    "incompatibleProtobufDescriptorFields": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v2IncompatibleProtobufField"
                        }
                    }
                }
            },
            "v2CreateAdhocRunRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "description": "The name that will be assigned to the new run."
                    },
                    "description": {
                        "type": "string",
                        "description": "A description about the new run."
                    },
                    "startTime": {
                        "type": "string",
                        "format": "date-time",
                        "title": "The time at which data ingestion began for this new run. It must be before the `stop_time`"
                    },
                    "stopTime": {
                        "type": "string",
                        "format": "date-time",
                        "description": "The time at which data ingestion concluded for this new run."
                    },
                    "assetIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "A list of asset IDs to associate with the new run."
                    },
                    "tags": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "Tags to associate with the new run."
                    },
                    "metadata": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        },
                        "description": "The metadata values associated with this run."
                    },
                    "clientKey": {
                        "type": "string",
                        "description": "An arbitrary user-chosen key that uniquely identifies this run. Optional, though it is recommended to provide."
                    }
                },
                "description": "The request for a call to `RunService_CreateAdhocRun` to create an adhoc run.",
                "required": [
                    "name",
                    "description",
                    "startTime",
                    "stopTime",
                    "assetIds"
                ]
            },
            "v2CreateAdhocRunResponse": {
                "type": "object",
                "properties": {
                    "run": {
                        "$ref": "#/components/schemas/runsv2Run"
                    }
                },
                "description": "The response of a call to `RunService_CreateAdhocRun` containing the newly created adhoc run.",
                "required": [
                    "run"
                ]
            },
            "v2CreateApiKeyRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "description": "The name for the new ApiKey. Required."
                    },
                    "userId": {
                        "type": "string",
                        "description": "The id of the user the new key will authenticate as. Must equal the id of\nthe calling user; creating an API key on behalf of another user is no\nlonger supported and the service will return INVALID_ARGUMENT if the\nvalues differ. The field is retained for backwards compatibility with\nexisting clients and may be marked deprecated in a future revision."
                    }
                },
                "description": "The request for a call to ApiKeyService.CreateApiKey.",
                "required": [
                    "name",
                    "userId"
                ]
            },
            "v2CreateApiKeyResponse": {
                "type": "object",
                "properties": {
                    "apiKey": {
                        "$ref": "#/components/schemas/v2CreatedApiKey"
                    }
                },
                "required": [
                    "apiKey"
                ]
            },
            "v2CreateAutomaticRunAssociationForAssetsResponse": {
                "type": "object"
            },
            "v2CreateCalculatedChannelRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "userNotes": {
                        "type": "string"
                    },
                    "units": {
                        "type": "string"
                    },
                    "clientKey": {
                        "type": "string"
                    },
                    "calculatedChannelConfiguration": {
                        "$ref": "#/components/schemas/v2CalculatedChannelConfiguration"
                    },
                    "metadata": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        }
                    }
                },
                "required": [
                    "name",
                    "calculatedChannelConfiguration",
                    "metadata"
                ]
            },
            "v2CreateCalculatedChannelResponse": {
                "type": "object",
                "properties": {
                    "calculatedChannel": {
                        "$ref": "#/components/schemas/v2CalculatedChannel"
                    },
                    "inapplicableAssets": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v2CalculatedChannelValidationResult"
                        }
                    }
                },
                "required": [
                    "calculatedChannel",
                    "inapplicableAssets"
                ]
            },
            "v2CreateDataImportFromUploadRequest": {
                "type": "object",
                "properties": {
                    "csvConfig": {
                        "$ref": "#/components/schemas/v2CsvConfig"
                    },
                    "ch10Config": {
                        "$ref": "#/components/schemas/v2Ch10Config"
                    },
                    "tdmsConfig": {
                        "$ref": "#/components/schemas/v2TDMSConfig"
                    },
                    "parquetConfig": {
                        "$ref": "#/components/schemas/v2ParquetConfig"
                    },
                    "hdf5Config": {
                        "$ref": "#/components/schemas/v2Hdf5Config"
                    },
                    "batchConfig": {
                        "$ref": "#/components/schemas/v2BatchConfig"
                    },
                    "ulogConfig": {
                        "$ref": "#/components/schemas/v2UlogConfig"
                    },
                    "mcapConfig": {
                        "$ref": "#/components/schemas/v2McapConfig"
                    }
                }
            },
            "v2CreateDataImportFromUploadResponse": {
                "type": "object",
                "properties": {
                    "uploadUrl": {
                        "type": "string"
                    },
                    "dataImportId": {
                        "type": "string"
                    }
                }
            },
            "v2CreateDataImportFromUrlRequest": {
                "type": "object",
                "properties": {
                    "url": {
                        "type": "string",
                        "description": "The url to import. HTTP and S3 urls are supported.\nIf you need to import non-public S3 objects, please contact Sift to set that up."
                    },
                    "csvConfig": {
                        "$ref": "#/components/schemas/v2CsvConfig"
                    },
                    "ch10Config": {
                        "$ref": "#/components/schemas/v2Ch10Config"
                    },
                    "tdmsConfig": {
                        "$ref": "#/components/schemas/v2TDMSConfig"
                    },
                    "parquetConfig": {
                        "$ref": "#/components/schemas/v2ParquetConfig"
                    },
                    "hdf5Config": {
                        "$ref": "#/components/schemas/v2Hdf5Config"
                    },
                    "batchConfig": {
                        "$ref": "#/components/schemas/v2BatchConfig"
                    },
                    "ulogConfig": {
                        "$ref": "#/components/schemas/v2UlogConfig"
                    },
                    "mcapConfig": {
                        "$ref": "#/components/schemas/v2McapConfig"
                    }
                },
                "required": [
                    "url"
                ]
            },
            "v2CreateDataImportFromUrlResponse": {
                "type": "object",
                "properties": {
                    "dataImportId": {
                        "type": "string"
                    }
                }
            },
            "v2CreateRunRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "description": "The name that will be assigned to the new run."
                    },
                    "description": {
                        "type": "string",
                        "description": "A description about the new run."
                    },
                    "tags": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "Tags to associate with the new run."
                    },
                    "startTime": {
                        "type": "string",
                        "format": "date-time",
                        "description": "The time at which data ingestion begins for this new run. It must be before the `stop_time`, and it must\nbe provided if a `stop_time` is provided.\nImportant note: `start_time` will be automatically computed during data ingestion and will be set\nbased on the timestamp of the data for this run."
                    },
                    "stopTime": {
                        "type": "string",
                        "format": "date-time",
                        "description": "The time at which data ingestion for this new run concludes.\nImportant note: `stop_time` will be automatically computed during data ingestion and will be\nset based on the timestamp of the data for this run."
                    },
                    "organizationId": {
                        "type": "string",
                        "description": "An organization ID is only required if the user belongs to multiple organizations."
                    },
                    "clientKey": {
                        "type": "string",
                        "description": "An arbitrary user-chosen key that uniquely identifies this run. Optional, though it is recommended to provide."
                    },
                    "metadata": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1MetadataValue"
                        },
                        "description": "The metadata values associated with this run."
                    },
                    "createDefaultReport": {
                        "type": "boolean",
                        "description": "Whether to create a default report for this run. This facilitates getting the report ID for live rules that will be automatically created for this run which can streamline programatically creating Campaigns.\nDefaults to false if not specified (This default can be changed for your organization by Sift. Contact support to change this default behavior.)."
                    }
                },
                "description": "The request of a call to `RunService_CreateRuns` to create a new run.",
                "required": [
                    "name",
                    "description"
                ]
            },
            "v2CreateRunResponse": {
                "type": "object",
                "properties": {
                    "run": {
                        "$ref": "#/components/schemas/runsv2Run"
                    }
                },
                "required": [
                    "run"
                ]
            },
            "v2CreateUnitResponse": {
                "type": "object",
                "properties": {
                    "unit": {
                        "$ref": "#/components/schemas/unitv2Unit"
                    }
                },
                "required": [
                    "unit"
                ]
            },
            "v2CreateUserGroupRequest": {
                "type": "object",
                "properties": {
                    "userGroup": {
                        "$ref": "#/components/schemas/v2UserGroup"
                    }
                },
                "required": [
                    "userGroup"
                ]
            },
            "v2CreateUserGroupResponse": {
                "type": "object",
                "properties": {
                    "userGroup": {
                        "$ref": "#/components/schemas/v2UserGroup"
                    }
                },
                "required": [
                    "userGroup"
                ]
            },
            "v2CreatedApiKey": {
                "type": "object",
                "properties": {
                    "apiKeyId": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "key": {
                        "type": "string"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "createdByUserId": {
                        "type": "string"
                    },
                    "userId": {
                        "type": "string"
                    }
                },
                "title": "CreatedApiKey includes the key, which will only be returned on creation, so having a separate type makes the \"never return the key a second time\" semantics clear",
                "required": [
                    "apiKeyId",
                    "name",
                    "key",
                    "createdDate",
                    "createdByUserId",
                    "userId"
                ]
            },
            "v2CsvConfig": {
                "type": "object",
                "properties": {
                    "assetName": {
                        "type": "string"
                    },
                    "runName": {
                        "type": "string"
                    },
                    "runId": {
                        "type": "string",
                        "description": "The id of the run to add this data to. If set, `run_name` is ignored."
                    },
                    "firstDataRow": {
                        "type": "integer",
                        "format": "int64",
                        "description": "The first row to start reading as data. Can be used to skip header rows.\nThe first row in the file is 1."
                    },
                    "timeColumn": {
                        "$ref": "#/components/schemas/v2CsvTimeColumn"
                    },
                    "dataColumns": {
                        "type": "object",
                        "additionalProperties": {
                            "$ref": "#/components/schemas/commontypev1ChannelConfig"
                        },
                        "description": "A map from column number (1-indexed) to the channel configuration for that column."
                    },
                    "numRows": {
                        "type": "string",
                        "format": "uint64",
                        "description": "This will be read on upload from the file if not set."
                    },
                    "useEmbeddedConfig": {
                        "type": "boolean",
                        "description": "If true, the time and data column configuration is read from a config\nembedded in the file (written when the file was exported with\nembed_channel_configs). Any time_column/data_columns supplied here are\nignored and replaced by the embedded config."
                    }
                }
            },
            "v2CsvTimeColumn": {
                "type": "object",
                "properties": {
                    "columnNumber": {
                        "type": "integer",
                        "format": "int64",
                        "description": "The column number (1-indexed) of the time column."
                    },
                    "format": {
                        "$ref": "#/components/schemas/v2TimeFormat"
                    },
                    "relativeStartTime": {
                        "type": "string",
                        "format": "date-time"
                    }
                }
            },
            "v2DataImport": {
                "type": "object",
                "properties": {
                    "dataImportId": {
                        "type": "string"
                    },
                    "sourceUrl": {
                        "type": "string"
                    },
                    "status": {
                        "$ref": "#/components/schemas/v2DataImportStatus"
                    },
                    "errorMessage": {
                        "type": "string"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "csvConfig": {
                        "$ref": "#/components/schemas/v2CsvConfig"
                    },
                    "ch10Config": {
                        "$ref": "#/components/schemas/v2Ch10Config"
                    },
                    "tdmsConfig": {
                        "$ref": "#/components/schemas/v2TDMSConfig"
                    },
                    "parquetConfig": {
                        "$ref": "#/components/schemas/v2ParquetConfig"
                    },
                    "hdf5Config": {
                        "$ref": "#/components/schemas/v2Hdf5Config"
                    },
                    "batchConfig": {
                        "$ref": "#/components/schemas/v2BatchConfig"
                    },
                    "ulogConfig": {
                        "$ref": "#/components/schemas/v2UlogConfig"
                    },
                    "mcapConfig": {
                        "$ref": "#/components/schemas/v2McapConfig"
                    },
                    "runId": {
                        "type": "string",
                        "description": "The run id will be set if the data import ingests to a run once the run is available."
                    },
                    "reportId": {
                        "type": "string",
                        "description": "The report id will be set if the data import creates a report once the report is available."
                    },
                    "assetId": {
                        "type": "string"
                    },
                    "dataStartTime": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "dataStopTime": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "warningMessages": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "What the import left out, such as records it could not read. A data import can\nsucceed and still have warnings. The list may be trimmed; when it is, the last\nentry says how many were left off."
                    }
                },
                "required": [
                    "dataImportId",
                    "status",
                    "createdDate",
                    "modifiedDate",
                    "warningMessages"
                ]
            },
            "v2DataImportStatus": {
                "type": "string",
                "enum": [
                    "DATA_IMPORT_STATUS_UNSPECIFIED",
                    "DATA_IMPORT_STATUS_PENDING",
                    "DATA_IMPORT_STATUS_IN_PROGRESS",
                    "DATA_IMPORT_STATUS_SUCCEEDED",
                    "DATA_IMPORT_STATUS_FAILED"
                ],
                "default": "DATA_IMPORT_STATUS_UNSPECIFIED"
            },
            "v2DataTypeKey": {
                "type": "string",
                "enum": [
                    "DATA_TYPE_KEY_UNSPECIFIED",
                    "DATA_TYPE_KEY_CSV",
                    "DATA_TYPE_KEY_TDMS",
                    "DATA_TYPE_KEY_CH10",
                    "DATA_TYPE_KEY_PARQUET_FLATDATASET",
                    "DATA_TYPE_KEY_PARQUET_SINGLE_CHANNEL_PER_ROW",
                    "DATA_TYPE_KEY_HDF5",
                    "DATA_TYPE_KEY_ULOG",
                    "DATA_TYPE_KEY_MCAP"
                ],
                "default": "DATA_TYPE_KEY_UNSPECIFIED"
            },
            "v2DeleteApiKeyResponse": {
                "type": "object"
            },
            "v2DeleteRunResponse": {
                "type": "object",
                "description": "The response of a call to `RunService_DeleteRun`."
            },
            "v2DeleteUserGroupResponse": {
                "type": "object"
            },
            "v2DetectConfigRequest": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "string",
                        "format": "byte"
                    },
                    "type": {
                        "$ref": "#/components/schemas/v2DataTypeKey"
                    }
                }
            },
            "v2DetectConfigResponse": {
                "type": "object",
                "properties": {
                    "csvConfig": {
                        "$ref": "#/components/schemas/v2CsvConfig"
                    },
                    "parquetConfig": {
                        "$ref": "#/components/schemas/v2ParquetConfig"
                    },
                    "hdf5Config": {
                        "$ref": "#/components/schemas/v2Hdf5Config"
                    },
                    "tdmsConfig": {
                        "$ref": "#/components/schemas/v2TDMSConfig"
                    }
                }
            },
            "v2ErrorSummary": {
                "type": "object",
                "properties": {
                    "count": {
                        "type": "string",
                        "format": "uint64"
                    },
                    "assetName": {
                        "type": "string"
                    },
                    "minTimestamp": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "maxTimestamp": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "dlqParquetFileId": {
                        "type": "string"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "required": [
                    "count",
                    "minTimestamp",
                    "maxTimestamp",
                    "dlqParquetFileId",
                    "createdDate",
                    "modifiedDate"
                ]
            },
            "v2GetCalculatedChannelDependentsResponse": {
                "type": "object",
                "properties": {
                    "calculatedChannels": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v2CalculatedChannel"
                        }
                    },
                    "rules": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1Rule"
                        }
                    }
                },
                "description": "The response of a call to `CalculatedChannelService_GetCalculatedChannelDependents`.",
                "required": [
                    "calculatedChannels",
                    "rules"
                ]
            },
            "v2GetCalculatedChannelResponse": {
                "type": "object",
                "properties": {
                    "calculatedChannel": {
                        "$ref": "#/components/schemas/v2CalculatedChannel"
                    }
                },
                "required": [
                    "calculatedChannel"
                ]
            },
            "v2GetCalculatedChannelVersionsResponse": {
                "type": "object",
                "properties": {
                    "calculatedChannels": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v2CalculatedChannel"
                        }
                    }
                },
                "description": "The response of a call to `CalculatedChannelService_GetCalculatedChannelVersions`.",
                "required": [
                    "calculatedChannels"
                ]
            },
            "v2GetDataImportResponse": {
                "type": "object",
                "properties": {
                    "dataImport": {
                        "$ref": "#/components/schemas/v2DataImport"
                    }
                }
            },
            "v2GetMeResponse": {
                "type": "object",
                "properties": {
                    "userId": {
                        "type": "string"
                    },
                    "userEmail": {
                        "type": "string"
                    },
                    "organizations": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1Organization"
                        }
                    },
                    "isAdmin": {
                        "type": "boolean"
                    },
                    "permissions": {
                        "$ref": "#/components/schemas/v2Permissions"
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "hashBasedMessageAuthenticationCode": {
                        "type": "string"
                    }
                },
                "required": [
                    "userId",
                    "userEmail",
                    "organizations",
                    "isAdmin",
                    "permissions",
                    "createdDate"
                ]
            },
            "v2GetRunResponse": {
                "type": "object",
                "properties": {
                    "run": {
                        "$ref": "#/components/schemas/runsv2Run"
                    }
                },
                "description": "The response of a call to `RunService_GetRun` containing the requested run.",
                "required": [
                    "run"
                ]
            },
            "v2GetUserGroupResponse": {
                "type": "object",
                "properties": {
                    "userGroup": {
                        "$ref": "#/components/schemas/v2UserGroup"
                    }
                },
                "required": [
                    "userGroup"
                ]
            },
            "v2GetUserGroupsForAssetsResponse": {
                "type": "object",
                "properties": {
                    "userGroups": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v2UserGroup"
                        }
                    },
                    "roles": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v2Role"
                        }
                    }
                },
                "required": [
                    "userGroups",
                    "roles"
                ]
            },
            "v2GetUserResponse": {
                "type": "object",
                "properties": {
                    "user": {
                        "$ref": "#/components/schemas/v1User"
                    }
                }
            },
            "v2Hdf5Config": {
                "type": "object",
                "properties": {
                    "assetName": {
                        "type": "string"
                    },
                    "runName": {
                        "type": "string"
                    },
                    "runId": {
                        "type": "string",
                        "description": "The id of the run to add this data to. If set, `run_name` is ignored."
                    },
                    "data": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v2Hdf5DataConfig"
                        }
                    },
                    "timeFormat": {
                        "$ref": "#/components/schemas/v2TimeFormat"
                    },
                    "relativeStartTime": {
                        "type": "string",
                        "format": "date-time"
                    }
                }
            },
            "v2Hdf5DataConfig": {
                "type": "object",
                "properties": {
                    "timeDataset": {
                        "type": "string"
                    },
                    "timeIndex": {
                        "type": "string",
                        "format": "uint64"
                    },
                    "valueDataset": {
                        "type": "string"
                    },
                    "valueIndex": {
                        "type": "string",
                        "format": "uint64"
                    },
                    "channelConfig": {
                        "$ref": "#/components/schemas/commontypev1ChannelConfig"
                    },
                    "timeField": {
                        "type": "string",
                        "description": "For compound types, allow specifying which fields to use."
                    },
                    "valueField": {
                        "type": "string"
                    }
                }
            },
            "v2IncompatibleProtobufField": {
                "type": "object",
                "properties": {
                    "protobufDescriptorId": {
                        "type": "string"
                    },
                    "messageFullName": {
                        "type": "string"
                    },
                    "desiredFieldName": {
                        "type": "string"
                    },
                    "currentFieldName": {
                        "type": "string"
                    },
                    "fieldNumber": {
                        "type": "string"
                    },
                    "reason": {
                        "type": "string"
                    },
                    "details": {
                        "type": "string"
                    },
                    "fieldKind": {
                        "type": "string"
                    }
                }
            },
            "v2ListActiveUsersResponse": {
                "type": "object",
                "properties": {
                    "users": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1User"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "The response of a call to `UserService_ListActiveUsersResponse`."
            },
            "v2ListApiKeysResponse": {
                "type": "object",
                "properties": {
                    "apiKeys": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v2ApiKey"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "The result of a call to ApiKeyService.ListApiKeys.",
                "required": [
                    "apiKeys"
                ]
            },
            "v2ListCalculatedChannelVersionsResponse": {
                "type": "object",
                "properties": {
                    "calculatedChannelVersions": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v2CalculatedChannel"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "The response of a call to `CalculatedChannelService_ListCalculatedChannelVersions`.",
                "required": [
                    "calculatedChannelVersions"
                ]
            },
            "v2ListCalculatedChannelsResponse": {
                "type": "object",
                "properties": {
                    "calculatedChannels": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v2CalculatedChannel"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "The response of a call to `CalculatedChannelService_ListCalculatedChannels`.",
                "required": [
                    "calculatedChannels"
                ]
            },
            "v2ListDataImportsResponse": {
                "type": "object",
                "properties": {
                    "dataImports": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v2DataImport"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                }
            },
            "v2ListDlqErrorsResponse": {
                "type": "object",
                "properties": {
                    "errorSummaries": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v2ErrorSummary"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "required": [
                    "errorSummaries"
                ]
            },
            "v2ListResolvedCalculatedChannelsResponse": {
                "type": "object",
                "properties": {
                    "calculatedChannelResolutions": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v2CalculatedChannelResolution"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "required": [
                    "calculatedChannelResolutions"
                ]
            },
            "v2ListRolesResponse": {
                "type": "object",
                "properties": {
                    "roles": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v2Role"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                }
            },
            "v2ListRunsResponse": {
                "type": "object",
                "properties": {
                    "runs": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/runsv2Run"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "The response of a call to `RunService_ListRuns` containing requested runs.",
                "required": [
                    "runs"
                ]
            },
            "v2ListUnitsResponse": {
                "type": "object",
                "properties": {
                    "units": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/unitv2Unit"
                        }
                    },
                    "nextPageToken": {
                        "type": "string",
                        "description": "A token, which can be sent as `page_token` to retrieve the next page.\nIf this field is empty, there are no subsequent pages."
                    }
                },
                "required": [
                    "units"
                ]
            },
            "v2ListUserGroupsResponse": {
                "type": "object",
                "properties": {
                    "userGroups": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v2UserGroup"
                        }
                    },
                    "nextPageToken": {
                        "type": "string",
                        "description": "A token, which can be sent as `page_token` to retrieve the next page.\nIf this field is empty, there are no subsequent pages."
                    }
                },
                "required": [
                    "userGroups"
                ]
            },
            "v2ListUsersResponse": {
                "type": "object",
                "properties": {
                    "users": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v1User"
                        }
                    },
                    "nextPageToken": {
                        "type": "string"
                    }
                },
                "description": "The response of a call to `UserService_ListUsersResponse`."
            },
            "v2McapComplexTypesImportMode": {
                "type": "string",
                "enum": [
                    "MCAP_COMPLEX_TYPES_IMPORT_MODE_UNSPECIFIED",
                    "MCAP_COMPLEX_TYPES_IMPORT_MODE_IGNORE",
                    "MCAP_COMPLEX_TYPES_IMPORT_MODE_BOTH",
                    "MCAP_COMPLEX_TYPES_IMPORT_MODE_STRING",
                    "MCAP_COMPLEX_TYPES_IMPORT_MODE_BYTES"
                ],
                "default": "MCAP_COMPLEX_TYPES_IMPORT_MODE_UNSPECIFIED",
                "description": " - MCAP_COMPLEX_TYPES_IMPORT_MODE_UNSPECIFIED: Treated as MCAP_COMPLEX_TYPES_IMPORT_MODE_BOTH.\n - MCAP_COMPLEX_TYPES_IMPORT_MODE_IGNORE: Ignore variable-cardinality fields and do not ingest them.\n - MCAP_COMPLEX_TYPES_IMPORT_MODE_BOTH: Import variable-cardinality fields as both Arrow IPC bytes and JSON strings.\n - MCAP_COMPLEX_TYPES_IMPORT_MODE_STRING: Import variable-cardinality fields as only JSON strings.\n - MCAP_COMPLEX_TYPES_IMPORT_MODE_BYTES: Import variable-cardinality fields as only Arrow IPC bytes."
            },
            "v2McapConfig": {
                "type": "object",
                "properties": {
                    "assetName": {
                        "type": "string"
                    },
                    "runName": {
                        "type": "string"
                    },
                    "runId": {
                        "type": "string",
                        "description": "The id of the run to add this data to. If set, `run_name` is ignored."
                    },
                    "data": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v2McapDataConfig"
                        },
                        "description": "Channels to import. Empty imports all detected channels with their\ndefaults. If set, only the listed channels are imported, each with a\nrequired channel config."
                    },
                    "relativeStartTime": {
                        "type": "string",
                        "format": "date-time",
                        "description": "Log-start UTC, only for logs on a non-Unix epoch. When set, `log_time`\nis reinterpreted as elapsed nanoseconds from this start."
                    },
                    "metadataRecords": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "Metadata records to import as run metadata. Every key of each named\nrecord is stored as <record_name>.<key>. Empty imports none."
                    },
                    "parseErrorPolicy": {
                        "$ref": "#/components/schemas/v2McapParseErrorPolicy"
                    },
                    "complexTypesImportMode": {
                        "$ref": "#/components/schemas/v2McapComplexTypesImportMode"
                    }
                }
            },
            "v2McapDataConfig": {
                "type": "object",
                "properties": {
                    "topic": {
                        "type": "string",
                        "description": "The topic the channel comes from (e.g. \"/imu/data\")."
                    },
                    "ros2": {
                        "$ref": "#/components/schemas/v2McapRos2Selector"
                    },
                    "channelConfig": {
                        "$ref": "#/components/schemas/commontypev1ChannelConfig"
                    }
                }
            },
            "v2McapParseErrorPolicy": {
                "type": "string",
                "enum": [
                    "MCAP_PARSE_ERROR_POLICY_UNSPECIFIED",
                    "MCAP_PARSE_ERROR_POLICY_FAIL_ON_ERROR",
                    "MCAP_PARSE_ERROR_POLICY_IGNORE_ERROR"
                ],
                "default": "MCAP_PARSE_ERROR_POLICY_UNSPECIFIED",
                "description": " - MCAP_PARSE_ERROR_POLICY_UNSPECIFIED: Treated as MCAP_PARSE_ERROR_POLICY_FAIL_ON_ERROR.\n - MCAP_PARSE_ERROR_POLICY_FAIL_ON_ERROR: Fail the import on any recoverable parse error.\n - MCAP_PARSE_ERROR_POLICY_IGNORE_ERROR: Import what decoded. Skipped topics and records surface as warnings."
            },
            "v2McapRos2Selector": {
                "type": "object",
                "properties": {
                    "fieldPath": {
                        "type": "string",
                        "description": "The dot-delimited field path within the decoded message\n(e.g. \"orientation.x\", \"orientation_covariance[0]\")."
                    }
                }
            },
            "v2ParquetColumn": {
                "type": "object",
                "properties": {
                    "path": {
                        "type": "string"
                    },
                    "columnConfig": {
                        "$ref": "#/components/schemas/commontypev1ChannelConfig"
                    }
                }
            },
            "v2ParquetComplexTypesImportMode": {
                "type": "string",
                "enum": [
                    "PARQUET_COMPLEX_TYPES_IMPORT_MODE_UNSPECIFIED",
                    "PARQUET_COMPLEX_TYPES_IMPORT_MODE_IGNORE",
                    "PARQUET_COMPLEX_TYPES_IMPORT_MODE_BOTH",
                    "PARQUET_COMPLEX_TYPES_IMPORT_MODE_STRING",
                    "PARQUET_COMPLEX_TYPES_IMPORT_MODE_BYTES"
                ],
                "default": "PARQUET_COMPLEX_TYPES_IMPORT_MODE_UNSPECIFIED",
                "description": " - PARQUET_COMPLEX_TYPES_IMPORT_MODE_IGNORE: Ignore complex types and do not ingest them.\n - PARQUET_COMPLEX_TYPES_IMPORT_MODE_BOTH: Import complex types as both Arrow bytes and JSON strings.\n - PARQUET_COMPLEX_TYPES_IMPORT_MODE_STRING: Import complex types as only JSON strings.\n - PARQUET_COMPLEX_TYPES_IMPORT_MODE_BYTES: Import complex types as only Arrow bytes."
            },
            "v2ParquetConfig": {
                "type": "object",
                "properties": {
                    "assetName": {
                        "type": "string"
                    },
                    "runName": {
                        "type": "string"
                    },
                    "runId": {
                        "type": "string",
                        "description": "The id of the run to add this data to. If set, `run_name` is ignored."
                    },
                    "flatDataset": {
                        "$ref": "#/components/schemas/v2ParquetFlatDatasetConfig"
                    },
                    "singleChannelPerRow": {
                        "$ref": "#/components/schemas/v2ParquetSingleChannelPerRowConfig"
                    },
                    "footerOffset": {
                        "type": "string",
                        "format": "uint64"
                    },
                    "footerLength": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "complexTypesImportMode": {
                        "$ref": "#/components/schemas/v2ParquetComplexTypesImportMode"
                    }
                }
            },
            "v2ParquetDataColumn": {
                "type": "object",
                "properties": {
                    "path": {
                        "type": "string"
                    },
                    "channelConfig": {
                        "$ref": "#/components/schemas/commontypev1ChannelConfig"
                    }
                }
            },
            "v2ParquetFlatDatasetConfig": {
                "type": "object",
                "properties": {
                    "timeColumn": {
                        "$ref": "#/components/schemas/v2ParquetTimeColumn"
                    },
                    "dataColumns": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v2ParquetDataColumn"
                        }
                    },
                    "useEmbeddedConfig": {
                        "type": "boolean",
                        "description": "If true, the time and data column configuration is read from the config\nembedded in the file's Arrow field metadata (written when the file was\nexported with embed_channel_configs). Any time_column/data_columns supplied\nhere are ignored and replaced by the embedded config."
                    }
                }
            },
            "v2ParquetSingleChannelPerRowConfig": {
                "type": "object",
                "properties": {
                    "timeColumn": {
                        "$ref": "#/components/schemas/v2ParquetTimeColumn"
                    },
                    "columns": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v2ParquetColumn"
                        },
                        "description": "Detected columns."
                    },
                    "singleChannel": {
                        "$ref": "#/components/schemas/v2ParquetSingleChannelPerRowSingleChannelConfig"
                    },
                    "multiChannel": {
                        "$ref": "#/components/schemas/v2ParquetSingleChannelPerRowMultiChannelConfig"
                    }
                }
            },
            "v2ParquetSingleChannelPerRowMultiChannelConfig": {
                "type": "object",
                "properties": {
                    "namePath": {
                        "type": "string"
                    },
                    "dataPath": {
                        "type": "string"
                    },
                    "channels": {
                        "type": "object",
                        "additionalProperties": {
                            "$ref": "#/components/schemas/commontypev1ChannelConfig"
                        },
                        "description": "A map from names (from `name_path`) to the channel configuration for that name.\nNames without an entry are imported with the data column's data type and no\nother configuration."
                    }
                }
            },
            "v2ParquetSingleChannelPerRowSingleChannelConfig": {
                "type": "object",
                "properties": {
                    "dataPath": {
                        "type": "string"
                    },
                    "channel": {
                        "$ref": "#/components/schemas/commontypev1ChannelConfig"
                    }
                }
            },
            "v2ParquetTimeColumn": {
                "type": "object",
                "properties": {
                    "path": {
                        "type": "string"
                    },
                    "format": {
                        "$ref": "#/components/schemas/v2TimeFormat"
                    },
                    "relativeStartTime": {
                        "type": "string",
                        "format": "date-time"
                    }
                }
            },
            "v2PermissionResources": {
                "type": "object",
                "properties": {
                    "permissionResources": {
                        "type": "object",
                        "additionalProperties": {
                            "$ref": "#/components/schemas/v2Resources"
                        }
                    }
                },
                "required": [
                    "permissionResources"
                ]
            },
            "v2Permissions": {
                "type": "object",
                "properties": {
                    "organizationPermissionResources": {
                        "type": "object",
                        "additionalProperties": {
                            "$ref": "#/components/schemas/v2PermissionResources"
                        }
                    }
                },
                "required": [
                    "organizationPermissionResources"
                ]
            },
            "v2RemoveUserFromUserGroupResponse": {
                "type": "object"
            },
            "v2ResolveCalculatedChannelRequest": {
                "type": "object",
                "properties": {
                    "identifier": {
                        "$ref": "#/components/schemas/v1ResourceIdentifier"
                    },
                    "calculatedChannelConfiguration": {
                        "$ref": "#/components/schemas/v2CalculatedChannelConfiguration"
                    },
                    "organizationId": {
                        "type": "string",
                        "description": "This field is only required if your user belongs to multiple organizations."
                    },
                    "assets": {
                        "$ref": "#/components/schemas/v1NamedResources"
                    },
                    "run": {
                        "$ref": "#/components/schemas/v1ResourceIdentifier"
                    }
                },
                "description": "The request for a call to `CalculatedChannelService_ResolveCalculatedChannel` to get the all possible calculated channels.\n1) If the calculated channel has a selection of assets and tags then those assets will be used as a base and then filtered down by the given assets and assets from the run.\n2) If the calculated channel is enabled for all assets then:\n  a) If the request has run and assets from the run will be used as a base and then filtered down by the given assets.\n  b) If the request has run and no assets then those assets will be used.\n  c) If the request has only assets then those assets will be used.\nThe `organization_id` argument is only required if using `client_key` and the user belongs to multiple organizations."
            },
            "v2ResolveCalculatedChannelResponse": {
                "type": "object",
                "properties": {
                    "calculatedChannelId": {
                        "type": "string",
                        "description": "If provided in the request, the calculated channel resolved."
                    },
                    "resolved": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v2ResolvedCalculatedChannel"
                        },
                        "description": "All resolved calculated channels."
                    },
                    "unresolved": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v2UnresolvedCalculatedChannel"
                        },
                        "description": "All assets with any issues in resolution."
                    }
                },
                "description": "The response of a call to `CalculatedChannelService_ResolveCalculatedChannel`.",
                "required": [
                    "resolved",
                    "unresolved"
                ]
            },
            "v2ResolvedCalculatedChannel": {
                "type": "object",
                "properties": {
                    "assetName": {
                        "type": "string",
                        "description": "The name of the specific asset that was resolved."
                    },
                    "expressionRequest": {
                        "$ref": "#/components/schemas/v1ExpressionRequest"
                    },
                    "outputDataType": {
                        "$ref": "#/components/schemas/v1ChannelDataType"
                    },
                    "assetId": {
                        "type": "string"
                    }
                },
                "description": "A specific calculated channel including the asset and exact channels to query.",
                "required": [
                    "assetName",
                    "expressionRequest",
                    "outputDataType",
                    "assetId"
                ]
            },
            "v2Resources": {
                "type": "object",
                "properties": {
                    "assetIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "allAssets": {
                        "type": "boolean"
                    }
                }
            },
            "v2RetryDataImportResponse": {
                "type": "object"
            },
            "v2Role": {
                "type": "object",
                "properties": {
                    "roleId": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "roleOrder": {
                        "type": "integer",
                        "format": "int32"
                    }
                }
            },
            "v2StopRunRequest": {
                "type": "object",
                "properties": {
                    "runId": {
                        "type": "string"
                    }
                },
                "description": "The request for a call to `RunService_StopRun` to stop a run.",
                "required": [
                    "runId"
                ]
            },
            "v2StopRunResponse": {
                "type": "object",
                "description": "The response of a call to `RunService_StopRun` to stop a run."
            },
            "v2TDMSConfig": {
                "type": "object",
                "properties": {
                    "assetName": {
                        "type": "string"
                    },
                    "runName": {
                        "type": "string"
                    },
                    "startTimeOverride": {
                        "type": "string",
                        "format": "date-time",
                        "description": "Override the wf_start_time metadata field for all channels.\nUseful if your waveform channels have wf_increment but no wf_start_time (Veristand is guilty of this)."
                    },
                    "fileSize": {
                        "type": "string",
                        "format": "uint64",
                        "description": "The file size in bytes.\nIf the file has truncated chunks, this will be required to pass validation."
                    },
                    "runId": {
                        "type": "string",
                        "description": "The id of the run to add this data to. If set, `run_name` is ignored."
                    },
                    "data": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v2TdmsDataConfig"
                        },
                        "description": "If no data entries are present attempt to ingest everything relying\non the fallback method for any ambiguous channels."
                    },
                    "fallbackMethod": {
                        "$ref": "#/components/schemas/v2TdmsFallbackMethod"
                    },
                    "timeFormat": {
                        "$ref": "#/components/schemas/v2TimeFormat"
                    },
                    "relativeStartTime": {
                        "type": "string",
                        "format": "date-time",
                        "description": "Relative start time for channels using a non standard time channel."
                    },
                    "importFileProperties": {
                        "type": "boolean",
                        "description": "If true, will import TDMS file properties to the run as metadata.\nOnly valid if a run_name or run_id is set."
                    }
                }
            },
            "v2TagType": {
                "type": "string",
                "enum": [
                    "TAG_TYPE_UNSPECIFIED",
                    "TAG_TYPE_ANNOTATION",
                    "TAG_TYPE_ASSET",
                    "TAG_TYPE_CAMPAIGN",
                    "TAG_TYPE_REPORT",
                    "TAG_TYPE_REPORT_TEMPLATE",
                    "TAG_TYPE_RUN"
                ],
                "default": "TAG_TYPE_UNSPECIFIED"
            },
            "v2TdmsComplexComponent": {
                "type": "string",
                "enum": [
                    "TDMS_COMPLEX_COMPONENT_UNSPECIFIED",
                    "TDMS_COMPLEX_COMPONENT_REAL",
                    "TDMS_COMPLEX_COMPONENT_IMAGINARY"
                ],
                "default": "TDMS_COMPLEX_COMPONENT_UNSPECIFIED",
                "description": " - TDMS_COMPLEX_COMPONENT_UNSPECIFIED: Default is to select the real component."
            },
            "v2TdmsDataConfig": {
                "type": "object",
                "properties": {
                    "groupName": {
                        "type": "string",
                        "description": "The TDMS group name associated with this channel."
                    },
                    "channelName": {
                        "type": "string",
                        "description": "The TDMS channel name associated with this channel."
                    },
                    "channelConfig": {
                        "$ref": "#/components/schemas/commontypev1ChannelConfig"
                    },
                    "timeChannelName": {
                        "type": "string",
                        "description": "The time channel associated with this channel. If this is empty\nthen we assume it's a waveform channel with waveform properties."
                    },
                    "scaled": {
                        "type": "boolean",
                        "description": "Whether to import scaled or raw values. Defaults to True to import scaled values."
                    },
                    "complexComponent": {
                        "$ref": "#/components/schemas/v2TdmsComplexComponent"
                    }
                }
            },
            "v2TdmsFallbackMethod": {
                "type": "string",
                "enum": [
                    "TDMS_FALLBACK_METHOD_UNSPECIFIED",
                    "TDMS_FALLBACK_METHOD_FAIL_ON_ERROR",
                    "TDMS_FALLBACK_METHOD_IGNORE_ERROR"
                ],
                "default": "TDMS_FALLBACK_METHOD_UNSPECIFIED",
                "description": "The fallback method tells the importer how to treat channels without\nany timing information (i.e, waveform properties or time channels).\n\n - TDMS_FALLBACK_METHOD_FAIL_ON_ERROR: Fails the import if any specified channels have missing timing information.\n - TDMS_FALLBACK_METHOD_IGNORE_ERROR: Ignores channels without any timing information."
            },
            "v2TimeFormat": {
                "type": "string",
                "enum": [
                    "TIME_FORMAT_UNSPECIFIED",
                    "TIME_FORMAT_RELATIVE_NANOSECONDS",
                    "TIME_FORMAT_RELATIVE_MICROSECONDS",
                    "TIME_FORMAT_RELATIVE_MILLISECONDS",
                    "TIME_FORMAT_RELATIVE_SECONDS",
                    "TIME_FORMAT_RELATIVE_MINUTES",
                    "TIME_FORMAT_RELATIVE_HOURS",
                    "TIME_FORMAT_ABSOLUTE_RFC3339",
                    "TIME_FORMAT_ABSOLUTE_DATETIME",
                    "TIME_FORMAT_ABSOLUTE_UNIX_SECONDS",
                    "TIME_FORMAT_ABSOLUTE_UNIX_MILLISECONDS",
                    "TIME_FORMAT_ABSOLUTE_UNIX_MICROSECONDS",
                    "TIME_FORMAT_ABSOLUTE_UNIX_NANOSECONDS"
                ],
                "default": "TIME_FORMAT_UNSPECIFIED"
            },
            "v2UlogConfig": {
                "type": "object",
                "properties": {
                    "assetName": {
                        "type": "string"
                    },
                    "runName": {
                        "type": "string"
                    },
                    "runId": {
                        "type": "string",
                        "description": "The id of the run to add this data to. If set, `run_name` is ignored."
                    },
                    "data": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v2UlogDataConfig"
                        },
                        "description": "Channels to import. Empty imports all detected channels with their\ndefaults; if set, only the listed channels are imported, each with a\nrequired channel config."
                    },
                    "relativeStartTime": {
                        "type": "string",
                        "format": "date-time",
                        "description": "Log-start UTC. When set, it anchors the timeline and takes precedence over\nthe log's GPS fix; otherwise the GPS fix anchors the timeline. The import\nfails if neither is available."
                    },
                    "infoKeys": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "I/M message info keys to import as run metadata (stored as info.{key}). Empty: none."
                    },
                    "paramKeys": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "P parameter names to import as run metadata (stored as param.{name}). Empty: none."
                    },
                    "parseErrorPolicy": {
                        "$ref": "#/components/schemas/v2UlogParseErrorPolicy"
                    }
                }
            },
            "v2UlogDataConfig": {
                "type": "object",
                "properties": {
                    "messageName": {
                        "type": "string",
                        "description": "The ULog message name (e.g. \"sensor_accel\")."
                    },
                    "instance": {
                        "type": "string",
                        "format": "int64",
                        "description": "The message instance (e.g. 0)."
                    },
                    "fieldName": {
                        "type": "string",
                        "description": "The full ULog field name (e.g. \"x\", \"esc[0].v\"). Empty for log-message\nchannels (\"log_messages\", \"log_messages_{tag}\"), which set message_name\nto the channel name and instance to 0."
                    },
                    "channelConfig": {
                        "$ref": "#/components/schemas/commontypev1ChannelConfig"
                    }
                }
            },
            "v2UlogParseErrorPolicy": {
                "type": "string",
                "enum": [
                    "ULOG_PARSE_ERROR_POLICY_UNSPECIFIED",
                    "ULOG_PARSE_ERROR_POLICY_FAIL_ON_ERROR",
                    "ULOG_PARSE_ERROR_POLICY_IGNORE_ERROR"
                ],
                "default": "ULOG_PARSE_ERROR_POLICY_UNSPECIFIED",
                "description": " - ULOG_PARSE_ERROR_POLICY_UNSPECIFIED: Treated as ULOG_PARSE_ERROR_POLICY_FAIL_ON_ERROR.\n - ULOG_PARSE_ERROR_POLICY_FAIL_ON_ERROR: Fail the import on any recoverable parse error.\n - ULOG_PARSE_ERROR_POLICY_IGNORE_ERROR: Import what parsed; skipped records are logged."
            },
            "v2UnresolvedCalculatedChannel": {
                "type": "object",
                "properties": {
                    "assetName": {
                        "type": "string",
                        "description": "The name of the specific asset that was not resolved."
                    },
                    "errorMessage": {
                        "type": "string"
                    }
                },
                "description": "Any failure in resolution.",
                "required": [
                    "assetName",
                    "errorMessage"
                ]
            },
            "v2UpdateCalculatedChannelRequest": {
                "type": "object",
                "properties": {
                    "calculatedChannel": {
                        "$ref": "#/components/schemas/v2CalculatedChannel"
                    },
                    "updateMask": {
                        "type": "string",
                        "description": "The list of fields to be updated. The fields available to be updated are `name`, `description`, `units`, `metadata`,\n`query_configuration`, `archived_date`, `is_archived`, and `asset_configuration`."
                    },
                    "userNotes": {
                        "type": "string",
                        "description": "Optional user notes to describe changes."
                    }
                },
                "description": "The request for a call to `CalculatedChannelService_UpdateCalculatedChannel` to update a calculated channel. Updating a calculated\nchannel creates a new version of the calculated channel, leaving the previous untouched. If no update is deemed necessary, then the\nthe current version is returned. To archive calculated channel, specify `archived_date` in the `update mask` as well as a non-null\nvalue for `archived_date` in the `calculated_channel` object. To unarchive a calculated channel, specify `archived_date` in the\n`update mask` and a `null` value for `archived_date` in the `calculated_channel` object.",
                "required": [
                    "calculatedChannel",
                    "updateMask"
                ]
            },
            "v2UpdateCalculatedChannelResponse": {
                "type": "object",
                "properties": {
                    "calculatedChannel": {
                        "$ref": "#/components/schemas/v2CalculatedChannel"
                    },
                    "inapplicableAssets": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/v2CalculatedChannelValidationResult"
                        }
                    }
                },
                "description": "The response of a call to `CalculatedChannelService_UpdateCalculatedChannel`.",
                "required": [
                    "calculatedChannel",
                    "inapplicableAssets"
                ]
            },
            "v2UpdateRunRequest": {
                "type": "object",
                "properties": {
                    "run": {
                        "$ref": "#/components/schemas/runsv2Run"
                    },
                    "updateMask": {
                        "type": "string",
                        "description": "The list of fields to be updated. The fields available to be updated are `name`, `description`,\n`start_time`, `stop_time`, `is_pinned`, `client_key`, `tags`,`is_archived`,  and `metadata`.\nImportant Note: When updating the `start_time`, please be aware that if a subsequent data ingestion\ncommences for this run, the `start_time` will be automatically overwritten and set to the timestamp\ncorresponding to the beginning of the latest run. Additionally, `client_key` can only be set once either in run creation or in update.\nAny subsequent attempt to update `client_key` will result in an error."
                    }
                },
                "description": "The request for a call to `RunService_UpdateRun` to update an existing run.",
                "required": [
                    "run",
                    "updateMask"
                ]
            },
            "v2UpdateRunResponse": {
                "type": "object",
                "properties": {
                    "run": {
                        "$ref": "#/components/schemas/runsv2Run"
                    }
                },
                "description": "The response of a call to `RunService_UpdateRun` containing the updated run.",
                "required": [
                    "run"
                ]
            },
            "v2UpdateUserGroupResponse": {
                "type": "object",
                "properties": {
                    "userGroup": {
                        "$ref": "#/components/schemas/v2UserGroup"
                    }
                },
                "required": [
                    "userGroup"
                ]
            },
            "v2UpdateUserOrganizationActiveResponse": {
                "type": "object"
            },
            "v2UpdateUserUserGroupsResponse": {
                "type": "object"
            },
            "v2UserGroup": {
                "type": "object",
                "properties": {
                    "userGroupId": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "roleId": {
                        "type": "string"
                    },
                    "isDefault": {
                        "type": "boolean"
                    },
                    "resources": {
                        "$ref": "#/components/schemas/UserGroupResource"
                    },
                    "userIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "Member ids for this group. Each id is an actor: a user or a service account."
                    },
                    "isExternal": {
                        "type": "boolean"
                    }
                },
                "required": [
                    "name",
                    "isDefault",
                    "isExternal"
                ]
            },
            "v2ValidateRunFilterRequest": {
                "type": "object",
                "properties": {
                    "filter": {
                        "type": "string",
                        "description": "The CEL filter expression to validate."
                    }
                },
                "description": "The request for a call to `RunService_ValidateRunFilter`.",
                "required": [
                    "filter"
                ]
            },
            "v2ValidateRunFilterResponse": {
                "type": "object",
                "properties": {
                    "errorMessage": {
                        "type": "string",
                        "description": "Empty string if the filter is valid; otherwise contains the validation error message."
                    }
                },
                "description": "The response of a call to `RunService_ValidateRunFilter`.",
                "required": [
                    "errorMessage"
                ]
            },
            "v3BatchArchiveChannelsRequest": {
                "type": "object",
                "properties": {
                    "channelIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "description": "The request for a call to ChannelService_BatchArchiveChannels.",
                "required": [
                    "channelIds"
                ]
            },
            "v3BatchArchiveChannelsResponse": {
                "type": "object",
                "description": "The result of a call to ChannelService_BatchArchiveChannels."
            },
            "v3BatchUnarchiveChannelsRequest": {
                "type": "object",
                "properties": {
                    "channelIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "description": "The request for a call to ChannelService_BatchUnarchiveChannels.",
                "required": [
                    "channelIds"
                ]
            },
            "v3BatchUnarchiveChannelsResponse": {
                "type": "object",
                "description": "The result of a call to ChannelService_BatchUnarchiveChannels."
            },
            "v3UpdateChannelRequest": {
                "type": "object",
                "properties": {
                    "channel": {
                        "$ref": "#/components/schemas/channelsv3Channel"
                    },
                    "updateMask": {
                        "type": "string",
                        "description": "The list of fields to be updated. The fields available to be updated are `display_description`, `display_units`, `metadata`, and `active`."
                    }
                },
                "description": "The request for a call to ChannelService_UpdateChannel.",
                "required": [
                    "channel",
                    "updateMask"
                ]
            },
            "v3UpdateChannelResponse": {
                "type": "object",
                "properties": {
                    "channel": {
                        "$ref": "#/components/schemas/channelsv3Channel"
                    }
                },
                "description": "The result of a call to ChannelService_UpdateChannel.",
                "required": [
                    "channel"
                ]
            },
            "viewsv1CreateViewResponse": {
                "type": "object",
                "properties": {
                    "view": {
                        "$ref": "#/components/schemas/viewsv1View"
                    }
                }
            },
            "viewsv1DeleteViewResponse": {
                "type": "object"
            },
            "viewsv1GetViewResponse": {
                "type": "object",
                "properties": {
                    "view": {
                        "$ref": "#/components/schemas/viewsv1View"
                    }
                }
            },
            "viewsv1ListApplicableViewsResponse": {
                "type": "object",
                "properties": {
                    "views": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/viewsv1View"
                        }
                    },
                    "nextPageToken": {
                        "type": "string",
                        "description": "A token, which can be sent as `page_token` to retrieve the next page.\nIf this field is omitted, there are no subsequent pages."
                    }
                }
            },
            "viewsv1ListViewsResponse": {
                "type": "object",
                "properties": {
                    "views": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/viewsv1View"
                        }
                    },
                    "nextPageToken": {
                        "type": "string",
                        "description": "A token, which can be sent as `page_token` to retrieve the next page.\nIf this field is omitted, there are no subsequent pages."
                    }
                }
            },
            "viewsv1PinViewResponse": {
                "type": "object"
            },
            "viewsv1UnpinViewResponse": {
                "type": "object"
            },
            "viewsv1UpdateViewResponse": {
                "type": "object",
                "properties": {
                    "view": {
                        "$ref": "#/components/schemas/viewsv1View"
                    }
                }
            },
            "viewsv1View": {
                "type": "object",
                "properties": {
                    "viewId": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "axisGroups": {
                        "$ref": "#/components/schemas/viewsv1ViewAxisGroups"
                    },
                    "channels": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/viewsv1ViewChannel"
                        }
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "createdByUserId": {
                        "type": "string"
                    },
                    "organizationId": {
                        "type": "string"
                    },
                    "modifiedByUserId": {
                        "type": "string"
                    },
                    "isPinned": {
                        "type": "boolean"
                    }
                }
            },
            "viewsv1ViewAxisGroups": {
                "type": "object",
                "properties": {
                    "left": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "right": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "viewsv1ViewChannel": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "component": {
                        "type": "string"
                    },
                    "dataType": {
                        "type": "string"
                    },
                    "axisGroup": {
                        "type": "string"
                    },
                    "bitFieldNames": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "calculatedChannelConfig": {
                        "$ref": "#/components/schemas/viewsv1ViewChannelCalculatedChannelConfig"
                    }
                },
                "required": [
                    "name",
                    "component",
                    "dataType"
                ]
            },
            "viewsv1ViewChannelCalculatedChannelConfig": {
                "type": "object",
                "properties": {
                    "channelKey": {
                        "type": "string"
                    },
                    "channelReferences": {
                        "type": "object",
                        "additionalProperties": {
                            "$ref": "#/components/schemas/ChannelCalculatedChannelConfigChannelReference"
                        }
                    },
                    "expression": {
                        "type": "string"
                    },
                    "unit": {
                        "type": "string"
                    }
                },
                "required": [
                    "channelKey",
                    "channelReferences",
                    "expression",
                    "unit"
                ]
            },
            "viewsv2CreateViewRequest": {
                "type": "object",
                "properties": {
                    "view": {
                        "$ref": "#/components/schemas/viewsv2View"
                    }
                },
                "required": [
                    "view"
                ]
            },
            "viewsv2CreateViewResponse": {
                "type": "object",
                "properties": {
                    "view": {
                        "$ref": "#/components/schemas/viewsv2View"
                    }
                }
            },
            "viewsv2DeleteViewResponse": {
                "type": "object"
            },
            "viewsv2GetViewResponse": {
                "type": "object",
                "properties": {
                    "view": {
                        "$ref": "#/components/schemas/viewsv2View"
                    }
                }
            },
            "viewsv2ListApplicableViewsResponse": {
                "type": "object",
                "properties": {
                    "views": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/viewsv2View"
                        }
                    },
                    "nextPageToken": {
                        "type": "string",
                        "description": "A token, which can be sent as `page_token` to retrieve the next page.\nIf this field is omitted, there are no subsequent pages."
                    }
                }
            },
            "viewsv2ListViewsResponse": {
                "type": "object",
                "properties": {
                    "views": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/viewsv2View"
                        }
                    },
                    "nextPageToken": {
                        "type": "string",
                        "description": "A token, which can be sent as `page_token` to retrieve the next page.\nIf this field is omitted, there are no subsequent pages."
                    }
                }
            },
            "viewsv2PinViewResponse": {
                "type": "object"
            },
            "viewsv2UnpinViewResponse": {
                "type": "object"
            },
            "viewsv2UpdateViewResponse": {
                "type": "object",
                "properties": {
                    "view": {
                        "$ref": "#/components/schemas/viewsv2View"
                    }
                }
            },
            "viewsv2View": {
                "type": "object",
                "properties": {
                    "viewId": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "axisGroups": {
                        "$ref": "#/components/schemas/viewsv2ViewAxisGroups"
                    },
                    "channels": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/viewsv2ViewChannel"
                        }
                    },
                    "createdDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "modifiedDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "createdByUserId": {
                        "type": "string"
                    },
                    "modifiedByUserId": {
                        "type": "string"
                    },
                    "isPinned": {
                        "type": "boolean"
                    }
                }
            },
            "viewsv2ViewAxisGroups": {
                "type": "object",
                "properties": {
                    "left": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "right": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "viewsv2ViewChannel": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "dataType": {
                        "type": "string"
                    },
                    "axisGroup": {
                        "type": "string"
                    },
                    "bitFieldNames": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "calculatedChannelConfig": {
                        "$ref": "#/components/schemas/viewsv2ViewChannelCalculatedChannelConfig"
                    }
                },
                "required": [
                    "name",
                    "dataType"
                ]
            },
            "viewsv2ViewChannelCalculatedChannelConfig": {
                "type": "object",
                "properties": {
                    "channelKey": {
                        "type": "string"
                    },
                    "channelReferences": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "string"
                        }
                    },
                    "expression": {
                        "type": "string"
                    },
                    "unit": {
                        "type": "string"
                    }
                },
                "required": [
                    "channelKey",
                    "channelReferences",
                    "expression",
                    "unit"
                ]
            }
        },
        "securitySchemes": {
            "BearerAuth": {
                "type": "http",
                "scheme": "bearer",
                "bearerFormat": "JWT"
            }
        }
    },
    "security": [
        {
            "BearerAuth": []
        }
    ],
    "servers": [
        {
            "url": "https://api.siftstack.com",
            "description": "Production"
        },
        {
            "url": "https://gov.api.siftstack.com",
            "description": "Gov"
        }
    ]
}
