{
  "components": {
    "schemas": {
      "c1.api.a2ui.v1.A2UIComponent": {
        "description": "A2UIComponent - typed discriminated union for UI components.\n Uses oneof for proper TypeScript discrimination.\n\nThis message contains a oneof named component. Only a single field of the following list may be set at a time:\n  - text\n  - textField\n  - checkBox\n  - choicePicker\n  - dateTimeInput\n  - slider\n  - progressBar\n  - button\n  - row\n  - column\n  - card\n  - divider\n  - c1StatusIndicator\n  - c1CodeBlock\n  - c1ResourcePicker\n  - c1DurationPicker\n  - c1TodoList\n  - c1SlackNotifications\n  - c1MsTeamsNotifications\n  - c1ConnectorSyncProgress\n  - c1ConnectorConfigForm\n  - c1OnboardingWelcome\n  - c1OnboardingPlan\n  - c1ConnectorSyncDetail\n  - c1Chart\n  - c1MetricCards\n  - c1Table\n  - c1AppUserPicker\n  - c1CredentialOfferingPicker\n",
        "properties": {
          "button": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.ButtonComponent"
              },
              {
                "type": "null"
              }
            ]
          },
          "c1AppUserPicker": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.C1AppUserPickerComponent"
              },
              {
                "type": "null"
              }
            ]
          },
          "c1Chart": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.C1ChartComponent"
              },
              {
                "type": "null"
              }
            ]
          },
          "c1CodeBlock": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.C1CodeBlockComponent"
              },
              {
                "type": "null"
              }
            ]
          },
          "c1ConnectorConfigForm": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.C1ConnectorConfigFormComponent"
              },
              {
                "type": "null"
              }
            ]
          },
          "c1ConnectorSyncDetail": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.C1ConnectorSyncDetailComponent"
              },
              {
                "type": "null"
              }
            ]
          },
          "c1ConnectorSyncProgress": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.C1ConnectorSyncProgressComponent"
              },
              {
                "type": "null"
              }
            ]
          },
          "c1CredentialOfferingPicker": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.C1CredentialOfferingPickerComponent"
              },
              {
                "type": "null"
              }
            ]
          },
          "c1DurationPicker": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.C1DurationPickerComponent"
              },
              {
                "type": "null"
              }
            ]
          },
          "c1MetricCards": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.C1MetricCardsComponent"
              },
              {
                "type": "null"
              }
            ]
          },
          "c1MsTeamsNotifications": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.C1MSTeamsNotificationsComponent"
              },
              {
                "type": "null"
              }
            ]
          },
          "c1OnboardingPlan": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.C1OnboardingPlanComponent"
              },
              {
                "type": "null"
              }
            ]
          },
          "c1OnboardingWelcome": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.C1OnboardingWelcomeComponent"
              },
              {
                "type": "null"
              }
            ]
          },
          "c1ResourcePicker": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.C1ResourcePickerComponent"
              },
              {
                "type": "null"
              }
            ]
          },
          "c1SlackNotifications": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.C1SlackNotificationsComponent"
              },
              {
                "type": "null"
              }
            ]
          },
          "c1StatusIndicator": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.C1StatusIndicatorComponent"
              },
              {
                "type": "null"
              }
            ]
          },
          "c1Table": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.C1TableComponent"
              },
              {
                "type": "null"
              }
            ]
          },
          "c1TodoList": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.C1TodoListComponent"
              },
              {
                "type": "null"
              }
            ]
          },
          "card": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.CardComponent"
              },
              {
                "type": "null"
              }
            ]
          },
          "checkBox": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.CheckBoxComponent"
              },
              {
                "type": "null"
              }
            ]
          },
          "choicePicker": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.ChoicePickerComponent"
              },
              {
                "type": "null"
              }
            ]
          },
          "column": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.ColumnComponent"
              },
              {
                "type": "null"
              }
            ]
          },
          "dateTimeInput": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DateTimeInputComponent"
              },
              {
                "type": "null"
              }
            ]
          },
          "divider": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DividerComponent"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "progressBar": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.ProgressBarComponent"
              },
              {
                "type": "null"
              }
            ]
          },
          "row": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.RowComponent"
              },
              {
                "type": "null"
              }
            ]
          },
          "slider": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.SliderComponent"
              },
              {
                "type": "null"
              }
            ]
          },
          "text": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.TextComponent"
              },
              {
                "type": "null"
              }
            ]
          },
          "textField": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.TextFieldComponent"
              },
              {
                "type": "null"
              }
            ]
          },
          "weight": {
            "description": "The weight field.",
            "format": "int32",
            "type": "integer"
          }
        },
        "title": "A 2 Ui Component",
        "type": "object",
        "x-speakeasy-name-override": "A2UIComponent"
      },
      "c1.api.a2ui.v1.A2UIProvenanceObject": {
        "description": "A2UIProvenanceObject names one record a step referred to by id.",
        "properties": {
          "displayName": {
            "description": "Empty when the record's type has no name to resolve, or the record is\n gone. The id then stands alone rather than the whole row being dropped.",
            "type": "string"
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "recordType": {
            "description": "Not always the step's own type: a step over grants can be narrowed to one\n app, and the app is the record worth naming.",
            "enum": [
              "A2UI_PROVENANCE_RECORD_TYPE_UNSPECIFIED",
              "A2UI_PROVENANCE_RECORD_TYPE_APP",
              "A2UI_PROVENANCE_RECORD_TYPE_USER",
              "A2UI_PROVENANCE_RECORD_TYPE_GRANT",
              "A2UI_PROVENANCE_RECORD_TYPE_APP_ENTITLEMENT",
              "A2UI_PROVENANCE_RECORD_TYPE_APP_USER",
              "A2UI_PROVENANCE_RECORD_TYPE_APP_RESOURCE",
              "A2UI_PROVENANCE_RECORD_TYPE_APP_RESOURCE_TYPE",
              "A2UI_PROVENANCE_RECORD_TYPE_TASK",
              "A2UI_PROVENANCE_RECORD_TYPE_POLICY",
              "A2UI_PROVENANCE_RECORD_TYPE_CONNECTOR",
              "A2UI_PROVENANCE_RECORD_TYPE_ACCESS_REVIEW",
              "A2UI_PROVENANCE_RECORD_TYPE_ACCESS_REVIEW_TEMPLATE",
              "A2UI_PROVENANCE_RECORD_TYPE_ACCESS_REVIEW_SELECTION",
              "A2UI_PROVENANCE_RECORD_TYPE_CONFLICT_MONITOR",
              "A2UI_PROVENANCE_RECORD_TYPE_ACCESS_VIOLATION",
              "A2UI_PROVENANCE_RECORD_TYPE_REQUEST_CATALOG",
              "A2UI_PROVENANCE_RECORD_TYPE_WEBHOOK",
              "A2UI_PROVENANCE_RECORD_TYPE_DIRECTORY",
              "A2UI_PROVENANCE_RECORD_TYPE_PROFILE_TYPE",
              "A2UI_PROVENANCE_RECORD_TYPE_ROLE_BINDING",
              "A2UI_PROVENANCE_RECORD_TYPE_AUTOMATION_EXECUTION",
              "A2UI_PROVENANCE_RECORD_TYPE_AUTOMATION_EXECUTION_STEP",
              "A2UI_PROVENANCE_RECORD_TYPE_FINDING",
              "A2UI_PROVENANCE_RECORD_TYPE_METRIC",
              "A2UI_PROVENANCE_RECORD_TYPE_AUTOMATION",
              "A2UI_PROVENANCE_RECORD_TYPE_GRANT_HISTORY",
              "A2UI_PROVENANCE_RECORD_TYPE_GRANT_REASON",
              "A2UI_PROVENANCE_RECORD_TYPE_APP_OWNER"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "A 2 Ui Provenance Object",
        "type": "object",
        "x-speakeasy-name-override": "A2UIProvenanceObject"
      },
      "c1.api.a2ui.v1.A2UIProvenanceSource": {
        "description": "A2UIProvenanceSource is one self-reported source from a reporting component:\n what a chart or table says it was drawn from, and how many rows fed it.",
        "properties": {
          "componentId": {
            "description": "The componentId field.",
            "type": "string"
          },
          "count": {
            "description": "The count field.",
            "format": "int64",
            "type": "string"
          },
          "kind": {
            "description": "The kind field.",
            "type": "string"
          },
          "label": {
            "description": "The label field.",
            "type": "string"
          },
          "matchedToolCall": {
            "deprecated": true,
            "description": "Deprecated: always empty. See verified.",
            "type": "string"
          },
          "ref": {
            "description": "The ref field.",
            "type": "string"
          },
          "verified": {
            "deprecated": true,
            "description": "Deprecated: always false. Superseded by\n A2UIServiceGetSurfaceProvenanceResponse.steps, which reports what the\n program did rather than judging it.",
            "type": "boolean"
          }
        },
        "title": "A 2 Ui Provenance Source",
        "type": "object",
        "x-speakeasy-name-override": "A2UIProvenanceSource"
      },
      "c1.api.a2ui.v1.A2UIProvenanceStep": {
        "description": "A2UIProvenanceStep is one thing the report's program did. Steps are returned\n in the order the program performs them.",
        "properties": {
          "objects": {
            "description": "The specific records this step named. Empty when the step names none, and\n withheld wholesale when step_objects_visible is false.",
            "items": {
              "$ref": "#/components/schemas/c1.api.a2ui.v1.A2UIProvenanceObject"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "operation": {
            "description": "The operation field.",
            "enum": [
              "A2UI_PROVENANCE_OPERATION_UNSPECIFIED",
              "A2UI_PROVENANCE_OPERATION_LOOKED_UP",
              "A2UI_PROVENANCE_OPERATION_COUNTED",
              "A2UI_PROVENANCE_OPERATION_FETCHED_RECORD",
              "A2UI_PROVENANCE_OPERATION_SEARCHED",
              "A2UI_PROVENANCE_OPERATION_READ_TREND",
              "A2UI_PROVENANCE_OPERATION_CREATED",
              "A2UI_PROVENANCE_OPERATION_UPDATED",
              "A2UI_PROVENANCE_OPERATION_DELETED",
              "A2UI_PROVENANCE_OPERATION_RAN_PROGRAM",
              "A2UI_PROVENANCE_OPERATION_BUILT_REPORT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "recordType": {
            "description": "The recordType field.",
            "enum": [
              "A2UI_PROVENANCE_RECORD_TYPE_UNSPECIFIED",
              "A2UI_PROVENANCE_RECORD_TYPE_APP",
              "A2UI_PROVENANCE_RECORD_TYPE_USER",
              "A2UI_PROVENANCE_RECORD_TYPE_GRANT",
              "A2UI_PROVENANCE_RECORD_TYPE_APP_ENTITLEMENT",
              "A2UI_PROVENANCE_RECORD_TYPE_APP_USER",
              "A2UI_PROVENANCE_RECORD_TYPE_APP_RESOURCE",
              "A2UI_PROVENANCE_RECORD_TYPE_APP_RESOURCE_TYPE",
              "A2UI_PROVENANCE_RECORD_TYPE_TASK",
              "A2UI_PROVENANCE_RECORD_TYPE_POLICY",
              "A2UI_PROVENANCE_RECORD_TYPE_CONNECTOR",
              "A2UI_PROVENANCE_RECORD_TYPE_ACCESS_REVIEW",
              "A2UI_PROVENANCE_RECORD_TYPE_ACCESS_REVIEW_TEMPLATE",
              "A2UI_PROVENANCE_RECORD_TYPE_ACCESS_REVIEW_SELECTION",
              "A2UI_PROVENANCE_RECORD_TYPE_CONFLICT_MONITOR",
              "A2UI_PROVENANCE_RECORD_TYPE_ACCESS_VIOLATION",
              "A2UI_PROVENANCE_RECORD_TYPE_REQUEST_CATALOG",
              "A2UI_PROVENANCE_RECORD_TYPE_WEBHOOK",
              "A2UI_PROVENANCE_RECORD_TYPE_DIRECTORY",
              "A2UI_PROVENANCE_RECORD_TYPE_PROFILE_TYPE",
              "A2UI_PROVENANCE_RECORD_TYPE_ROLE_BINDING",
              "A2UI_PROVENANCE_RECORD_TYPE_AUTOMATION_EXECUTION",
              "A2UI_PROVENANCE_RECORD_TYPE_AUTOMATION_EXECUTION_STEP",
              "A2UI_PROVENANCE_RECORD_TYPE_FINDING",
              "A2UI_PROVENANCE_RECORD_TYPE_METRIC",
              "A2UI_PROVENANCE_RECORD_TYPE_AUTOMATION",
              "A2UI_PROVENANCE_RECORD_TYPE_GRANT_HISTORY",
              "A2UI_PROVENANCE_RECORD_TYPE_GRANT_REASON",
              "A2UI_PROVENANCE_RECORD_TYPE_APP_OWNER"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "A 2 Ui Provenance Step",
        "type": "object",
        "x-speakeasy-name-override": "A2UIProvenanceStep"
      },
      "c1.api.a2ui.v1.A2UIProvenanceToolCall": {
        "description": "A2UIProvenanceToolCall is one tool call extracted from the transcript.",
        "properties": {
          "calledAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "inputDigest": {
            "description": "Leading characters of the tool input, whitespace-collapsed.",
            "type": "string"
          },
          "toolName": {
            "description": "The toolName field.",
            "type": "string"
          }
        },
        "title": "A 2 Ui Provenance Tool Call",
        "type": "object",
        "x-speakeasy-name-override": "A2UIProvenanceToolCall"
      },
      "c1.api.a2ui.v1.A2UIReportEditTarget": {
        "description": "The A2UIReportEditTarget message.",
        "properties": {
          "appliedRunId": {
            "description": "Present after this edit result has been durably applied.",
            "type": "string"
          },
          "expectedProgramId": {
            "description": "The expectedProgramId field.",
            "type": "string"
          },
          "reportId": {
            "description": "The reportId field.",
            "type": "string"
          }
        },
        "title": "A 2 Ui Report Edit Target",
        "type": "object",
        "x-speakeasy-name-override": "A2UIReportEditTarget"
      },
      "c1.api.a2ui.v1.A2UIServiceCreateSurfaceFeedbackRequestInput": {
        "description": "A2UIServiceCreateSurfaceFeedbackRequest creates feedback for a surface.",
        "properties": {
          "conversationId": {
            "description": "The conversationId field.",
            "type": "string"
          },
          "sentiment": {
            "description": "The sentiment field.",
            "enum": [
              "A2UI_SURFACE_FEEDBACK_SENTIMENT_UNSPECIFIED",
              "A2UI_SURFACE_FEEDBACK_SENTIMENT_POSITIVE",
              "A2UI_SURFACE_FEEDBACK_SENTIMENT_NEGATIVE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "text": {
            "description": "The text field.",
            "type": "string"
          }
        },
        "title": "A 2 Ui Service Create Surface Feedback Request",
        "type": "object",
        "x-speakeasy-name-override": "A2UIServiceCreateSurfaceFeedbackRequest"
      },
      "c1.api.a2ui.v1.A2UIServiceCreateSurfaceFeedbackResponse": {
        "description": "A2UIServiceCreateSurfaceFeedbackResponse returns the created feedback.",
        "properties": {
          "feedback": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.A2UISurfaceFeedback"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "A 2 Ui Service Create Surface Feedback Response",
        "type": "object",
        "x-speakeasy-name-override": "A2UIServiceCreateSurfaceFeedbackResponse"
      },
      "c1.api.a2ui.v1.A2UIServiceGetSurfaceProvenanceResponse": {
        "description": "A2UIServiceGetSurfaceProvenanceResponse returns what a surface was built\n from: the steps its program ran, and the sources its components report.",
        "properties": {
          "programCommitId": {
            "description": "The program's identity: code mode invokes by explicit commit, so the commit\n — not the function — is what a refresh re-executes.",
            "type": "string"
          },
          "programFunctionId": {
            "description": "The program that produced a reporting surface. Flat rather than a nested\n ref: these five fields are read together by one drawer and nothing else,\n and a saved report's ProgramRef is the type worth converging on later.\n All empty for a surface carrying no report components, and for reports\n emitted before the report-program requirement was enabled for the tenant.",
            "type": "string"
          },
          "programInput": {
            "description": "The JSON parameters the program ran with. Empty when the invocation has aged\n out of retention.",
            "type": "string"
          },
          "programInvocationId": {
            "description": "The run that produced this surface.",
            "type": "string"
          },
          "programSource": {
            "description": "The program's source, read from the pinned commit. Empty when the commit has\n aged out of code-mode retention — the report still renders, but what\n produced it is no longer recoverable.",
            "type": "string"
          },
          "sources": {
            "description": "The sources field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.a2ui.v1.A2UIProvenanceSource"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "stepObjectsVisible": {
            "description": "Whether the caller may see the ids each step named. False withholds every\n A2UIProvenanceStep.objects on the same boundary that withholds\n program_source: those ids are the program's parameters by another name.",
            "type": "boolean"
          },
          "steps": {
            "description": "Everything the surface's program did, in the order it does it.",
            "items": {
              "$ref": "#/components/schemas/c1.api.a2ui.v1.A2UIProvenanceStep"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "stepsAvailable": {
            "description": "False when neither the pinned program nor the conversation transcript could\n be read, so no record of what was looked at survives. Distinguishes that\n from a record that was read and genuinely contains no steps.",
            "type": "boolean"
          },
          "toolCalls": {
            "deprecated": true,
            "description": "Deprecated: raw tool names, superseded by steps. Still populated for\n clients on the previous shape.",
            "items": {
              "$ref": "#/components/schemas/c1.api.a2ui.v1.A2UIProvenanceToolCall"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "transcriptAvailable": {
            "description": "False when the backing session or its transcript steps are gone.",
            "type": "boolean"
          }
        },
        "title": "A 2 Ui Service Get Surface Provenance Response",
        "type": "object",
        "x-speakeasy-name-override": "A2UIServiceGetSurfaceProvenanceResponse"
      },
      "c1.api.a2ui.v1.A2UIServiceListSurfaceFeedbackResponse": {
        "description": "A2UIServiceListSurfaceFeedbackResponse returns feedback for a surface.",
        "properties": {
          "feedback": {
            "description": "The feedback field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.a2ui.v1.A2UISurfaceFeedback"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "A 2 Ui Service List Surface Feedback Response",
        "type": "object",
        "x-speakeasy-name-override": "A2UIServiceListSurfaceFeedbackResponse"
      },
      "c1.api.a2ui.v1.A2UIServiceListSurfacesResponse": {
        "description": "A2UIServiceListSurfacesResponse returns active surfaces.",
        "properties": {
          "surfaces": {
            "description": "The surfaces field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.a2ui.v1.A2UISurface"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "A 2 Ui Service List Surfaces Response",
        "type": "object",
        "x-speakeasy-name-override": "A2UIServiceListSurfacesResponse"
      },
      "c1.api.a2ui.v1.A2UIServiceSubmitActionRequestInput": {
        "description": "A2UIServiceSubmitActionRequest submits a user action.",
        "properties": {
          "actionName": {
            "description": "The actionName field.",
            "type": "string"
          },
          "clientTimestamp": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "context": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "The context field.",
            "type": "object"
          },
          "conversationId": {
            "description": "The conversationId field.",
            "type": "string"
          },
          "dataModelJson": {
            "description": "The dataModelJson field.",
            "type": "string"
          },
          "sourceComponentId": {
            "description": "The sourceComponentId field.",
            "type": "string"
          }
        },
        "title": "A 2 Ui Service Submit Action Request",
        "type": "object",
        "x-speakeasy-name-override": "A2UIServiceSubmitActionRequest"
      },
      "c1.api.a2ui.v1.A2UIServiceSubmitActionResponse": {
        "description": "A2UIServiceSubmitActionResponse returns the result of an action.",
        "properties": {
          "accepted": {
            "description": "The accepted field.",
            "type": "boolean"
          },
          "errorMessage": {
            "description": "The errorMessage field.",
            "type": "string"
          }
        },
        "title": "A 2 Ui Service Submit Action Response",
        "type": "object",
        "x-speakeasy-name-override": "A2UIServiceSubmitActionResponse"
      },
      "c1.api.a2ui.v1.A2UISurface": {
        "description": "A2UISurface represents a rendered UI surface within a conversation.",
        "properties": {
          "catalogId": {
            "description": "The catalogId field.",
            "type": "string"
          },
          "components": {
            "description": "The components field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.a2ui.v1.A2UIComponent"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "conversationId": {
            "description": "The conversationId field.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "dataModelJson": {
            "description": "The dataModelJson field.",
            "type": "string"
          },
          "deletedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "hasReportProgram": {
            "description": "True when this surface has executable report source behind it. The client\n needs only saveability; scratch Function and commit identities stay private.",
            "type": "boolean"
          },
          "reportEditTarget": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.A2UIReportEditTarget"
              },
              {
                "type": "null"
              }
            ]
          },
          "role": {
            "description": "The role field.",
            "enum": [
              "SURFACE_ROLE_UNSPECIFIED",
              "SURFACE_ROLE_PRIMARY",
              "SURFACE_ROLE_STATUS",
              "SURFACE_ROLE_PROMPT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "savedReportId": {
            "description": "Present after this surface has been promoted to a saved report.",
            "type": "string"
          },
          "schemaVersion": {
            "description": "The schemaVersion field.",
            "format": "int64",
            "type": "string"
          },
          "sendDataModel": {
            "description": "The sendDataModel field.",
            "type": "boolean"
          },
          "state": {
            "description": "The state field.",
            "enum": [
              "SURFACE_LIFECYCLE_STATE_UNSPECIFIED",
              "SURFACE_LIFECYCLE_STATE_ACTIVE",
              "SURFACE_LIFECYCLE_STATE_COMPLETE",
              "SURFACE_LIFECYCLE_STATE_DELETED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "surfaceId": {
            "description": "The surfaceId field.",
            "type": "string"
          },
          "tenantId": {
            "description": "The tenantId field.",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "A 2 Ui Surface",
        "type": "object",
        "x-speakeasy-name-override": "A2UISurface"
      },
      "c1.api.a2ui.v1.A2UISurfaceFeedback": {
        "description": "A2UISurfaceFeedback represents user feedback for a surface.",
        "properties": {
          "actionName": {
            "description": "The actionName field.",
            "type": "string"
          },
          "componentsSnapshot": {
            "description": "The componentsSnapshot field.",
            "type": "string"
          },
          "conversationId": {
            "description": "The conversationId field.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "dataModelSnapshot": {
            "description": "The dataModelSnapshot field.",
            "type": "string"
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "schemaVersion": {
            "description": "The schemaVersion field.",
            "format": "int64",
            "type": "string"
          },
          "sentiment": {
            "description": "The sentiment field.",
            "enum": [
              "A2UI_SURFACE_FEEDBACK_SENTIMENT_UNSPECIFIED",
              "A2UI_SURFACE_FEEDBACK_SENTIMENT_POSITIVE",
              "A2UI_SURFACE_FEEDBACK_SENTIMENT_NEGATIVE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "surfaceId": {
            "description": "The surfaceId field.",
            "type": "string"
          },
          "text": {
            "description": "The text field.",
            "type": "string"
          }
        },
        "title": "A 2 Ui Surface Feedback",
        "type": "object",
        "x-speakeasy-name-override": "A2UISurfaceFeedback"
      },
      "c1.api.a2ui.v1.Action": {
        "description": "Action represents what happens when a component is activated (e.g., button click).\n\nThis message contains a oneof named action_type. Only a single field of the following list may be set at a time:\n  - event\n  - functionCall\n",
        "properties": {
          "event": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.ServerEvent"
              },
              {
                "type": "null"
              }
            ]
          },
          "functionCall": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.FunctionCall"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Action",
        "type": "object",
        "x-speakeasy-name-override": "A2UIAction"
      },
      "c1.api.a2ui.v1.AndCheck": {
        "description": "AndCheck requires all checks to pass.",
        "properties": {
          "checks": {
            "description": "The checks field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.a2ui.v1.ValidationCheck"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "And Check",
        "type": "object",
        "x-speakeasy-name-override": "AndCheck"
      },
      "c1.api.a2ui.v1.ButtonComponent": {
        "description": "ButtonComponent triggers actions.",
        "properties": {
          "action": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.Action"
              },
              {
                "type": "null"
              }
            ]
          },
          "checks": {
            "description": "The checks field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.a2ui.v1.ValidationCheck"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "disabled": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicBool"
              },
              {
                "type": "null"
              }
            ]
          },
          "label": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          },
          "variant": {
            "description": "The variant field.",
            "enum": [
              "BUTTON_VARIANT_UNSPECIFIED",
              "BUTTON_VARIANT_PRIMARY",
              "BUTTON_VARIANT_SECONDARY",
              "BUTTON_VARIANT_TEXT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Button Component",
        "type": "object",
        "x-speakeasy-name-override": "ButtonComponent"
      },
      "c1.api.a2ui.v1.C1AppUserPickerComponent": {
        "description": "C1AppUserPickerComponent selects one of the caller's own accounts (app users) within an app.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "label": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          },
          "required": {
            "description": "Selection is mandatory. Server sets it only when the user has more than one\n eligible account; with none or one the picker isn't shown.",
            "type": "boolean"
          },
          "value": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "C 1 App User Picker Component",
        "type": "object",
        "x-speakeasy-name-override": "C1AppUserPickerComponent"
      },
      "c1.api.a2ui.v1.C1ChartCategoricalData": {
        "description": "C1ChartCategoricalData is (label, value) slices for part-to-whole charts.",
        "properties": {
          "slices": {
            "description": "The slices field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.a2ui.v1.C1ChartSlice"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "style": {
            "description": "The style field.",
            "enum": [
              "C1_CHART_CATEGORICAL_STYLE_UNSPECIFIED",
              "C1_CHART_CATEGORICAL_STYLE_PIE",
              "C1_CHART_CATEGORICAL_STYLE_DONUT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "C 1 Chart Categorical Data",
        "type": "object",
        "x-speakeasy-name-override": "C1ChartCategoricalData"
      },
      "c1.api.a2ui.v1.C1ChartComponent": {
        "description": "C1ChartComponent renders a chart from typed data. The data oneof is keyed by\n shape — each shape carries its own style enum, so an invalid combination\n (e.g. a pie chart with a time axis) is unrepresentable.\n\nThis message contains a oneof named data. Only a single field of the following list may be set at a time:\n  - timeSeries\n  - categorical\n",
        "properties": {
          "artifactUrl": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          },
          "categorical": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.C1ChartCategoricalData"
              },
              {
                "type": "null"
              }
            ]
          },
          "sources": {
            "description": "Provenance: the queries the producing function ran.",
            "items": {
              "$ref": "#/components/schemas/c1.api.a2ui.v1.C1ChartSource"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "timeSeries": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.C1ChartTimeSeriesData"
              },
              {
                "type": "null"
              }
            ]
          },
          "title": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "C 1 Chart Component",
        "type": "object",
        "x-speakeasy-name-override": "C1ChartComponent"
      },
      "c1.api.a2ui.v1.C1ChartPoint": {
        "description": "C1ChartPoint is a single (timestamp, value) observation.",
        "properties": {
          "ts": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "value": {
            "description": "Bounds double as a NaN/Inf rejection: NaN fails every comparison.",
            "type": "number"
          }
        },
        "title": "C 1 Chart Point",
        "type": "object",
        "x-speakeasy-name-override": "C1ChartPoint"
      },
      "c1.api.a2ui.v1.C1ChartSeries": {
        "description": "C1ChartSeries is one named line/bar series.",
        "properties": {
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "key": {
            "description": "The key field.",
            "type": "string"
          },
          "points": {
            "description": "The points field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.a2ui.v1.C1ChartPoint"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "C 1 Chart Series",
        "type": "object",
        "x-speakeasy-name-override": "C1ChartSeries"
      },
      "c1.api.a2ui.v1.C1ChartSlice": {
        "description": "C1ChartSlice is a single categorical slice.",
        "properties": {
          "label": {
            "description": "The label field.",
            "type": "string"
          },
          "value": {
            "description": "The value field.",
            "type": "number"
          }
        },
        "title": "C 1 Chart Slice",
        "type": "object",
        "x-speakeasy-name-override": "C1ChartSlice"
      },
      "c1.api.a2ui.v1.C1ChartSource": {
        "description": "C1ChartSource records one query the producing function ran, for the\n provenance chips rendered under the chart.",
        "properties": {
          "count": {
            "description": "The count field.",
            "format": "int64",
            "type": "string"
          },
          "kind": {
            "description": "The kind field.",
            "type": "string"
          },
          "label": {
            "description": "The label field.",
            "type": "string"
          },
          "ref": {
            "description": "The ref field.",
            "type": "string"
          }
        },
        "title": "C 1 Chart Source",
        "type": "object",
        "x-speakeasy-name-override": "C1ChartSource"
      },
      "c1.api.a2ui.v1.C1ChartTimeRange": {
        "description": "C1ChartTimeRange is the window the series cover, with a display label.",
        "properties": {
          "end": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "label": {
            "description": "The label field.",
            "type": "string"
          },
          "start": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "C 1 Chart Time Range",
        "type": "object",
        "x-speakeasy-name-override": "C1ChartTimeRange"
      },
      "c1.api.a2ui.v1.C1ChartTimeSeriesData": {
        "description": "C1ChartTimeSeriesData is named series of (timestamp, value) points.",
        "properties": {
          "range": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.C1ChartTimeRange"
              },
              {
                "type": "null"
              }
            ]
          },
          "series": {
            "description": "The series field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.a2ui.v1.C1ChartSeries"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "style": {
            "description": "The style field.",
            "enum": [
              "C1_CHART_TIME_SERIES_STYLE_UNSPECIFIED",
              "C1_CHART_TIME_SERIES_STYLE_LINE",
              "C1_CHART_TIME_SERIES_STYLE_STACKED_BAR",
              "C1_CHART_TIME_SERIES_STYLE_STACKED_AREA"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "C 1 Chart Time Series Data",
        "type": "object",
        "x-speakeasy-name-override": "C1ChartTimeSeriesData"
      },
      "c1.api.a2ui.v1.C1CodeBlockComponent": {
        "description": "C1CodeBlockComponent displays code with syntax highlighting.",
        "properties": {
          "code": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          },
          "copyable": {
            "description": "The copyable field.",
            "type": "boolean"
          },
          "language": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          },
          "title": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "C 1 Code Block Component",
        "type": "object",
        "x-speakeasy-name-override": "C1CodeBlockComponent"
      },
      "c1.api.a2ui.v1.C1ConnectorConfigFormComponent": {
        "description": "C1ConnectorConfigFormComponent renders the shared admin connector-settings form inside an\n A2UI surface. The frontend resolves the catalog, connector, and config schema itself from\n the ids below, keeping the configuration field values out of the agent's data model — the\n agent never receives API keys, passwords, or other secrets entered by the user.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "connectorId": {
            "description": "The connectorId field.",
            "type": "string"
          },
          "skipActionName": {
            "description": "The skipActionName field.",
            "type": "string"
          },
          "submitActionName": {
            "description": "The submitActionName field.",
            "type": "string"
          }
        },
        "title": "C 1 Connector Config Form Component",
        "type": "object",
        "x-speakeasy-name-override": "C1ConnectorConfigFormComponent"
      },
      "c1.api.a2ui.v1.C1ConnectorSyncDetailComponent": {
        "description": "C1ConnectorSyncDetailComponent renders the same live card as\n C1ConnectorSyncProgressComponent but pre-expanded with the phase checklist,\n live count tiles, and \"What's happening\" explainer visible from the first\n paint. Intended for message-body placement — emit one after each\n `submit_app_config` so the transcript carries a clear \"this is what just\n happened\" receipt for the connector the user just connected.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "connectorId": {
            "description": "The connectorId field.",
            "type": "string"
          },
          "title": {
            "description": "The title field.",
            "type": "string"
          }
        },
        "title": "C 1 Connector Sync Detail Component",
        "type": "object",
        "x-speakeasy-name-override": "C1ConnectorSyncDetailComponent"
      },
      "c1.api.a2ui.v1.C1ConnectorSyncProgressComponent": {
        "description": "C1ConnectorSyncProgressComponent renders a live connector sync status card.\n Subscribes to WebSocket updates for real-time sync lifecycle status.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "connectorId": {
            "description": "The connectorId field.",
            "type": "string"
          },
          "title": {
            "description": "The title field.",
            "type": "string"
          }
        },
        "title": "C 1 Connector Sync Progress Component",
        "type": "object",
        "x-speakeasy-name-override": "C1ConnectorSyncProgressComponent"
      },
      "c1.api.a2ui.v1.C1CredentialOfferingPickerComponent": {
        "description": "C1CredentialOfferingPickerComponent selects one of the caller's requestable credential offerings.\n Writes the selected offering ref {id, appId, catalogId, displayName} to the value path.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "label": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          },
          "required": {
            "description": "The required field.",
            "type": "boolean"
          },
          "value": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "C 1 Credential Offering Picker Component",
        "type": "object",
        "x-speakeasy-name-override": "C1CredentialOfferingPickerComponent"
      },
      "c1.api.a2ui.v1.C1DurationPickerComponent": {
        "description": "C1DurationPickerComponent is the access-request duration picker (presets + custom with number/unit).\n Value is duration in seconds bound to the given path.",
        "properties": {
          "label": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          },
          "maxDurationSeconds": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicNumber"
              },
              {
                "type": "null"
              }
            ]
          },
          "value": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicNumber"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "C 1 Duration Picker Component",
        "type": "object",
        "x-speakeasy-name-override": "C1DurationPickerComponent"
      },
      "c1.api.a2ui.v1.C1MSTeamsNotificationsComponent": {
        "description": "C1MSTeamsNotificationsComponent renders a self-contained Microsoft Teams integration card.\n Fetches status and consent URLs via frontend API calls.",
        "title": "C 1 Ms Teams Notifications Component",
        "type": "object",
        "x-speakeasy-name-override": "C1MSTeamsNotificationsComponent"
      },
      "c1.api.a2ui.v1.C1MetricCard": {
        "description": "C1MetricCard is one aggregate stat: label, formatted value, optional delta\n and sparkline trend.",
        "properties": {
          "delta": {
            "description": "The delta field.",
            "type": "string"
          },
          "deltaSentiment": {
            "description": "The deltaSentiment field.",
            "enum": [
              "C1_METRIC_DELTA_SENTIMENT_UNSPECIFIED",
              "C1_METRIC_DELTA_SENTIMENT_POSITIVE",
              "C1_METRIC_DELTA_SENTIMENT_NEGATIVE",
              "C1_METRIC_DELTA_SENTIMENT_NEUTRAL"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "label": {
            "description": "The label field.",
            "type": "string"
          },
          "sparkline": {
            "description": "Optional trend values, oldest first. Bounds double as NaN/Inf rejection.",
            "items": {
              "type": "number"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "value": {
            "description": "The value field.",
            "type": "string"
          }
        },
        "title": "C 1 Metric Card",
        "type": "object",
        "x-speakeasy-name-override": "C1MetricCard"
      },
      "c1.api.a2ui.v1.C1MetricCardsComponent": {
        "description": "C1MetricCardsComponent renders a row of aggregate stat cards.",
        "properties": {
          "cards": {
            "description": "The cards field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.a2ui.v1.C1MetricCard"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "sources": {
            "description": "Provenance: the queries the producing function ran.",
            "items": {
              "$ref": "#/components/schemas/c1.api.a2ui.v1.C1ChartSource"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "title": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "C 1 Metric Cards Component",
        "type": "object",
        "x-speakeasy-name-override": "C1MetricCardsComponent"
      },
      "c1.api.a2ui.v1.C1OnboardingPlanCategory": {
        "description": "C1OnboardingPlanCategory groups related plan steps under a section heading.",
        "properties": {
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "steps": {
            "description": "The steps field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.a2ui.v1.C1OnboardingPlanStep"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "title": {
            "description": "The title field.",
            "type": "string"
          }
        },
        "title": "C 1 Onboarding Plan Category",
        "type": "object",
        "x-speakeasy-name-override": "C1OnboardingPlanCategory"
      },
      "c1.api.a2ui.v1.C1OnboardingPlanComponent": {
        "description": "C1OnboardingPlanComponent renders a personalized onboarding plan with categorized steps.\n The agent dynamically populates categories and steps based on user intent and context.",
        "properties": {
          "categories": {
            "description": "The categories field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.a2ui.v1.C1OnboardingPlanCategory"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "C 1 Onboarding Plan Component",
        "type": "object",
        "x-speakeasy-name-override": "C1OnboardingPlanComponent"
      },
      "c1.api.a2ui.v1.C1OnboardingPlanStep": {
        "description": "C1OnboardingPlanStep is a single actionable item in the onboarding plan.",
        "properties": {
          "agentAssisted": {
            "description": "The agentAssisted field.",
            "type": "boolean"
          },
          "description": {
            "description": "The description field.",
            "type": "string"
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "title": {
            "description": "The title field.",
            "type": "string"
          }
        },
        "title": "C 1 Onboarding Plan Step",
        "type": "object",
        "x-speakeasy-name-override": "C1OnboardingPlanStep"
      },
      "c1.api.a2ui.v1.C1OnboardingWelcomeComponent": {
        "description": "C1OnboardingWelcomeComponent renders the onboarding welcome screen with org context and intent collection.\n Backend pre-populates recommended_catalog_id / recommended_display_name from detected IDP.\n Frontend detects auth backend via introspect for contextual UI text.",
        "properties": {
          "recommendedCatalogId": {
            "description": "The recommendedCatalogId field.",
            "type": "string"
          },
          "recommendedDisplayName": {
            "description": "The recommendedDisplayName field.",
            "type": "string"
          }
        },
        "title": "C 1 Onboarding Welcome Component",
        "type": "object",
        "x-speakeasy-name-override": "C1OnboardingWelcomeComponent"
      },
      "c1.api.a2ui.v1.C1ResourcePickerComponent": {
        "description": "C1ResourcePickerComponent allows selecting C1 resources.",
        "properties": {
          "appId": {
            "description": "Scoping for resource_type \"mcp_tool\": the app and connector whose tools the\n paginated picker searches, and an optional tool-state filter (the\n MCPToolState enum name, e.g. \"MCP_TOOL_STATE_PENDING_REVIEW\"; empty = no\n filter). Ignored by other resource types.",
            "type": "string"
          },
          "connectorId": {
            "description": "The connectorId field.",
            "type": "string"
          },
          "label": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          },
          "mcpToolState": {
            "description": "The mcpToolState field.",
            "type": "string"
          },
          "multiSelect": {
            "description": "The multiSelect field.",
            "type": "boolean"
          },
          "resourceType": {
            "description": "The resourceType field.",
            "type": "string"
          },
          "value": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "C 1 Resource Picker Component",
        "type": "object",
        "x-speakeasy-name-override": "C1ResourcePickerComponent"
      },
      "c1.api.a2ui.v1.C1SlackNotificationsComponent": {
        "description": "C1SlackNotificationsComponent renders a self-contained Slack integration card.\n Fetches status and OAuth URLs via frontend API calls.",
        "title": "C 1 Slack Notifications Component",
        "type": "object",
        "x-speakeasy-name-override": "C1SlackNotificationsComponent"
      },
      "c1.api.a2ui.v1.C1StatusIndicatorComponent": {
        "description": "C1StatusIndicatorComponent shows agent progress status.",
        "properties": {
          "message": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          },
          "showSpinner": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicBool"
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          },
          "toolName": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "C 1 Status Indicator Component",
        "type": "object",
        "x-speakeasy-name-override": "C1StatusIndicatorComponent"
      },
      "c1.api.a2ui.v1.C1TableComponent": {
        "description": "C1TableComponent renders a tabular view: typed columns + rows, capped and\n paginated client-side; the full data set lives behind the artifact link.",
        "properties": {
          "artifactUrl": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          },
          "columns": {
            "description": "The columns field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pageSize": {
            "description": "Rows per page for client-side pagination; 0 shows all rows on one page.",
            "format": "int32",
            "type": "integer"
          },
          "rows": {
            "description": "The rows field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.a2ui.v1.C1TableRow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "sources": {
            "description": "Provenance: the queries the producing function ran.",
            "items": {
              "$ref": "#/components/schemas/c1.api.a2ui.v1.C1ChartSource"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "title": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          },
          "totalRows": {
            "description": "Full count when rows are truncated.",
            "format": "int64",
            "type": "string"
          }
        },
        "title": "C 1 Table Component",
        "type": "object",
        "x-speakeasy-name-override": "C1TableComponent"
      },
      "c1.api.a2ui.v1.C1TableRow": {
        "description": "C1TableRow is one row; cells align 1:1 with columns (enforced at the\n parse boundary).",
        "properties": {
          "cells": {
            "description": "The cells field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "C 1 Table Row",
        "type": "object",
        "x-speakeasy-name-override": "C1TableRow"
      },
      "c1.api.a2ui.v1.C1TodoItem": {
        "description": "The C1TodoItem message.",
        "properties": {
          "description": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "label": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          },
          "section": {
            "description": "The section field.",
            "type": "string"
          },
          "status": {
            "description": "The status field.",
            "type": "string"
          },
          "trailingAction": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.ServerEvent"
              },
              {
                "type": "null"
              }
            ]
          },
          "trailingActionLabel": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "C 1 Todo Item",
        "type": "object",
        "x-speakeasy-name-override": "C1TodoItem"
      },
      "c1.api.a2ui.v1.C1TodoListComponent": {
        "description": "C1TodoListComponent renders a phase/step checklist with progress tracking.",
        "properties": {
          "items": {
            "description": "The items field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.a2ui.v1.C1TodoItem"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "title": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "C 1 Todo List Component",
        "type": "object",
        "x-speakeasy-name-override": "C1TodoListComponent"
      },
      "c1.api.a2ui.v1.CardComponent": {
        "description": "CardComponent is a container with styling.",
        "properties": {
          "children": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.ChildList"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Card Component",
        "type": "object",
        "x-speakeasy-name-override": "CardComponent"
      },
      "c1.api.a2ui.v1.CheckBoxComponent": {
        "description": "CheckBoxComponent is a boolean checkbox.",
        "properties": {
          "label": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          },
          "value": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicBool"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Check Box Component",
        "type": "object",
        "x-speakeasy-name-override": "CheckBoxComponent"
      },
      "c1.api.a2ui.v1.ChildList": {
        "description": "ChildList contains references to child component IDs.",
        "properties": {
          "ids": {
            "description": "The ids field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Child List",
        "type": "object",
        "x-speakeasy-name-override": "ChildList"
      },
      "c1.api.a2ui.v1.Choice": {
        "description": "Choice represents a single option in a choice picker.",
        "properties": {
          "description": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "label": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Choice",
        "type": "object",
        "x-speakeasy-name-override": "Choice"
      },
      "c1.api.a2ui.v1.ChoicePickerComponent": {
        "description": "ChoicePickerComponent allows selection from predefined choices.",
        "properties": {
          "choices": {
            "description": "The choices field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.a2ui.v1.Choice"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "hideLabel": {
            "description": "When true, the label slot is omitted entirely (no label text, no\n \"(optional)\" suffix, no reserved space). Use when the picker sits under\n or beside another control that already names the field — e.g. stacked\n under a check_box in a per-attribute mapping row.",
            "type": "boolean"
          },
          "label": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          },
          "multiSelect": {
            "description": "The multiSelect field.",
            "type": "boolean"
          },
          "required": {
            "description": "The required field.",
            "type": "boolean"
          },
          "value": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Choice Picker Component",
        "type": "object",
        "x-speakeasy-name-override": "ChoicePickerComponent"
      },
      "c1.api.a2ui.v1.ColumnComponent": {
        "description": "ColumnComponent arranges children vertically.",
        "properties": {
          "alignment": {
            "description": "The alignment field.",
            "type": "string"
          },
          "children": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.ChildList"
              },
              {
                "type": "null"
              }
            ]
          },
          "distribution": {
            "description": "The distribution field.",
            "type": "string"
          },
          "gap": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicNumber"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Column Component",
        "type": "object",
        "x-speakeasy-name-override": "ColumnComponent"
      },
      "c1.api.a2ui.v1.DateTimeInputComponent": {
        "description": "DateTimeInputComponent for date/time selection.",
        "properties": {
          "inputType": {
            "description": "The inputType field.",
            "enum": [
              "DATE_TIME_INPUT_TYPE_UNSPECIFIED",
              "DATE_TIME_INPUT_TYPE_DATE",
              "DATE_TIME_INPUT_TYPE_TIME",
              "DATE_TIME_INPUT_TYPE_DATE_TIME"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "label": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          },
          "max": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          },
          "min": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          },
          "value": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Date Time Input Component",
        "type": "object",
        "x-speakeasy-name-override": "DateTimeInputComponent"
      },
      "c1.api.a2ui.v1.DividerComponent": {
        "description": "DividerComponent is a visual separator.",
        "properties": {
          "orientation": {
            "description": "The orientation field.",
            "type": "string"
          }
        },
        "title": "Divider Component",
        "type": "object",
        "x-speakeasy-name-override": "DividerComponent"
      },
      "c1.api.a2ui.v1.DynamicBool": {
        "description": "DynamicBool can be a literal value, a JSON pointer path, or a function call.\n\nThis message contains a oneof named value. Only a single field of the following list may be set at a time:\n  - literal\n  - path\n  - call\n",
        "properties": {
          "call": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.FunctionCall"
              },
              {
                "type": "null"
              }
            ]
          },
          "literal": {
            "description": "The literal field.\nThis field is part of the `value` oneof.\nSee the documentation for `c1.api.a2ui.v1.DynamicBool` for more details.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "path": {
            "description": "The path field.\nThis field is part of the `value` oneof.\nSee the documentation for `c1.api.a2ui.v1.DynamicBool` for more details.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Dynamic Bool",
        "type": "object",
        "x-speakeasy-name-override": "DynamicBool"
      },
      "c1.api.a2ui.v1.DynamicNumber": {
        "description": "DynamicNumber can be a literal value, a JSON pointer path, or a function call.\n\nThis message contains a oneof named value. Only a single field of the following list may be set at a time:\n  - literal\n  - path\n  - call\n",
        "properties": {
          "call": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.FunctionCall"
              },
              {
                "type": "null"
              }
            ]
          },
          "literal": {
            "description": "The literal field.\nThis field is part of the `value` oneof.\nSee the documentation for `c1.api.a2ui.v1.DynamicNumber` for more details.",
            "type": [
              "number",
              "null"
            ]
          },
          "path": {
            "description": "The path field.\nThis field is part of the `value` oneof.\nSee the documentation for `c1.api.a2ui.v1.DynamicNumber` for more details.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Dynamic Number",
        "type": "object",
        "x-speakeasy-name-override": "DynamicNumber"
      },
      "c1.api.a2ui.v1.DynamicString": {
        "description": "DynamicString can be a literal value, a JSON pointer path, or a function call.\n\nThis message contains a oneof named value. Only a single field of the following list may be set at a time:\n  - literal\n  - path\n  - call\n",
        "properties": {
          "call": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.FunctionCall"
              },
              {
                "type": "null"
              }
            ]
          },
          "literal": {
            "description": "The literal field.\nThis field is part of the `value` oneof.\nSee the documentation for `c1.api.a2ui.v1.DynamicString` for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "path": {
            "description": "The path field.\nThis field is part of the `value` oneof.\nSee the documentation for `c1.api.a2ui.v1.DynamicString` for more details.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Dynamic String",
        "type": "object",
        "x-speakeasy-name-override": "DynamicString"
      },
      "c1.api.a2ui.v1.FunctionCall": {
        "description": "FunctionCall represents a client-side function invocation.",
        "properties": {
          "args": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "The args field.",
            "type": "object"
          },
          "call": {
            "description": "The call field.",
            "type": "string"
          },
          "message": {
            "description": "The message field.",
            "type": "string"
          }
        },
        "title": "Function Call",
        "type": "object",
        "x-speakeasy-name-override": "FunctionCall"
      },
      "c1.api.a2ui.v1.OrCheck": {
        "description": "OrCheck requires at least one check to pass.",
        "properties": {
          "checks": {
            "description": "The checks field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.a2ui.v1.ValidationCheck"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Or Check",
        "type": "object",
        "x-speakeasy-name-override": "OrCheck"
      },
      "c1.api.a2ui.v1.ProgressBarComponent": {
        "description": "ProgressBarComponent shows a read-only progress bar (label, value %, min/max).",
        "properties": {
          "label": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          },
          "max": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicNumber"
              },
              {
                "type": "null"
              }
            ]
          },
          "min": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicNumber"
              },
              {
                "type": "null"
              }
            ]
          },
          "step": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicNumber"
              },
              {
                "type": "null"
              }
            ]
          },
          "value": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicNumber"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Progress Bar Component",
        "type": "object",
        "x-speakeasy-name-override": "ProgressBarComponent"
      },
      "c1.api.a2ui.v1.RowComponent": {
        "description": "RowComponent arranges children horizontally.",
        "properties": {
          "alignment": {
            "description": "The alignment field.",
            "type": "string"
          },
          "children": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.ChildList"
              },
              {
                "type": "null"
              }
            ]
          },
          "distribution": {
            "description": "The distribution field.",
            "type": "string"
          },
          "gap": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicNumber"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Row Component",
        "type": "object",
        "x-speakeasy-name-override": "RowComponent"
      },
      "c1.api.a2ui.v1.ServerEvent": {
        "description": "ServerEvent triggers a server-side action.",
        "properties": {
          "context": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "The context field.",
            "type": "object"
          },
          "name": {
            "description": "The name field.",
            "type": "string"
          }
        },
        "title": "Server Event",
        "type": "object",
        "x-speakeasy-name-override": "ServerEvent"
      },
      "c1.api.a2ui.v1.SliderComponent": {
        "description": "SliderComponent is an interactive numeric range input (e.g. for forms).",
        "properties": {
          "label": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          },
          "max": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicNumber"
              },
              {
                "type": "null"
              }
            ]
          },
          "min": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicNumber"
              },
              {
                "type": "null"
              }
            ]
          },
          "step": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicNumber"
              },
              {
                "type": "null"
              }
            ]
          },
          "value": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicNumber"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Slider Component",
        "type": "object",
        "x-speakeasy-name-override": "SliderComponent"
      },
      "c1.api.a2ui.v1.TextComponent": {
        "description": "TextComponent displays text content.",
        "properties": {
          "markdown": {
            "description": "The markdown field.",
            "type": "boolean"
          },
          "text": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Text Component",
        "type": "object",
        "x-speakeasy-name-override": "TextComponent"
      },
      "c1.api.a2ui.v1.TextFieldComponent": {
        "description": "TextFieldComponent is a text input field.",
        "properties": {
          "checks": {
            "description": "The checks field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.a2ui.v1.FunctionCall"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "label": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          },
          "placeholder": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          },
          "value": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.DynamicString"
              },
              {
                "type": "null"
              }
            ]
          },
          "variant": {
            "description": "The variant field.",
            "enum": [
              "TEXT_FIELD_VARIANT_UNSPECIFIED",
              "TEXT_FIELD_VARIANT_SHORT_TEXT",
              "TEXT_FIELD_VARIANT_LONG_TEXT",
              "TEXT_FIELD_VARIANT_NUMBER",
              "TEXT_FIELD_VARIANT_OBSCURED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Text Field Component",
        "type": "object",
        "x-speakeasy-name-override": "TextFieldComponent"
      },
      "c1.api.a2ui.v1.ValidationCheck": {
        "description": "ValidationCheck for client-side validation rules.\n\nThis message contains a oneof named check. Only a single field of the following list may be set at a time:\n  - call\n  - and\n  - or\n",
        "properties": {
          "and": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.AndCheck"
              },
              {
                "type": "null"
              }
            ]
          },
          "call": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.FunctionCall"
              },
              {
                "type": "null"
              }
            ]
          },
          "or": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.OrCheck"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Validation Check",
        "type": "object",
        "x-speakeasy-name-override": "ValidationCheck"
      },
      "c1.api.accessconflict.v1.AppEntitlementMonitorBinding": {
        "description": "Represents the association of an app entitlement with one side (A or B) of a conflict monitor.",
        "properties": {
          "appEntitlementId": {
            "description": "The unique identifier of the bound app entitlement.",
            "type": "string"
          },
          "appId": {
            "description": "The unique identifier of the application containing the entitlement.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "entitlementGroup": {
            "description": "Which side of the conflict monitor (A or B) this entitlement is assigned to.",
            "enum": [
              "ENTITLEMENT_GROUP_UNSPECIFIED",
              "ENTITLEMENT_GROUP_A",
              "ENTITLEMENT_GROUP_B"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "monitorId": {
            "description": "The unique identifier of the conflict monitor this binding belongs to.",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "App Entitlement Monitor Binding",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementMonitorBinding"
      },
      "c1.api.accessconflict.v1.ConflictMonitor": {
        "description": "A conflict monitor defines a Separation of Duty rule between two entitlement sets.\n It detects when any user holds entitlements from both set A and set B simultaneously.",
        "properties": {
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "A description explaining the purpose of this Separation of Duty rule.",
            "type": "string"
          },
          "displayName": {
            "description": "The human-readable name of the conflict monitor.",
            "type": "string"
          },
          "enabled": {
            "description": "Whether the conflict monitor is actively scanning for violations.",
            "type": "boolean"
          },
          "entitlementSetAId": {
            "description": "The identifier of entitlement set A in the conflict rule.",
            "type": "string"
          },
          "entitlementSetBId": {
            "description": "The identifier of entitlement set B in the conflict rule.",
            "type": "string"
          },
          "id": {
            "description": "The unique identifier of this conflict monitor.",
            "type": "string"
          },
          "negateGroupB": {
            "description": "When true, the rule flags users who are in set A but NOT in set B (\"is not\n in\"), instead of the default A-and-B intersection.",
            "type": "boolean"
          },
          "notificationConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessconflict.v1.NotificationConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Conflict Monitor",
        "type": "object",
        "x-speakeasy-name-override": "ConflictMonitor"
      },
      "c1.api.accessconflict.v1.ConflictMonitorCreateRequest": {
        "description": "The request message for creating a new conflict monitor.",
        "properties": {
          "description": {
            "description": "An optional description explaining the purpose of this Separation of Duty rule.",
            "type": "string"
          },
          "displayName": {
            "description": "The human-readable name for the conflict monitor.",
            "type": "string"
          },
          "notificationConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessconflict.v1.NotificationConfig"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "displayName"
        ],
        "title": "Conflict Monitor Create Request",
        "type": "object",
        "x-speakeasy-name-override": "ConflictMonitorCreateRequest"
      },
      "c1.api.accessconflict.v1.ConflictMonitorDeleteRequestInput": {
        "description": "The request message for deleting a conflict monitor.",
        "title": "Conflict Monitor Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "ConflictMonitorDeleteRequest"
      },
      "c1.api.accessconflict.v1.ConflictMonitorDeleteResponse": {
        "description": "The response message for deleting a conflict monitor.",
        "title": "Conflict Monitor Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "ConflictMonitorDeleteResponse"
      },
      "c1.api.accessconflict.v1.ConflictMonitorRef": {
        "description": "The ConflictMonitorRef message.",
        "properties": {
          "id": {
            "description": "The id field.",
            "type": "string"
          }
        },
        "title": "Conflict Monitor Ref",
        "type": "object",
        "x-speakeasy-name-override": "ConflictMonitorRef"
      },
      "c1.api.accessconflict.v1.ConflictMonitorUpdateRequestInput": {
        "description": "The request message for updating an existing conflict monitor.",
        "properties": {
          "description": {
            "description": "The updated description for the conflict monitor.",
            "type": "string"
          },
          "displayName": {
            "description": "The updated human-readable name for the conflict monitor.",
            "type": "string"
          },
          "negateGroupB": {
            "description": "When true, the rule flags users who are in set A but NOT in set B (\"is not\n in\"), instead of the default A-and-B intersection.",
            "type": "boolean"
          },
          "notificationConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessconflict.v1.NotificationConfig"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Conflict Monitor Update Request",
        "type": "object",
        "x-speakeasy-name-override": "ConflictMonitorUpdateRequest"
      },
      "c1.api.accessconflict.v1.CreateAppEntitlementMonitorBindingRequest": {
        "description": "The request message for creating a new app entitlement monitor binding.",
        "properties": {
          "appEntitlementId": {
            "description": "The unique identifier of the app entitlement to bind.",
            "type": "string"
          },
          "appId": {
            "description": "The unique identifier of the application containing the entitlement.",
            "type": "string"
          },
          "entitlementGroup": {
            "description": "Which side of the conflict monitor (A or B) to place this entitlement in.",
            "enum": [
              "ENTITLEMENT_GROUP_UNSPECIFIED",
              "ENTITLEMENT_GROUP_A",
              "ENTITLEMENT_GROUP_B"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "monitorId": {
            "description": "The unique identifier of the conflict monitor to bind the entitlement to.",
            "type": "string"
          }
        },
        "title": "Create App Entitlement Monitor Binding Request",
        "type": "object",
        "x-speakeasy-name-override": "CreateAppEntitlementMonitorBindingRequest"
      },
      "c1.api.accessconflict.v1.DeleteAppEntitlementMonitorBindingRequest": {
        "description": "The request message for deleting an app entitlement monitor binding.",
        "properties": {
          "appEntitlementId": {
            "description": "The unique identifier of the app entitlement to unbind.",
            "type": "string"
          },
          "appId": {
            "description": "The unique identifier of the application containing the entitlement.",
            "type": "string"
          },
          "entitlementGroup": {
            "description": "Which side of the conflict monitor (A or B) the binding belongs to.",
            "enum": [
              "ENTITLEMENT_GROUP_UNSPECIFIED",
              "ENTITLEMENT_GROUP_A",
              "ENTITLEMENT_GROUP_B"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "monitorId": {
            "description": "The unique identifier of the conflict monitor.",
            "type": "string"
          }
        },
        "title": "Delete App Entitlement Monitor Binding Request",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAppEntitlementMonitorBindingRequest"
      },
      "c1.api.accessconflict.v1.DeleteAppEntitlementMonitorBindingResponse": {
        "description": "The response message for deleting an app entitlement monitor binding.",
        "title": "Delete App Entitlement Monitor Binding Response",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAppEntitlementMonitorBindingResponse"
      },
      "c1.api.accessconflict.v1.EmailNotifications": {
        "description": "The EmailNotifications message.",
        "properties": {
          "enabled": {
            "description": "The enabled field.",
            "type": "boolean"
          },
          "identityUserIds": {
            "description": "The identityUserIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Email Notifications",
        "type": "object",
        "x-speakeasy-name-override": "EmailNotifications"
      },
      "c1.api.accessconflict.v1.GetAppEntitlementMonitorBindingRequest": {
        "description": "The request message for retrieving a single app entitlement monitor binding.",
        "properties": {
          "appEntitlementId": {
            "description": "The unique identifier of the app entitlement bound to the monitor.",
            "type": "string"
          },
          "appId": {
            "description": "The unique identifier of the application containing the entitlement.",
            "type": "string"
          },
          "entitlementGroup": {
            "description": "Which side of the conflict monitor (A or B) this binding belongs to.",
            "enum": [
              "ENTITLEMENT_GROUP_UNSPECIFIED",
              "ENTITLEMENT_GROUP_A",
              "ENTITLEMENT_GROUP_B"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "monitorId": {
            "description": "The unique identifier of the conflict monitor.",
            "type": "string"
          }
        },
        "title": "Get App Entitlement Monitor Binding Request",
        "type": "object",
        "x-speakeasy-name-override": "GetAppEntitlementMonitorBindingRequest"
      },
      "c1.api.accessconflict.v1.NotificationConfig": {
        "description": "The NotificationConfig message.",
        "properties": {
          "emailNotifications": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessconflict.v1.EmailNotifications"
              },
              {
                "type": "null"
              }
            ]
          },
          "slackNotifications": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessconflict.v1.SlackNotifications"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Notification Config",
        "type": "object",
        "x-speakeasy-name-override": "AccessConflictNotificationConfig"
      },
      "c1.api.accessconflict.v1.SlackNotifications": {
        "description": "The SlackNotifications message.",
        "properties": {
          "channelId": {
            "description": "The channelId field.",
            "type": "string"
          },
          "channelName": {
            "description": "The channelName field.",
            "type": "string"
          },
          "enabled": {
            "description": "The enabled field.",
            "type": "boolean"
          }
        },
        "title": "Slack Notifications",
        "type": "object",
        "x-speakeasy-name-override": "SlackNotifications"
      },
      "c1.api.accessreview.v1.AccessProfileReviewDimensions": {
        "description": "Review dimensions an access-profile campaign covers. At least one is expected.",
        "properties": {
          "composition": {
            "description": "The composition field.",
            "type": "boolean"
          },
          "membershipCriteria": {
            "description": "The membershipCriteria field.",
            "type": "boolean"
          },
          "membershipExceptions": {
            "description": "The membershipExceptions field.",
            "type": "boolean"
          }
        },
        "title": "Access Profile Review Dimensions",
        "type": "object",
        "x-speakeasy-name-override": "AccessProfileReviewDimensions"
      },
      "c1.api.accessreview.v1.AccessReview": {
        "description": "An access review campaign (also called a certification campaign) that verifies whether users still need their access entitlements.\n\nThis message contains a oneof named setup_metadata. Only a single field of the following list may be set at a time:\n  - singleApp\n  - multiApp\n  - bindings\n",
        "properties": {
          "accessReviewTemplateId": {
            "description": "The ID of the template if the campaign was created from one",
            "type": "string"
          },
          "accuracyIssueAction": {
            "description": "The accuracyIssueAction field.",
            "enum": [
              "ACCURACY_ISSUE_ACTION_UNSPECIFIED",
              "ACCURACY_ISSUE_ACTION_CONTINUE",
              "ACCURACY_ISSUE_ACTION_WAIT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "autoCloseCampaign": {
            "description": "Auto-close configuration\n completion_date is used as the scheduled close date",
            "type": "boolean"
          },
          "autoCloseDecision": {
            "description": "The autoCloseDecision field.",
            "enum": [
              "CLOSE_DECISION_UNSPECIFIED",
              "CLOSE_DECISION_REVOKED",
              "CLOSE_DECISION_SKIP",
              "CLOSE_DECISION_NO_ACTION"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "autoGenerateReport": {
            "description": "The autoGenerateReport field.",
            "type": "boolean"
          },
          "autoResolve": {
            "description": "When true, selections are automatically resolved if the entitlement grant no longer exists.",
            "type": "boolean"
          },
          "autoStartCampaign": {
            "description": "Auto-start configuration",
            "type": "boolean"
          },
          "bindings": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.BindingObjectSetup"
              },
              {
                "type": "null"
              }
            ]
          },
          "campaignHealth": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.CampaignHealthSnapshot"
              },
              {
                "type": "null"
              }
            ]
          },
          "campaignInsights": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.CampaignInsights"
              },
              {
                "type": "null"
              }
            ]
          },
          "campaignSchedule": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.CampaignSchedule"
              },
              {
                "type": "null"
              }
            ]
          },
          "closedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "columnConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewColumnConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "completionDate": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "connectorSourcesFrozenAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "createdById": {
            "description": "The ID of the user who created this campaign.",
            "type": "string"
          },
          "defaultView": {
            "description": "the default view that reviewers will see when they complete their access reviews",
            "enum": [
              "ACCESS_REVIEW_VIEW_TYPE_UNSPECIFIED",
              "ACCESS_REVIEW_VIEW_TYPE_BY_APP",
              "ACCESS_REVIEW_VIEW_TYPE_BY_USER",
              "ACCESS_REVIEW_VIEW_TYPE_UNSTRUCTURED",
              "ACCESS_REVIEW_VIEW_TYPE_BY_RESOURCE",
              "ACCESS_REVIEW_VIEW_TYPE_BY_ACCESS_PROFILE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "description": {
            "description": "An optional description providing context about this campaign.",
            "type": "string"
          },
          "displayName": {
            "description": "The human-readable name of this campaign.",
            "type": "string"
          },
          "errorState": {
            "description": "Error state set when a prepare action fails with a recoverable condition.\n Cleared when the campaign scope is changed.",
            "enum": [
              "ACCESS_REVIEW_ERROR_STATE_UNSPECIFIED",
              "ACCESS_REVIEW_ERROR_STATE_SELECTION_QUOTA_EXCEED_ERROR"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "exclusionScope": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewExclusionScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "exemptCertifiedAccessConflicts": {
            "description": "this setting is used for access conflict type scope",
            "type": "boolean"
          },
          "expectedTicketCount": {
            "description": "The estimated number of review tasks that will be generated when the campaign starts.",
            "format": "int32",
            "type": "integer"
          },
          "hasAccuracySupport": {
            "description": "Whether the connectors in this campaign support accuracy checking.",
            "type": "boolean"
          },
          "id": {
            "description": "The unique identifier of this access review campaign.",
            "type": "string"
          },
          "inclusionScope": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewInclusionScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "multiApp": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.MultiAppSetup"
              },
              {
                "type": "null"
              }
            ]
          },
          "notificationConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.NotificationConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "policyId": {
            "description": "The ID of the review policy that governs how review tasks are assigned and resolved.",
            "type": "string"
          },
          "reviewInstructions": {
            "description": "Optional instructions displayed to reviewers when completing their review tasks.",
            "type": "string"
          },
          "reviewerAttributeConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.ReviewerAttributeConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "scheduledStartDate": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "scope": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "scopeType": {
            "description": "How the campaign's scope is defined, such as by entitlements or by users.\n See AccessReviewScopeType for the available values.",
            "enum": [
              "ACCESS_REVIEW_SCOPE_TYPE_UNSPECIFIED",
              "ACCESS_REVIEW_SCOPE_TYPE_BY_ENTITLEMENTS",
              "ACCESS_REVIEW_SCOPE_TYPE_BY_ACCESS_CONFLICTS",
              "ACCESS_REVIEW_SCOPE_TYPE_BY_RESOURCE",
              "ACCESS_REVIEW_SCOPE_TYPE_BY_INHERITANCE",
              "ACCESS_REVIEW_SCOPE_TYPE_BY_USERS",
              "ACCESS_REVIEW_SCOPE_TYPE_BY_ACCESS_PROFILES"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "scopeV2": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewScopeV2"
              },
              {
                "type": "null"
              }
            ]
          },
          "scopingVersion": {
            "description": "Internal version counter incremented when the campaign scope changes.",
            "format": "int64",
            "type": "string"
          },
          "signatureConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.ReviewSignatureConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "singleApp": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.SingleAppSetup"
              },
              {
                "type": "null"
              }
            ]
          },
          "startedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "state": {
            "description": "The current lifecycle state of the campaign (e.g., draft, open, closed).",
            "enum": [
              "ACCESS_REVIEW_STATE_UNSPECIFIED",
              "ACCESS_REVIEW_STATE_OPEN",
              "ACCESS_REVIEW_STATE_CLOSED",
              "ACCESS_REVIEW_STATE_PENDING",
              "ACCESS_REVIEW_STATE_REVIEW",
              "ACCESS_REVIEW_STATE_PREPARING",
              "ACCESS_REVIEW_STATE_STARTING",
              "ACCESS_REVIEW_STATE_DRAFT",
              "ACCESS_REVIEW_STATE_DELETING",
              "ACCESS_REVIEW_STATE_DELETED",
              "ACCESS_REVIEW_STATE_RESETTING_POLICIES",
              "ACCESS_REVIEW_STATE_COPYING_SETUP_ENTITLEMENTS",
              "ACCESS_REVIEW_STATE_COPYING_RESOURCE_TYPE_SELECTIONS"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "usePolicyOverride": {
            "description": "Determines the policy applied to the campaign. Default is false, using the campaign policy.\n If true, the order of precedence is entitlement → app → campaign policy.",
            "type": "boolean"
          }
        },
        "title": "Access Review",
        "type": "object",
        "x-speakeasy-entity": "Access Review",
        "x-speakeasy-name-override": "AccessReview"
      },
      "c1.api.accessreview.v1.AccessReviewActionsServiceGenerateReportRequestInput": {
        "description": "The AccessReviewActionsServiceGenerateReportRequest message.",
        "properties": {
          "format": {
            "description": "Output format for the report. When unspecified, programmatic public-API\n callers (REST gateway and MCP) get JSON and the in-app UI gets XLSX. JSON\n and CSV return the per-decision certification rows; XLSX returns the full\n multi-sheet Excel workbook.",
            "enum": [
              "ACCESS_REVIEW_REPORT_FORMAT_UNSPECIFIED",
              "ACCESS_REVIEW_REPORT_FORMAT_XLSX",
              "ACCESS_REVIEW_REPORT_FORMAT_JSON",
              "ACCESS_REVIEW_REPORT_FORMAT_CSV"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "reportColumnConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewReportColumnConfig"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Access Review Actions Service Generate Report Request",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewActionsServiceGenerateReportRequest"
      },
      "c1.api.accessreview.v1.AccessReviewActionsServiceGenerateReportResponse": {
        "description": "The AccessReviewActionsServiceGenerateReportResponse message.",
        "title": "Access Review Actions Service Generate Report Response",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewActionsServiceGenerateReportResponse"
      },
      "c1.api.accessreview.v1.AccessReviewAddCampaignEntitlementsRequestInput": {
        "description": "The AccessReviewAddCampaignEntitlementsRequest message.",
        "properties": {
          "entitlements": {
            "description": "The entitlements to add. Entitlements that are already selected are skipped.",
            "items": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewSetupEntitlementInput"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Access Review Add Campaign Entitlements Request",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewAddCampaignEntitlementsRequest"
      },
      "c1.api.accessreview.v1.AccessReviewAddCampaignEntitlementsResponse": {
        "description": "The AccessReviewAddCampaignEntitlementsResponse message.",
        "properties": {
          "entitlementCount": {
            "description": "The total number of entitlements selected for the campaign after this call.",
            "format": "int32",
            "type": "integer"
          }
        },
        "title": "Access Review Add Campaign Entitlements Response",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewAddCampaignEntitlementsResponse"
      },
      "c1.api.accessreview.v1.AccessReviewAddDeleteExcludedEntitlementsRequestInput": {
        "description": "Incrementally adds and/or removes excluded entitlements for a supported campaign scope without\n replacing the entire set (contrast AccessReviewSetCampaignScopeAndExcludedEntitlementsRequest).",
        "properties": {
          "toAdd": {
            "description": "The entitlements to add to the campaign's excluded set.",
            "items": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewExcludedEntitlementInput"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "toDelete": {
            "description": "The entitlements to remove from the campaign's excluded set.",
            "items": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewExcludedEntitlementInput"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Access Review Add Delete Excluded Entitlements Request",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewAddDeleteExcludedEntitlementsRequest"
      },
      "c1.api.accessreview.v1.AccessReviewAddDeleteExcludedEntitlementsResponse": {
        "description": "AccessReviewAddDeleteExcludedEntitlementsResponse is empty. Read the current exclusions with GetCampaignScopeAndEntitlements.",
        "title": "Access Review Add Delete Excluded Entitlements Response",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewAddDeleteExcludedEntitlementsResponse"
      },
      "c1.api.accessreview.v1.AccessReviewAddTemplateEntitlementsRequestInput": {
        "description": "The AccessReviewAddTemplateEntitlementsRequest message.",
        "properties": {
          "entitlements": {
            "description": "The entitlements to add. Entitlements that are already selected are skipped.",
            "items": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewTemplateSetupEntitlementInput"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Access Review Add Template Entitlements Request",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewAddTemplateEntitlementsRequest"
      },
      "c1.api.accessreview.v1.AccessReviewAddTemplateEntitlementsResponse": {
        "description": "The AccessReviewAddTemplateEntitlementsResponse message.",
        "properties": {
          "entitlementCount": {
            "description": "The total number of entitlements selected for the template after this call.",
            "format": "int32",
            "type": "integer"
          }
        },
        "title": "Access Review Add Template Entitlements Response",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewAddTemplateEntitlementsResponse"
      },
      "c1.api.accessreview.v1.AccessReviewColumnConfig": {
        "description": "Configuration for which columns are visible in the reviewer task list.",
        "properties": {
          "columns": {
            "deprecated": true,
            "description": "Deprecated: use `ordered_columns`, which can also include app user\n attribute columns.",
            "items": {
              "enum": [
                "ACCESS_REVIEW_TASK_COLUMN_UNSPECIFIED",
                "ACCESS_REVIEW_TASK_COLUMN_VIEW_LINK",
                "ACCESS_REVIEW_TASK_COLUMN_CURRENT_STATE",
                "ACCESS_REVIEW_TASK_COLUMN_ACCOUNT",
                "ACCESS_REVIEW_TASK_COLUMN_ACCOUNT_OWNER",
                "ACCESS_REVIEW_TASK_COLUMN_ENTITLEMENT",
                "ACCESS_REVIEW_TASK_COLUMN_ENTITLEMENT_DESCRIPTION",
                "ACCESS_REVIEW_TASK_COLUMN_RESOURCE",
                "ACCESS_REVIEW_TASK_COLUMN_RESOURCE_TYPE",
                "ACCESS_REVIEW_TASK_COLUMN_INSIGHTS",
                "ACCESS_REVIEW_TASK_COLUMN_RECOMMENDATION",
                "ACCESS_REVIEW_TASK_COLUMN_ASSIGNED_TO",
                "ACCESS_REVIEW_TASK_COLUMN_STATUS",
                "ACCESS_REVIEW_TASK_COLUMN_APP",
                "ACCESS_REVIEW_TASK_COLUMN_DUE",
                "ACCESS_REVIEW_TASK_COLUMN_PROJECT",
                "ACCESS_REVIEW_TASK_COLUMN_CREATED_ON",
                "ACCESS_REVIEW_TASK_COLUMN_TASK_AGE",
                "ACCESS_REVIEW_TASK_COLUMN_RESOLVED_ON",
                "ACCESS_REVIEW_TASK_COLUMN_ENROLLMENT_STATUS",
                "ACCESS_REVIEW_TASK_COLUMN_INHERITED_FROM",
                "ACCESS_REVIEW_TASK_COLUMN_DEPARTMENT",
                "ACCESS_REVIEW_TASK_COLUMN_JOB_TITLE",
                "ACCESS_REVIEW_TASK_COLUMN_CREATED_BY",
                "ACCESS_REVIEW_TASK_COLUMN_LAST_LOGIN",
                "ACCESS_REVIEW_TASK_COLUMN_RESOURCE_PARENT",
                "ACCESS_REVIEW_TASK_COLUMN_RESOURCE_CHILDREN",
                "ACCESS_REVIEW_TASK_COLUMN_APP_USER_USERNAME",
                "ACCESS_REVIEW_TASK_COLUMN_ACCESS_HOLDER_TYPE",
                "ACCESS_REVIEW_TASK_COLUMN_RISK_LEVEL",
                "ACCESS_REVIEW_TASK_COLUMN_COMPLIANCE_FRAMEWORK",
                "ACCESS_REVIEW_TASK_COLUMN_RESOURCE_DESCRIPTION"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "orderedColumns": {
            "description": "Ordered columns visible to reviewers, built-ins and attributes\n interleaved. Falls back to `columns`, then to the default set for the\n campaign's default_view.",
            "items": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewTaskColumnRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Access Review Column Config",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewColumnConfig"
      },
      "c1.api.accessreview.v1.AccessReviewExcludedEntitlement": {
        "description": "An entitlement excluded from a user-first access review campaign's scope.",
        "properties": {
          "accessReviewId": {
            "description": "The ID of the access review campaign this exclusion belongs to.",
            "type": "string"
          },
          "appEntitlementId": {
            "description": "The ID of the entitlement excluded from scope.",
            "type": "string"
          },
          "appId": {
            "description": "The ID of the application that owns the entitlement.",
            "type": "string"
          },
          "appResourceId": {
            "description": "The ID of the specific resource associated with this entitlement, if applicable.",
            "type": "string"
          },
          "appResourceTypeId": {
            "description": "The ID of the resource type associated with this entitlement, if applicable.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "tenantId": {
            "description": "The tenant that owns this exclusion.",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Access Review Excluded Entitlement",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewExcludedEntitlement"
      },
      "c1.api.accessreview.v1.AccessReviewExcludedEntitlementInput": {
        "description": "Identifies an entitlement to exclude from a supported campaign's scope.",
        "properties": {
          "appEntitlementId": {
            "description": "The ID of the entitlement to exclude.",
            "type": "string"
          },
          "appId": {
            "description": "The ID of the application that owns the entitlement.",
            "type": "string"
          }
        },
        "title": "Access Review Excluded Entitlement Input",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewExcludedEntitlementInput"
      },
      "c1.api.accessreview.v1.AccessReviewExcludedResourceType": {
        "description": "A resource type whose grants are excluded from a user-first access review campaign's scope.",
        "properties": {
          "accessReviewId": {
            "description": "The ID of the access review campaign this exclusion belongs to.",
            "type": "string"
          },
          "appId": {
            "description": "The ID of the application that owns the resource type.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "resourceTypeId": {
            "description": "The ID of the resource type excluded from scope.",
            "type": "string"
          },
          "tenantId": {
            "description": "The tenant that owns this exclusion.",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Access Review Excluded Resource Type",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewExcludedResourceType"
      },
      "c1.api.accessreview.v1.AccessReviewExcludedResourceTypeInput": {
        "description": "Identifies a resource type to exclude from a user-first campaign's scope.",
        "properties": {
          "appId": {
            "description": "The ID of the application that owns the resource type.",
            "type": "string"
          },
          "resourceTypeId": {
            "description": "The ID of the resource type to exclude.",
            "type": "string"
          }
        },
        "title": "Access Review Excluded Resource Type Input",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewExcludedResourceTypeInput"
      },
      "c1.api.accessreview.v1.AccessReviewExclusionScope": {
        "description": "The AccessReviewExclusionScope message.",
        "properties": {
          "appUserStatuses": {
            "description": "The appUserStatuses field.",
            "items": {
              "enum": [
                "APP_USER_STATUS_UNSPECIFIED",
                "APP_USER_STATUS_ENABLED",
                "APP_USER_STATUS_DISABLED",
                "APP_USER_STATUS_DELETED",
                "APP_USER_STATUS_PENDING"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appUserTypes": {
            "description": "The appUserTypes field.",
            "items": {
              "enum": [
                "APP_USER_TYPE_UNSPECIFIED",
                "APP_USER_TYPE_USER",
                "APP_USER_TYPE_SERVICE_ACCOUNT",
                "APP_USER_TYPE_SYSTEM_ACCOUNT"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Access Review Exclusion Scope",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewExclusionScope"
      },
      "c1.api.accessreview.v1.AccessReviewExpandMask": {
        "description": "The AccessReviewExpandMask message.",
        "properties": {
          "paths": {
            "description": "The paths field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Access Review Expand Mask",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewExpandMask"
      },
      "c1.api.accessreview.v1.AccessReviewInclusionScope": {
        "description": "The AccessReviewInclusionScope message.",
        "properties": {
          "appUserStatuses": {
            "description": "The appUserStatuses field.",
            "items": {
              "enum": [
                "APP_USER_STATUS_UNSPECIFIED",
                "APP_USER_STATUS_ENABLED",
                "APP_USER_STATUS_DISABLED",
                "APP_USER_STATUS_DELETED",
                "APP_USER_STATUS_PENDING"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appUserTypes": {
            "description": "The appUserTypes field.",
            "items": {
              "enum": [
                "APP_USER_TYPE_UNSPECIFIED",
                "APP_USER_TYPE_USER",
                "APP_USER_TYPE_SERVICE_ACCOUNT",
                "APP_USER_TYPE_SYSTEM_ACCOUNT"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "managerIds": {
            "description": "The managerIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "multiUserProfileAttributes": {
            "additionalProperties": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.IncludedUserAttributeValues"
            },
            "description": "The multiUserProfileAttributes field.",
            "type": "object"
          },
          "noAccountOwners": {
            "description": "The noAccountOwners field.",
            "type": "boolean"
          },
          "userIds": {
            "description": "The userIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "userStatuses": {
            "description": "The userStatuses field.",
            "items": {
              "enum": [
                "USER_UNKNOWN",
                "USER_ENABLED",
                "USER_DISABLED",
                "USER_DELETED"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Access Review Inclusion Scope",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewInclusionScope"
      },
      "c1.api.accessreview.v1.AccessReviewRemoveCampaignEntitlementsRequestInput": {
        "description": "The AccessReviewRemoveCampaignEntitlementsRequest message.",
        "properties": {
          "entitlements": {
            "description": "The entitlements to remove. Entitlements that are not selected are ignored.",
            "items": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewSetupEntitlementInput"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Access Review Remove Campaign Entitlements Request",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewRemoveCampaignEntitlementsRequest"
      },
      "c1.api.accessreview.v1.AccessReviewRemoveCampaignEntitlementsResponse": {
        "description": "The AccessReviewRemoveCampaignEntitlementsResponse message.",
        "properties": {
          "entitlementCount": {
            "description": "The total number of entitlements selected for the campaign after this call.",
            "format": "int32",
            "type": "integer"
          },
          "removedCount": {
            "description": "The number of entitlements from the request that were selected and are now removed.",
            "format": "int32",
            "type": "integer"
          }
        },
        "title": "Access Review Remove Campaign Entitlements Response",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewRemoveCampaignEntitlementsResponse"
      },
      "c1.api.accessreview.v1.AccessReviewRemoveTemplateEntitlementsRequestInput": {
        "description": "The AccessReviewRemoveTemplateEntitlementsRequest message.",
        "properties": {
          "entitlements": {
            "description": "The entitlements to remove. Entitlements that are not selected are ignored.",
            "items": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewTemplateSetupEntitlementInput"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Access Review Remove Template Entitlements Request",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewRemoveTemplateEntitlementsRequest"
      },
      "c1.api.accessreview.v1.AccessReviewRemoveTemplateEntitlementsResponse": {
        "description": "The AccessReviewRemoveTemplateEntitlementsResponse message.",
        "properties": {
          "entitlementCount": {
            "description": "The total number of entitlements selected for the template after this call.",
            "format": "int32",
            "type": "integer"
          },
          "removedCount": {
            "description": "The number of entitlements from the request that were selected and are now removed.",
            "format": "int32",
            "type": "integer"
          }
        },
        "title": "Access Review Remove Template Entitlements Response",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewRemoveTemplateEntitlementsResponse"
      },
      "c1.api.accessreview.v1.AccessReviewReport": {
        "description": "The AccessReviewReport message.",
        "properties": {
          "accessReviewId": {
            "description": "The accessReviewId field.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "downloadUrl": {
            "description": "The downloadUrl field.",
            "type": "string"
          },
          "format": {
            "description": "Output format of the generated file (XLSX / JSON / CSV).",
            "enum": [
              "ACCESS_REVIEW_REPORT_FORMAT_UNSPECIFIED",
              "ACCESS_REVIEW_REPORT_FORMAT_XLSX",
              "ACCESS_REVIEW_REPORT_FORMAT_JSON",
              "ACCESS_REVIEW_REPORT_FORMAT_CSV"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "hashes": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "The hashes field.",
            "type": "object"
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "state": {
            "description": "The state field.",
            "enum": [
              "REPORT_STATE_UNSPECIFIED",
              "REPORT_STATE_PENDING",
              "REPORT_STATE_OK",
              "REPORT_STATE_ERROR"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Access Review Report",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewReport"
      },
      "c1.api.accessreview.v1.AccessReviewReportColumnConfig": {
        "description": "Configuration for columns in the generated access review Excel report.",
        "properties": {
          "columns": {
            "description": "Ordered list of columns to include in the report's \"Access Reviews\" sheet.\n When non-empty, the report renders exactly these columns in the order given.\n When empty, the default column set is used (the original 19 columns without\n Employee ID or other user-attribute extras).",
            "items": {
              "enum": [
                "ACCESS_REVIEW_REPORT_COLUMN_UNSPECIFIED",
                "ACCESS_REVIEW_REPORT_COLUMN_EMPLOYEE_ID",
                "ACCESS_REVIEW_REPORT_COLUMN_JOB_TITLE",
                "ACCESS_REVIEW_REPORT_COLUMN_DEPARTMENT",
                "ACCESS_REVIEW_REPORT_COLUMN_EMPLOYMENT_STATUS",
                "ACCESS_REVIEW_REPORT_COLUMN_EMPLOYMENT_TYPE",
                "ACCESS_REVIEW_REPORT_COLUMN_MANAGER",
                "ACCESS_REVIEW_REPORT_COLUMN_TASK",
                "ACCESS_REVIEW_REPORT_COLUMN_ACCOUNT",
                "ACCESS_REVIEW_REPORT_COLUMN_USER_NAME",
                "ACCESS_REVIEW_REPORT_COLUMN_IDENTITY_TYPE",
                "ACCESS_REVIEW_REPORT_COLUMN_ACCOUNT_OWNER",
                "ACCESS_REVIEW_REPORT_COLUMN_ACCOUNT_OWNER_EMAIL",
                "ACCESS_REVIEW_REPORT_COLUMN_APPLICATION",
                "ACCESS_REVIEW_REPORT_COLUMN_RESOURCE",
                "ACCESS_REVIEW_REPORT_COLUMN_RESOURCE_TYPE",
                "ACCESS_REVIEW_REPORT_COLUMN_ENTITLEMENT",
                "ACCESS_REVIEW_REPORT_COLUMN_DESCRIPTION",
                "ACCESS_REVIEW_REPORT_COLUMN_CERTIFICATION_POLICY",
                "ACCESS_REVIEW_REPORT_COLUMN_ASSIGNED_TO",
                "ACCESS_REVIEW_REPORT_COLUMN_REASSIGNMENTS",
                "ACCESS_REVIEW_REPORT_COLUMN_CERTIFIERS",
                "ACCESS_REVIEW_REPORT_COLUMN_DECISIONS",
                "ACCESS_REVIEW_REPORT_COLUMN_RESOLVED_ON",
                "ACCESS_REVIEW_REPORT_COLUMN_COMMENTS",
                "ACCESS_REVIEW_REPORT_COLUMN_LAST_LOGIN",
                "ACCESS_REVIEW_REPORT_COLUMN_SUBMISSIONS",
                "ACCESS_REVIEW_REPORT_COLUMN_EXTERNAL_TICKET",
                "ACCESS_REVIEW_REPORT_COLUMN_EXTERNAL_TICKET_STATUS",
                "ACCESS_REVIEW_REPORT_COLUMN_SUBJECT_USERNAME",
                "ACCESS_REVIEW_REPORT_COLUMN_APP_ACCOUNT_STATUS",
                "ACCESS_REVIEW_REPORT_COLUMN_ACCOUNT_OWNER_ACCOUNT_STATUS",
                "ACCESS_REVIEW_REPORT_COLUMN_ACCESS_PROFILE",
                "ACCESS_REVIEW_REPORT_COLUMN_REVIEW_ITEM_TYPE",
                "ACCESS_REVIEW_REPORT_COLUMN_REVIEW_ITEM",
                "ACCESS_REVIEW_REPORT_COLUMN_REMEDIATION_TASK"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Access Review Report Column Config",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewReportColumnConfig"
      },
      "c1.api.accessreview.v1.AccessReviewReportServiceListResponse": {
        "description": "The AccessReviewReportServiceListResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewReport"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Access Review Report Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewReportServiceListResponse"
      },
      "c1.api.accessreview.v1.AccessReviewScope": {
        "description": "The AccessReviewScope message.",
        "properties": {
          "appUserStatuses": {
            "description": "The appUserStatuses field.",
            "items": {
              "enum": [
                "APP_USER_STATUS_UNSPECIFIED",
                "APP_USER_STATUS_ENABLED",
                "APP_USER_STATUS_DISABLED",
                "APP_USER_STATUS_DELETED",
                "APP_USER_STATUS_PENDING"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appUserTypes": {
            "description": "The appUserTypes field.",
            "items": {
              "enum": [
                "APP_USER_TYPE_UNSPECIFIED",
                "APP_USER_TYPE_USER",
                "APP_USER_TYPE_SERVICE_ACCOUNT",
                "APP_USER_TYPE_SYSTEM_ACCOUNT"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Access Review Scope",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewScope"
      },
      "c1.api.accessreview.v1.AccessReviewScopeV2": {
        "description": "The AccessReviewScopeV2 message.\n\nThis message contains a oneof named apps_and_resources_scope. Only a single field of the following list may be set at a time:\n  - appAccess\n  - specificResources\n  - appSelectionCriteria\n  - resourceTypeSelections\n\n\nThis message contains a oneof named users_scope. Only a single field of the following list may be set at a time:\n  - allUsers\n  - selectedUsers\n  - userCriteria\n  - celExpression\n\n\nThis message contains a oneof named accounts_scope. Only a single field of the following list may be set at a time:\n  - allAccounts\n  - accountCriteria\n  - accountCelExpression\n\n\nThis message contains a oneof named grants_scope. Only a single field of the following list may be set at a time:\n  - allGrants\n  - grantsByCriteria\n\n\nThis message contains a oneof named access_conflicts_scope. Only a single field of the following list may be set at a time:\n  - allAccessConflicts\n  - specificAccessConflicts\n\n\nThis message contains a oneof named resource_scope. Only a single field of the following list may be set at a time:\n  - resourceSelection\n\n\nThis message contains a oneof named excluded_apps_and_resources_scope. Only a single field of the following list may be set at a time:\n  - excludedSpecificResources\n  - excludedResourceTypeSelections\n  - excludedAppSelectionCriteria\n\n\nThis message contains a oneof named access_profiles_scope. Only a single field of the following list may be set at a time:\n  - specificAccessProfiles\n",
        "properties": {
          "accessProfileReviewDimensions": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessProfileReviewDimensions"
              },
              {
                "type": "null"
              }
            ]
          },
          "accountCelExpression": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.CelExpressionScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "accountCriteria": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccountCriteriaScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "allAccessConflicts": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AllAccessConflictsScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "allAccounts": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AllAccountsScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "allGrants": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AllGrantsScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "allUsers": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AllUsersScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "appAccess": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.ApplicationAccessScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "appSelectionCriteria": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AppSelectionCriteriaScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "celExpression": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.CelExpressionScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "excludedAppSelectionCriteria": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AppSelectionCriteriaScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "excludedResourceTypeSelections": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.ResourceTypeSelectionScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "excludedSpecificResources": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.SpecificResourcesScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "grantsByCriteria": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.GrantsByCriteriaScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "principalTypeFilter": {
            "description": "Filters principals included in the scope. Unspecified is treated as users.",
            "enum": [
              "PRINCIPAL_TYPE_FILTER_UNSPECIFIED",
              "PRINCIPAL_TYPE_FILTER_USERS",
              "PRINCIPAL_TYPE_FILTER_RESOURCES",
              "PRINCIPAL_TYPE_FILTER_USERS_AND_RESOURCES"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "resourceSelection": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.ResourceSelectionScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "resourceTypeSelections": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.ResourceTypeSelectionScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "scopeRoleSelection": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.ScopeRoleSelectionScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "selectedUsers": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.SelectedUsersScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "specificAccessConflicts": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.SpecificAccessConflictsScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "specificAccessProfiles": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.SpecificAccessProfilesScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "specificResources": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.SpecificResourcesScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "userCriteria": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.UserCriteriaScope"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Access Review Scope V 2",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewScopeV2"
      },
      "c1.api.accessreview.v1.AccessReviewServiceCreateRequest": {
        "description": "The AccessReviewServiceCreateRequest message.",
        "properties": {
          "completionDate": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "An optional description providing context about the campaign.",
            "type": "string"
          },
          "displayName": {
            "description": "The display name for the new campaign.",
            "type": "string"
          },
          "duplicateFrom": {
            "description": "The ID of an existing campaign to copy scope and entitlement configuration from. Optional.",
            "type": "string"
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "notificationConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.NotificationConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "ownerIds": {
            "description": "The IDs of the users who own and manage this campaign. At least one owner is required.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "policyId": {
            "description": "The ID of the review policy that governs task assignment and resolution.",
            "type": "string"
          },
          "scopeType": {
            "description": "How the campaign's scope is defined, such as by entitlements or by users. Treated as\n ACCESS_REVIEW_SCOPE_TYPE_BY_ENTITLEMENTS when unset. Some scope types require a feature to be\n enabled for your tenant. See AccessReviewScopeType for the available values.",
            "enum": [
              "ACCESS_REVIEW_SCOPE_TYPE_UNSPECIFIED",
              "ACCESS_REVIEW_SCOPE_TYPE_BY_ENTITLEMENTS",
              "ACCESS_REVIEW_SCOPE_TYPE_BY_ACCESS_CONFLICTS",
              "ACCESS_REVIEW_SCOPE_TYPE_BY_RESOURCE",
              "ACCESS_REVIEW_SCOPE_TYPE_BY_INHERITANCE",
              "ACCESS_REVIEW_SCOPE_TYPE_BY_USERS",
              "ACCESS_REVIEW_SCOPE_TYPE_BY_ACCESS_PROFILES"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "scopeV2": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewScopeV2"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Access Review Service Create Request",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewServiceCreateRequest"
      },
      "c1.api.accessreview.v1.AccessReviewServiceCreateResponse": {
        "description": "The AccessReviewServiceCreateResponse message.",
        "properties": {
          "accessReview": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewView"
              },
              {
                "type": "null"
              }
            ]
          },
          "expanded": {
            "description": "Related objects requested via the expand mask.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Access Review Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewServiceCreateResponse"
      },
      "c1.api.accessreview.v1.AccessReviewServiceDeleteRequestInput": {
        "description": "The AccessReviewServiceDeleteRequest message.",
        "title": "Access Review Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewServiceDeleteRequest"
      },
      "c1.api.accessreview.v1.AccessReviewServiceDeleteResponse": {
        "description": "The AccessReviewServiceDeleteResponse message.",
        "title": "Access Review Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewServiceDeleteResponse"
      },
      "c1.api.accessreview.v1.AccessReviewServiceGetResponse": {
        "description": "The AccessReviewServiceGetResponse message.",
        "properties": {
          "accessReview": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewView"
              },
              {
                "type": "null"
              }
            ]
          },
          "expanded": {
            "description": "Related objects requested via the expand mask.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Access Review Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewServiceGetResponse"
      },
      "c1.api.accessreview.v1.AccessReviewServiceListResponse": {
        "description": "The AccessReviewServiceListResponse message.",
        "properties": {
          "expanded": {
            "description": "Related objects requested via the expand mask.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "list": {
            "description": "The list of access review campaigns for the current page.",
            "items": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token to retrieve the next page, or empty if there are no more results.",
            "type": "string"
          }
        },
        "title": "Access Review Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewServiceListResponse"
      },
      "c1.api.accessreview.v1.AccessReviewServiceUpdateRequestInput": {
        "description": "The AccessReviewServiceUpdateRequest message.",
        "properties": {
          "accessReview": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReview"
              },
              {
                "type": "null"
              }
            ]
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Access Review Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewServiceUpdateRequest"
      },
      "c1.api.accessreview.v1.AccessReviewServiceUpdateResponse": {
        "description": "The AccessReviewServiceUpdateResponse message.",
        "properties": {
          "accessReview": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewView"
              },
              {
                "type": "null"
              }
            ]
          },
          "expanded": {
            "description": "Related objects requested via the expand mask.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Access Review Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewServiceUpdateResponse"
      },
      "c1.api.accessreview.v1.AccessReviewSetCampaignScopeAndExcludedEntitlementsRequestInput": {
        "description": "AccessReviewSetCampaignScopeAndExcludedEntitlementsRequest replaces a supported campaign's scope and excluded entitlements.\n To mark the excluded entitlements as the active exclusion type, scope_v2 must set excluded_specific_resources.",
        "properties": {
          "excludedEntitlements": {
            "description": "The entitlements to exclude from scope. Replaces all previously excluded entitlements.",
            "items": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewExcludedEntitlementInput"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "scopeV2": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewScopeV2"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Access Review Set Campaign Scope And Excluded Entitlements Request",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewSetCampaignScopeAndExcludedEntitlementsRequest"
      },
      "c1.api.accessreview.v1.AccessReviewSetCampaignScopeAndExcludedEntitlementsResponse": {
        "description": "AccessReviewSetCampaignScopeAndExcludedEntitlementsResponse contains the resulting excluded entitlements and scope.",
        "properties": {
          "excludedEntitlements": {
            "description": "The current entitlements excluded from scope.",
            "items": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewExcludedEntitlement"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "scopeV2": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewScopeV2"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Access Review Set Campaign Scope And Excluded Entitlements Response",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewSetCampaignScopeAndExcludedEntitlementsResponse"
      },
      "c1.api.accessreview.v1.AccessReviewSetCampaignScopeByExcludedResourceTypeRequestInput": {
        "description": "AccessReviewSetCampaignScopeByExcludedResourceTypeRequest replaces a user-first campaign's scope and excluded resource types.\n To mark the excluded resource types as the active exclusion type, scope_v2 must set excluded_resource_type_selections.",
        "properties": {
          "excludedResourceTypes": {
            "description": "The resource types to exclude from scope. Replaces all previously excluded resource types.",
            "items": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewExcludedResourceTypeInput"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "scopeV2": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewScopeV2"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Access Review Set Campaign Scope By Excluded Resource Type Request",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewSetCampaignScopeByExcludedResourceTypeRequest"
      },
      "c1.api.accessreview.v1.AccessReviewSetCampaignScopeByExcludedResourceTypeResponse": {
        "description": "AccessReviewSetCampaignScopeByExcludedResourceTypeResponse contains the resulting excluded resource types and scope.",
        "properties": {
          "excludedResourceTypes": {
            "description": "The current resource types excluded from scope.",
            "items": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewExcludedResourceType"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "scopeV2": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewScopeV2"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Access Review Set Campaign Scope By Excluded Resource Type Response",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewSetCampaignScopeByExcludedResourceTypeResponse"
      },
      "c1.api.accessreview.v1.AccessReviewSetScopeByResourceTypeRequestInput": {
        "description": "The AccessReviewSetScopeByResourceTypeRequest message.",
        "properties": {
          "resourceTypeSelections": {
            "description": "The resource types to include in the campaign scope. Replaces all previously selected resource types.",
            "items": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.ResourceTypeIdRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "scopeV2": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewScopeV2"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Access Review Set Scope By Resource Type Request",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewSetScopeByResourceTypeRequest"
      },
      "c1.api.accessreview.v1.AccessReviewSetScopeByResourceTypeResponse": {
        "description": "The AccessReviewSetScopeByResourceTypeResponse message.",
        "title": "Access Review Set Scope By Resource Type Response",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewSetScopeByResourceTypeResponse"
      },
      "c1.api.accessreview.v1.AccessReviewSetTemplateScopeAndExcludedEntitlementsRequestInput": {
        "description": "AccessReviewSetTemplateScopeAndExcludedEntitlementsRequest replaces a supported template's scope and excluded entitlements.\n To mark the excluded entitlements as the active exclusion type, scope must set excluded_specific_resources.",
        "properties": {
          "excludedEntitlements": {
            "description": "The entitlements to exclude from scope. Replaces all previously excluded entitlements.",
            "items": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewExcludedEntitlementInput"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "scope": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewScopeV2"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Access Review Set Template Scope And Excluded Entitlements Request",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewSetTemplateScopeAndExcludedEntitlementsRequest"
      },
      "c1.api.accessreview.v1.AccessReviewSetTemplateScopeAndExcludedEntitlementsResponse": {
        "description": "AccessReviewSetTemplateScopeAndExcludedEntitlementsResponse contains the resulting excluded entitlements and scope.",
        "properties": {
          "excludedEntitlements": {
            "description": "The current entitlements excluded from scope.",
            "items": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewTemplateExcludedEntitlement"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "scope": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewScopeV2"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Access Review Set Template Scope And Excluded Entitlements Response",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewSetTemplateScopeAndExcludedEntitlementsResponse"
      },
      "c1.api.accessreview.v1.AccessReviewSetTemplateScopeByExcludedResourceTypeRequestInput": {
        "description": "AccessReviewSetTemplateScopeByExcludedResourceTypeRequest replaces a user-first template's scope and excluded resource types.\n To mark the excluded resource types as the active exclusion type, scope must set excluded_resource_type_selections.",
        "properties": {
          "excludedResourceTypes": {
            "description": "The resource types to exclude from scope. Replaces all previously excluded resource types.",
            "items": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewExcludedResourceTypeInput"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "scope": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewScopeV2"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Access Review Set Template Scope By Excluded Resource Type Request",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewSetTemplateScopeByExcludedResourceTypeRequest"
      },
      "c1.api.accessreview.v1.AccessReviewSetTemplateScopeByExcludedResourceTypeResponse": {
        "description": "AccessReviewSetTemplateScopeByExcludedResourceTypeResponse contains the resulting excluded resource types and scope.",
        "properties": {
          "excludedResourceTypes": {
            "description": "The current resource types excluded from scope.",
            "items": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewTemplateExcludedResourceType"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "scope": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewScopeV2"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Access Review Set Template Scope By Excluded Resource Type Response",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewSetTemplateScopeByExcludedResourceTypeResponse"
      },
      "c1.api.accessreview.v1.AccessReviewSetupEntitlement": {
        "description": "An entitlement that has been selected for inclusion in an access review campaign during setup.",
        "properties": {
          "accessReviewId": {
            "description": "The ID of the access review campaign this entitlement belongs to.",
            "type": "string"
          },
          "appEntitlementId": {
            "description": "The ID of the entitlement being reviewed.",
            "type": "string"
          },
          "appId": {
            "description": "The ID of the application that owns the entitlement.",
            "type": "string"
          },
          "appResourceId": {
            "description": "The ID of the specific resource associated with this entitlement, if applicable.",
            "type": "string"
          },
          "appResourceTypeId": {
            "description": "The ID of the resource type associated with this entitlement, if applicable.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "customPolicyId": {
            "description": "An override policy ID for this specific entitlement. Populated when use_policy_override is enabled on the campaign.",
            "type": "string"
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "policyId": {
            "description": "The ID of the review policy applied to this entitlement. Defaults to the campaign policy.",
            "type": "string"
          },
          "tenantId": {
            "description": "The tenant that owns this setup entitlement.",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Access Review Setup Entitlement",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewSetupEntitlement"
      },
      "c1.api.accessreview.v1.AccessReviewSetupEntitlementAndScopeServiceSetRequestInput": {
        "description": "The AccessReviewSetupEntitlementAndScopeServiceSetRequest message.",
        "properties": {
          "entitlements": {
            "description": "The entitlements to include in the campaign. Replaces all previously selected entitlements.",
            "items": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewSetupEntitlementInput"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewSetupEntitlementExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "scopeV2": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewScopeV2"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Access Review Setup Entitlement And Scope Service Set Request",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewSetupEntitlementAndScopeServiceSetRequest"
      },
      "c1.api.accessreview.v1.AccessReviewSetupEntitlementAndScopeServiceSetResponse": {
        "description": "The AccessReviewSetupEntitlementAndScopeServiceSetResponse message.",
        "properties": {
          "excludedEntitlements": {
            "description": "The entitlements excluded from the campaign's scope. Only returned by\n GetCampaignScopeAndEntitlements, and only when scope_v2 sets excluded_specific_resources.",
            "items": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewExcludedEntitlement"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "excludedResourceTypes": {
            "description": "The resource types excluded from a user-first campaign's scope. Only returned by\n GetCampaignScopeAndEntitlements, and only when scope_v2 sets excluded_resource_type_selections.",
            "items": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewExcludedResourceType"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "expanded": {
            "description": "Related objects requested via the expand mask.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "list": {
            "description": "The current list of setup entitlements for the campaign.",
            "items": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewSetupEntitlementView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "scopeV2": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewScopeV2"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Access Review Setup Entitlement And Scope Service Set Response",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewSetupEntitlementAndScopeServiceSetResponse"
      },
      "c1.api.accessreview.v1.AccessReviewSetupEntitlementExpandMask": {
        "description": "The AccessReviewSetupEntitlementExpandMask message.",
        "properties": {
          "paths": {
            "description": "The paths field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Access Review Setup Entitlement Expand Mask",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewSetupEntitlementExpandMask"
      },
      "c1.api.accessreview.v1.AccessReviewSetupEntitlementInput": {
        "description": "Identifies an entitlement to add or remove from a campaign's setup.",
        "properties": {
          "appEntitlementId": {
            "description": "The ID of the entitlement.",
            "type": "string"
          },
          "appId": {
            "description": "The ID of the application that owns the entitlement.",
            "type": "string"
          }
        },
        "title": "Access Review Setup Entitlement Input",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewSetupEntitlementInput"
      },
      "c1.api.accessreview.v1.AccessReviewSetupEntitlementView": {
        "description": "The AccessReviewSetupEntitlementView message.",
        "properties": {
          "accessReviewEntitlement": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewSetupEntitlement"
              },
              {
                "type": "null"
              }
            ]
          },
          "appPath": {
            "description": "The appPath field.",
            "type": "string"
          },
          "entitlementPath": {
            "description": "The entitlementPath field.",
            "type": "string"
          },
          "policyPath": {
            "description": "The policyPath field.",
            "type": "string"
          }
        },
        "title": "Access Review Setup Entitlement View",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewSetupEntitlementView"
      },
      "c1.api.accessreview.v1.AccessReviewTaskColumnRef": {
        "description": "One column in the reviewer task list: a built-in column, or an app user\n profile attribute. An attribute only renders for apps whose\n reviewer_attribute_config permits it — that config is the authorization,\n this is the view preference.\n\nThis message contains a oneof named column. Only a single field of the following list may be set at a time:\n  - builtin\n  - appUserAttributeKey\n",
        "properties": {
          "appUserAttributeKey": {
            "description": "The appUserAttributeKey field.\nThis field is part of the `column` oneof.\nSee the documentation for `c1.api.accessreview.v1.AccessReviewTaskColumnRef` for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "builtin": {
            "description": "The builtin field.\nThis field is part of the `column` oneof.\nSee the documentation for `c1.api.accessreview.v1.AccessReviewTaskColumnRef` for more details.",
            "enum": [
              "ACCESS_REVIEW_TASK_COLUMN_UNSPECIFIED",
              "ACCESS_REVIEW_TASK_COLUMN_VIEW_LINK",
              "ACCESS_REVIEW_TASK_COLUMN_CURRENT_STATE",
              "ACCESS_REVIEW_TASK_COLUMN_ACCOUNT",
              "ACCESS_REVIEW_TASK_COLUMN_ACCOUNT_OWNER",
              "ACCESS_REVIEW_TASK_COLUMN_ENTITLEMENT",
              "ACCESS_REVIEW_TASK_COLUMN_ENTITLEMENT_DESCRIPTION",
              "ACCESS_REVIEW_TASK_COLUMN_RESOURCE",
              "ACCESS_REVIEW_TASK_COLUMN_RESOURCE_TYPE",
              "ACCESS_REVIEW_TASK_COLUMN_INSIGHTS",
              "ACCESS_REVIEW_TASK_COLUMN_RECOMMENDATION",
              "ACCESS_REVIEW_TASK_COLUMN_ASSIGNED_TO",
              "ACCESS_REVIEW_TASK_COLUMN_STATUS",
              "ACCESS_REVIEW_TASK_COLUMN_APP",
              "ACCESS_REVIEW_TASK_COLUMN_DUE",
              "ACCESS_REVIEW_TASK_COLUMN_PROJECT",
              "ACCESS_REVIEW_TASK_COLUMN_CREATED_ON",
              "ACCESS_REVIEW_TASK_COLUMN_TASK_AGE",
              "ACCESS_REVIEW_TASK_COLUMN_RESOLVED_ON",
              "ACCESS_REVIEW_TASK_COLUMN_ENROLLMENT_STATUS",
              "ACCESS_REVIEW_TASK_COLUMN_INHERITED_FROM",
              "ACCESS_REVIEW_TASK_COLUMN_DEPARTMENT",
              "ACCESS_REVIEW_TASK_COLUMN_JOB_TITLE",
              "ACCESS_REVIEW_TASK_COLUMN_CREATED_BY",
              "ACCESS_REVIEW_TASK_COLUMN_LAST_LOGIN",
              "ACCESS_REVIEW_TASK_COLUMN_RESOURCE_PARENT",
              "ACCESS_REVIEW_TASK_COLUMN_RESOURCE_CHILDREN",
              "ACCESS_REVIEW_TASK_COLUMN_APP_USER_USERNAME",
              "ACCESS_REVIEW_TASK_COLUMN_ACCESS_HOLDER_TYPE",
              "ACCESS_REVIEW_TASK_COLUMN_RISK_LEVEL",
              "ACCESS_REVIEW_TASK_COLUMN_COMPLIANCE_FRAMEWORK",
              "ACCESS_REVIEW_TASK_COLUMN_RESOURCE_DESCRIPTION"
            ],
            "type": [
              "string",
              "null"
            ],
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Access Review Task Column Ref",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewTaskColumnRef"
      },
      "c1.api.accessreview.v1.AccessReviewTemplate": {
        "description": "A reusable template that defines the configuration for creating access review campaigns.\n Templates can optionally be scheduled to automatically create campaigns on a recurring basis.\n\nThis message contains a oneof named slack_channel_details. Only a single field of the following list may be set at a time:\n  - slackChannel\n  - msTeamsChannel\n",
        "properties": {
          "accessReviewDuration": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "accuracyIssueAction": {
            "description": "The accuracyIssueAction field.",
            "enum": [
              "ACCURACY_ISSUE_ACTION_UNSPECIFIED",
              "ACCURACY_ISSUE_ACTION_CONTINUE",
              "ACCURACY_ISSUE_ACTION_WAIT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "annotations": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Key/value metadata. Up to 16 entries; keys 1-128 chars; values 0-256\n chars; URL-safe ASCII. Keys starting with `c1/` are reserved.\n\n Updates have PATCH semantics: keys absent from the request are\n preserved; an empty value deletes the key.\n\n Well-known keys: `managed_by`, `iac_workspace`,\n `iac_resource_address`, `iac_tool_version`.",
            "type": "object",
            "x-speakeasy-terraform-plan-modifier": {
              "imports": [
                "github.com/conductorone/terraform-provider-conductorone/internal/annotations"
              ],
              "schemaDefinition": "annotations.PlanModifier()"
            }
          },
          "autoCloseCampaign": {
            "description": "Auto-close configuration\n start date and access_review_duration will be used to calculate the scheduled close date",
            "type": "boolean"
          },
          "autoCloseDecision": {
            "description": "The autoCloseDecision field.",
            "enum": [
              "CLOSE_DECISION_UNSPECIFIED",
              "CLOSE_DECISION_REVOKED",
              "CLOSE_DECISION_SKIP",
              "CLOSE_DECISION_NO_ACTION"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "autoGenerateReport": {
            "description": "auto generate report when campaign is closed",
            "type": "boolean"
          },
          "autoStartCampaign": {
            "description": "Auto-start configuration\n next_scheduled_campaign_at will be used as the scheduled start date",
            "type": "boolean"
          },
          "campaignSchedule": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.CampaignSchedule"
              },
              {
                "type": "null"
              }
            ]
          },
          "columnConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewColumnConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "defaultView": {
            "description": "The defaultView field.",
            "enum": [
              "ACCESS_REVIEW_VIEW_TYPE_UNSPECIFIED",
              "ACCESS_REVIEW_VIEW_TYPE_BY_APP",
              "ACCESS_REVIEW_VIEW_TYPE_BY_USER",
              "ACCESS_REVIEW_VIEW_TYPE_UNSTRUCTURED",
              "ACCESS_REVIEW_VIEW_TYPE_BY_RESOURCE",
              "ACCESS_REVIEW_VIEW_TYPE_BY_ACCESS_PROFILE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "An optional description providing context about this template.",
            "type": "string"
          },
          "displayName": {
            "description": "The human-readable name of this template.",
            "type": "string"
          },
          "exemptCertifiedAccessConflicts": {
            "description": "The exemptCertifiedAccessConflicts field.",
            "type": "boolean"
          },
          "id": {
            "description": "The unique identifier of this template.",
            "type": "string"
          },
          "inclusionScope": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewInclusionScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "isCampaignScheduleEnabled": {
            "description": "Whether automatic campaign creation on the recurrence schedule is enabled.",
            "type": "boolean"
          },
          "msTeamsChannel": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.MSTeamsChannel"
              },
              {
                "type": "null"
              }
            ]
          },
          "nextScheduledCampaignAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "notificationConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.NotificationConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "occurrences": {
            "description": "The number of campaigns that have been created from this template.",
            "format": "int32",
            "type": "integer"
          },
          "policyId": {
            "description": "The ID of the default review policy applied to campaigns created from this template.",
            "type": "string"
          },
          "recurrenceRule": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.RecurrenceRule"
              },
              {
                "type": "null"
              }
            ]
          },
          "reviewInstructions": {
            "description": "The reviewInstructions field.",
            "type": "string"
          },
          "reviewerAttributeConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.ReviewerAttributeConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "scope": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewScopeV2"
              },
              {
                "type": "null"
              }
            ]
          },
          "scopeType": {
            "description": "The scopeType field.",
            "enum": [
              "ACCESS_REVIEW_SCOPE_TYPE_UNSPECIFIED",
              "ACCESS_REVIEW_SCOPE_TYPE_BY_ENTITLEMENTS",
              "ACCESS_REVIEW_SCOPE_TYPE_BY_ACCESS_CONFLICTS",
              "ACCESS_REVIEW_SCOPE_TYPE_BY_RESOURCE",
              "ACCESS_REVIEW_SCOPE_TYPE_BY_INHERITANCE",
              "ACCESS_REVIEW_SCOPE_TYPE_BY_USERS",
              "ACCESS_REVIEW_SCOPE_TYPE_BY_ACCESS_PROFILES"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "signatureConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.ReviewSignatureConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "slackChannel": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.SlackChannel"
              },
              {
                "type": "null"
              }
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "usePolicyOverride": {
            "description": "The usePolicyOverride field.",
            "type": "boolean"
          }
        },
        "title": "Access Review Template",
        "type": "object",
        "x-speakeasy-entity": "Access Review Template",
        "x-speakeasy-name-override": "AccessReviewTemplate"
      },
      "c1.api.accessreview.v1.AccessReviewTemplateAddDeleteExcludedEntitlementsRequestInput": {
        "description": "Incrementally adds and/or removes excluded entitlements for a supported access review\n template without replacing the entire set (contrast\n AccessReviewSetTemplateScopeAndExcludedEntitlementsRequest).",
        "properties": {
          "toAdd": {
            "description": "The entitlements to add to the template's excluded set.",
            "items": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewExcludedEntitlementInput"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "toDelete": {
            "description": "The entitlements to remove from the template's excluded set.",
            "items": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewExcludedEntitlementInput"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Access Review Template Add Delete Excluded Entitlements Request",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewTemplateAddDeleteExcludedEntitlementsRequest"
      },
      "c1.api.accessreview.v1.AccessReviewTemplateAddDeleteExcludedEntitlementsResponse": {
        "description": "AccessReviewTemplateAddDeleteExcludedEntitlementsResponse is empty. Read the current exclusions with GetScopeAndEntitlements.",
        "title": "Access Review Template Add Delete Excluded Entitlements Response",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewTemplateAddDeleteExcludedEntitlementsResponse"
      },
      "c1.api.accessreview.v1.AccessReviewTemplateExcludedEntitlement": {
        "description": "An entitlement excluded from a supported access review template's scope.",
        "properties": {
          "accessReviewTemplateId": {
            "description": "The ID of the access review template this exclusion belongs to.",
            "type": "string"
          },
          "appEntitlementId": {
            "description": "The ID of the entitlement excluded from scope.",
            "type": "string"
          },
          "appId": {
            "description": "The ID of the application that owns the entitlement.",
            "type": "string"
          },
          "appResourceId": {
            "description": "The ID of the specific resource associated with this entitlement, if applicable.",
            "type": "string"
          },
          "appResourceTypeId": {
            "description": "The ID of the resource type associated with this entitlement, if applicable.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "tenantId": {
            "description": "The tenant that owns this exclusion.",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Access Review Template Excluded Entitlement",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewTemplateExcludedEntitlement"
      },
      "c1.api.accessreview.v1.AccessReviewTemplateExcludedResourceType": {
        "description": "A resource type whose grants are excluded from a user-first access review template's scope.",
        "properties": {
          "accessReviewTemplateId": {
            "description": "The ID of the access review template this exclusion belongs to.",
            "type": "string"
          },
          "appId": {
            "description": "The ID of the application that owns the resource type.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "resourceTypeId": {
            "description": "The ID of the resource type excluded from scope.",
            "type": "string"
          },
          "tenantId": {
            "description": "The tenant that owns this exclusion.",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Access Review Template Excluded Resource Type",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewTemplateExcludedResourceType"
      },
      "c1.api.accessreview.v1.AccessReviewTemplateServiceCreateRequest": {
        "description": "The AccessReviewTemplateServiceCreateRequest message.",
        "properties": {
          "accessReviewDuration": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "accuracyIssueAction": {
            "description": "The accuracyIssueAction field.",
            "enum": [
              "ACCURACY_ISSUE_ACTION_UNSPECIFIED",
              "ACCURACY_ISSUE_ACTION_CONTINUE",
              "ACCURACY_ISSUE_ACTION_WAIT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "annotations": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Bounded key/value metadata bag for IaC marking and customer tags.\n See .rfcs/object-annotations.md §2. Limits: ≤16 entries; keys 1–128\n chars matching ^[A-Za-z][A-Za-z0-9._/-]{0,127}$; values 0–256 chars\n matching URL-safe ASCII; total serialized ≤4096 bytes. Keys starting\n with `c1/` are reserved for server-managed use and rejected on write.\n\n Well-known keys: `managed_by`, `iac_workspace`,\n `iac_resource_address`, `iac_tool_version`.",
            "type": "object",
            "x-speakeasy-terraform-plan-modifier": {
              "imports": [
                "github.com/conductorone/terraform-provider-conductorone/internal/annotations"
              ],
              "schemaDefinition": "annotations.PlanModifier()"
            }
          },
          "autoCloseCampaign": {
            "description": "The autoCloseCampaign field.",
            "type": "boolean"
          },
          "autoCloseDecision": {
            "description": "The autoCloseDecision field.",
            "enum": [
              "CLOSE_DECISION_UNSPECIFIED",
              "CLOSE_DECISION_REVOKED",
              "CLOSE_DECISION_SKIP",
              "CLOSE_DECISION_NO_ACTION"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "autoGenerateReport": {
            "description": "auto generate report when campaign is closed",
            "type": "boolean"
          },
          "autoStartCampaign": {
            "description": "The autoStartCampaign field.",
            "type": "boolean"
          },
          "columnConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewColumnConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "defaultView": {
            "description": "The defaultView field.",
            "enum": [
              "ACCESS_REVIEW_VIEW_TYPE_UNSPECIFIED",
              "ACCESS_REVIEW_VIEW_TYPE_BY_APP",
              "ACCESS_REVIEW_VIEW_TYPE_BY_USER",
              "ACCESS_REVIEW_VIEW_TYPE_UNSTRUCTURED",
              "ACCESS_REVIEW_VIEW_TYPE_BY_RESOURCE",
              "ACCESS_REVIEW_VIEW_TYPE_BY_ACCESS_PROFILE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "description": {
            "description": "An optional description providing context about the template.",
            "type": "string"
          },
          "displayName": {
            "description": "The display name for the new template.",
            "type": "string"
          },
          "exemptCertifiedAccessConflicts": {
            "description": "The exemptCertifiedAccessConflicts field.",
            "type": "boolean"
          },
          "isCampaignScheduleEnabled": {
            "description": "The isCampaignScheduleEnabled field.",
            "type": "boolean"
          },
          "notificationConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.NotificationConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "ownerIds": {
            "description": "The IDs of the users who own this template. At least one owner is required.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "policyId": {
            "description": "The ID of the default review policy for campaigns created from this template.",
            "type": "string"
          },
          "recurrenceRule": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.RecurrenceRule"
              },
              {
                "type": "null"
              }
            ]
          },
          "reviewInstructions": {
            "description": "The reviewInstructions field.",
            "type": "string"
          },
          "reviewerAttributeConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.ReviewerAttributeConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "scope": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewScopeV2"
              },
              {
                "type": "null"
              }
            ]
          },
          "scopeType": {
            "description": "How the template's scope is defined, such as by entitlements or by users. Campaigns created\n from the template use this scope type. Treated as ACCESS_REVIEW_SCOPE_TYPE_BY_ENTITLEMENTS\n when unset. See AccessReviewScopeType for the available values.",
            "enum": [
              "ACCESS_REVIEW_SCOPE_TYPE_UNSPECIFIED",
              "ACCESS_REVIEW_SCOPE_TYPE_BY_ENTITLEMENTS",
              "ACCESS_REVIEW_SCOPE_TYPE_BY_ACCESS_CONFLICTS",
              "ACCESS_REVIEW_SCOPE_TYPE_BY_RESOURCE",
              "ACCESS_REVIEW_SCOPE_TYPE_BY_INHERITANCE",
              "ACCESS_REVIEW_SCOPE_TYPE_BY_USERS",
              "ACCESS_REVIEW_SCOPE_TYPE_BY_ACCESS_PROFILES"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "signatureConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.ReviewSignatureConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "usePolicyOverride": {
            "description": "The usePolicyOverride field.",
            "type": "boolean"
          }
        },
        "title": "Access Review Template Service Create Request",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewTemplateServiceCreateRequest"
      },
      "c1.api.accessreview.v1.AccessReviewTemplateServiceCreateResponse": {
        "description": "The AccessReviewTemplateServiceCreateResponse message.",
        "properties": {
          "accessReviewTemplate": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewTemplate"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Access Review Template Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewTemplateServiceCreateResponse"
      },
      "c1.api.accessreview.v1.AccessReviewTemplateServiceDeleteRequestInput": {
        "description": "The AccessReviewTemplateServiceDeleteRequest message.",
        "title": "Access Review Template Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewTemplateServiceDeleteRequest"
      },
      "c1.api.accessreview.v1.AccessReviewTemplateServiceDeleteResponse": {
        "description": "The AccessReviewTemplateServiceDeleteResponse message.",
        "title": "Access Review Template Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewTemplateServiceDeleteResponse"
      },
      "c1.api.accessreview.v1.AccessReviewTemplateServiceGetResponse": {
        "description": "The AccessReviewTemplateServiceGetResponse message.",
        "properties": {
          "accessReviewTemplate": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewTemplate"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Access Review Template Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewTemplateServiceGetResponse"
      },
      "c1.api.accessreview.v1.AccessReviewTemplateServiceUpdateRequestInput": {
        "description": "The AccessReviewTemplateServiceUpdateRequest message.",
        "properties": {
          "accessReviewTemplate": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewTemplate"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Access Review Template Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewTemplateServiceUpdateRequest"
      },
      "c1.api.accessreview.v1.AccessReviewTemplateServiceUpdateResponse": {
        "description": "The AccessReviewTemplateServiceUpdateResponse message.",
        "properties": {
          "accessReviewTemplate": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewTemplate"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Access Review Template Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewTemplateServiceUpdateResponse"
      },
      "c1.api.accessreview.v1.AccessReviewTemplateSetScopeByResourceTypeRequestInput": {
        "description": "The AccessReviewTemplateSetScopeByResourceTypeRequest message.",
        "properties": {
          "resourceTypeSelections": {
            "description": "The resource types to include in the template scope. Replaces all previously selected resource types.",
            "items": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.ResourceTypeIdRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "scope": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewScopeV2"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Access Review Template Set Scope By Resource Type Request",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewTemplateSetScopeByResourceTypeRequest"
      },
      "c1.api.accessreview.v1.AccessReviewTemplateSetScopeByResourceTypeResponse": {
        "description": "The AccessReviewTemplateSetScopeByResourceTypeResponse message.",
        "title": "Access Review Template Set Scope By Resource Type Response",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewTemplateSetScopeByResourceTypeResponse"
      },
      "c1.api.accessreview.v1.AccessReviewTemplateSetupEntitlement": {
        "description": "An entitlement that has been selected for inclusion in an access review template's scope.",
        "properties": {
          "accessReviewTemplateId": {
            "description": "The ID of the access review template this entitlement belongs to.",
            "type": "string"
          },
          "appEntitlementId": {
            "description": "The ID of the entitlement to be reviewed.",
            "type": "string"
          },
          "appId": {
            "description": "The ID of the application that owns the entitlement.",
            "type": "string"
          },
          "appResourceId": {
            "description": "The ID of the specific resource associated with this entitlement, if applicable.",
            "type": "string"
          },
          "appResourceTypeId": {
            "description": "The ID of the resource type associated with this entitlement, if applicable.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "customPolicyId": {
            "description": "An override policy ID for this specific entitlement. Populated when use_policy_override is enabled on the template.",
            "type": "string"
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "policyId": {
            "description": "The ID of the review policy applied to this entitlement. Defaults to the template policy.",
            "type": "string"
          },
          "tenantId": {
            "description": "The tenant that owns this setup entitlement.",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Access Review Template Setup Entitlement",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewTemplateSetupEntitlement"
      },
      "c1.api.accessreview.v1.AccessReviewTemplateSetupEntitlementExpandMask": {
        "description": "The AccessReviewTemplateSetupEntitlementExpandMask message.",
        "properties": {
          "paths": {
            "description": "The paths field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Access Review Template Setup Entitlement Expand Mask",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewTemplateSetupEntitlementExpandMask"
      },
      "c1.api.accessreview.v1.AccessReviewTemplateSetupEntitlementInput": {
        "description": "Identifies an entitlement to add or remove from a template's setup.",
        "properties": {
          "appEntitlementId": {
            "description": "The ID of the entitlement.",
            "type": "string"
          },
          "appId": {
            "description": "The ID of the application that owns the entitlement.",
            "type": "string"
          }
        },
        "title": "Access Review Template Setup Entitlement Input",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewTemplateSetupEntitlementInput"
      },
      "c1.api.accessreview.v1.AccessReviewTemplateSetupEntitlementServiceSetRequestInput": {
        "description": "The AccessReviewTemplateSetupEntitlementServiceSetRequest message.",
        "properties": {
          "entitlements": {
            "description": "The entitlements to include in the template. Replaces all previously selected entitlements.",
            "items": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewTemplateSetupEntitlementInput"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewTemplateSetupEntitlementExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "scope": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewScopeV2"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Access Review Template Setup Entitlement Service Set Request",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewTemplateSetupEntitlementServiceSetRequest"
      },
      "c1.api.accessreview.v1.AccessReviewTemplateSetupEntitlementServiceSetResponse": {
        "description": "The AccessReviewTemplateSetupEntitlementServiceSetResponse message.",
        "properties": {
          "excludedEntitlements": {
            "description": "The entitlements excluded from the template's scope. Only returned by\n GetScopeAndEntitlements, and only when scope sets excluded_specific_resources.",
            "items": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewTemplateExcludedEntitlement"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "excludedResourceTypes": {
            "description": "The resource types excluded from a user-first template's scope. Only returned by\n GetScopeAndEntitlements, and only when scope sets excluded_resource_type_selections.",
            "items": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewTemplateExcludedResourceType"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "expanded": {
            "description": "Related objects requested via the expand mask.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "list": {
            "description": "The current list of setup entitlements for the template.",
            "items": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewTemplateSetupEntitlementView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "scope": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewScopeV2"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Access Review Template Setup Entitlement Service Set Response",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewTemplateSetupEntitlementServiceSetResponse"
      },
      "c1.api.accessreview.v1.AccessReviewTemplateSetupEntitlementView": {
        "description": "The AccessReviewTemplateSetupEntitlementView message.",
        "properties": {
          "accessReviewTemplateEntitlement": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewTemplateSetupEntitlement"
              },
              {
                "type": "null"
              }
            ]
          },
          "appPath": {
            "description": "The appPath field.",
            "type": "string"
          },
          "entitlementPath": {
            "description": "The entitlementPath field.",
            "type": "string"
          },
          "policyPath": {
            "description": "The policyPath field.",
            "type": "string"
          }
        },
        "title": "Access Review Template Setup Entitlement View",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewTemplateSetupEntitlementView"
      },
      "c1.api.accessreview.v1.AccessReviewView": {
        "description": "The AccessReviewView message.",
        "properties": {
          "accessReview": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReview"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdByUserPath": {
            "description": "The createdByUserPath field.",
            "type": "string"
          },
          "objectPermissions": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.iam.v1.ActorObjectPermissions"
              },
              {
                "type": "null"
              }
            ]
          },
          "policyPath": {
            "description": "The policyPath field.",
            "type": "string"
          }
        },
        "title": "Access Review View",
        "type": "object",
        "x-speakeasy-name-override": "AccessReviewView"
      },
      "c1.api.accessreview.v1.AccountCriteriaScope": {
        "description": "The AccountCriteriaScope message.",
        "properties": {
          "accountDomain": {
            "description": "The accountDomain field.",
            "enum": [
              "APP_USER_DOMAIN_UNSPECIFIED",
              "APP_USER_DOMAIN_EXTERNAL",
              "APP_USER_DOMAIN_TRUSTED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "accountTypes": {
            "description": "The accountTypes field.",
            "items": {
              "enum": [
                "APP_USER_TYPE_UNSPECIFIED",
                "APP_USER_TYPE_USER",
                "APP_USER_TYPE_SERVICE_ACCOUNT",
                "APP_USER_TYPE_SYSTEM_ACCOUNT"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appUserStatuses": {
            "description": "The appUserStatuses field.",
            "items": {
              "enum": [
                "APP_USER_STATUS_UNSPECIFIED",
                "APP_USER_STATUS_ENABLED",
                "APP_USER_STATUS_DISABLED",
                "APP_USER_STATUS_DELETED",
                "APP_USER_STATUS_PENDING"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "noAccountOwner": {
            "description": "The noAccountOwner field.",
            "type": "boolean"
          }
        },
        "title": "Account Criteria Scope",
        "type": "object",
        "x-speakeasy-name-override": "AccountCriteriaScope"
      },
      "c1.api.accessreview.v1.AllAccessConflictsScope": {
        "description": "The AllAccessConflictsScope message.",
        "title": "All Access Conflicts Scope",
        "type": "object",
        "x-speakeasy-name-override": "AllAccessConflictsScope"
      },
      "c1.api.accessreview.v1.AllAccountsScope": {
        "description": "The AllAccountsScope message.",
        "title": "All Accounts Scope",
        "type": "object",
        "x-speakeasy-name-override": "AllAccountsScope"
      },
      "c1.api.accessreview.v1.AllGrantsScope": {
        "description": "The AllGrantsScope message.",
        "title": "All Grants Scope",
        "type": "object",
        "x-speakeasy-name-override": "AllGrantsScope"
      },
      "c1.api.accessreview.v1.AllUsersScope": {
        "description": "The AllUsersScope message.",
        "title": "All Users Scope",
        "type": "object",
        "x-speakeasy-name-override": "AllUsersScope"
      },
      "c1.api.accessreview.v1.AppSelectionCriteriaScope": {
        "description": "Selects entitlements matching every set field; values within a field are alternatives.",
        "properties": {
          "annotationMatches": {
            "description": "Entitlements whose annotations match at least one entry (exact key and value). Requires app_ids; applies across every selected app.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AnnotationMatch"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appIds": {
            "description": "The appIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "complianceFrameworkAttributeValueIds": {
            "description": "The complianceFrameworkAttributeValueIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "resourceProfileMatches": {
            "description": "Entitlements whose resource profile matches at least one entry. Requires app_ids; applies across every selected app.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.ResourceProfileMatch"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "resourceTypeRefs": {
            "description": "The resourceTypeRefs field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.ResourceTypeRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "riskLevelAttributeValueIds": {
            "description": "The riskLevelAttributeValueIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "App Selection Criteria Scope",
        "type": "object",
        "x-speakeasy-name-override": "AppSelectionCriteriaScope"
      },
      "c1.api.accessreview.v1.ApplicationAccessScope": {
        "description": "The ApplicationAccessScope message.",
        "title": "Application Access Scope",
        "type": "object",
        "x-speakeasy-name-override": "ApplicationAccessScope"
      },
      "c1.api.accessreview.v1.BindingObjectSetup": {
        "description": "The BindingObjectSetup message.",
        "title": "Binding Object Setup",
        "type": "object",
        "x-speakeasy-name-override": "BindingObjectSetup"
      },
      "c1.api.accessreview.v1.CampaignEntitlementDetails": {
        "description": "The CampaignEntitlementDetails message.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "entitlementId": {
            "description": "The entitlementId field.",
            "type": "string"
          },
          "policyId": {
            "description": "The policyId field.",
            "type": "string"
          }
        },
        "title": "Campaign Entitlement Details",
        "type": "object",
        "x-speakeasy-name-override": "CampaignEntitlementDetails"
      },
      "c1.api.accessreview.v1.CampaignHealthSnapshot": {
        "description": "Campaign health snapshot. Read-only; updated by backend maintenance processors.",
        "properties": {
          "checkedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "phantomLockedCount": {
            "description": "Number of pending actions locked by terminal (dead) submissions.",
            "format": "int32",
            "type": "integer"
          }
        },
        "title": "Campaign Health Snapshot",
        "type": "object",
        "x-speakeasy-name-override": "CampaignHealthSnapshot"
      },
      "c1.api.accessreview.v1.CampaignInsights": {
        "description": "AI-generated campaign insights (markdown). Read-only; set by backend when campaign is closed.",
        "properties": {
          "markdown": {
            "description": "The markdown field.",
            "type": "string"
          }
        },
        "title": "Campaign Insights",
        "type": "object",
        "x-speakeasy-name-override": "CampaignInsights"
      },
      "c1.api.accessreview.v1.CampaignSchedule": {
        "description": "When a campaign is created, opened and closed. One timezone governs all three.",
        "properties": {
          "autoStartTime": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.CampaignScheduleTime"
              },
              {
                "type": "null"
              }
            ]
          },
          "endTime": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.CampaignScheduleTime"
              },
              {
                "type": "null"
              }
            ]
          },
          "startTime": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.CampaignScheduleTime"
              },
              {
                "type": "null"
              }
            ]
          },
          "timezone": {
            "description": "IANA timezone name (e.g. \"America/Los_Angeles\", \"UTC\"). Required whenever\n this message is present: a stored schedule with no zone is indistinguishable\n from a record that predates the message, so the times below would be\n silently discarded. Omit the whole message to keep the legacy schedule.\n Enforced on post-merge state rather than here, so a field-mask update\n targeting only a nested time still works.",
            "type": "string"
          }
        },
        "title": "Campaign Schedule",
        "type": "object",
        "x-speakeasy-name-override": "CampaignSchedule"
      },
      "c1.api.accessreview.v1.CampaignScheduleTime": {
        "description": "Time of day, in the timezone of the CampaignSchedule that holds it.",
        "properties": {
          "hours": {
            "description": "The hours field.",
            "format": "uint32",
            "type": "integer"
          },
          "minutes": {
            "description": "The minutes field.",
            "format": "uint32",
            "type": "integer"
          }
        },
        "title": "Campaign Schedule Time",
        "type": "object",
        "x-speakeasy-name-override": "CampaignScheduleTime"
      },
      "c1.api.accessreview.v1.CelExpressionScope": {
        "description": "The CelExpressionScope message.",
        "properties": {
          "expression": {
            "description": "The expression field.",
            "type": "string"
          }
        },
        "title": "Cel Expression Scope",
        "type": "object",
        "x-speakeasy-name-override": "CelExpressionScope"
      },
      "c1.api.accessreview.v1.EntitlementToDetails": {
        "description": "The EntitlementToDetails message.",
        "properties": {
          "entitlementDetails": {
            "additionalProperties": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.CampaignEntitlementDetails"
            },
            "description": "The entitlementDetails field.",
            "type": "object"
          }
        },
        "title": "Entitlement To Details",
        "type": "object",
        "x-speakeasy-name-override": "EntitlementToDetails"
      },
      "c1.api.accessreview.v1.GrantAccessProfileFilter": {
        "description": "The GrantAccessProfileFilter message.",
        "properties": {
          "excludedAccessProfileIds": {
            "description": "Access profile IDs to EXCLUDE from the campaign\n Used when filter_type = EXCLUDE_SPECIFIC\n Max 32 profile IDs",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "filterType": {
            "description": "The filterType field.",
            "enum": [
              "ACCESS_PROFILE_FILTER_TYPE_UNSPECIFIED",
              "ACCESS_PROFILE_FILTER_TYPE_INCLUDE_ALL",
              "ACCESS_PROFILE_FILTER_TYPE_EXCLUDE_ALL",
              "ACCESS_PROFILE_FILTER_TYPE_EXCLUDE_SPECIFIC",
              "ACCESS_PROFILE_FILTER_TYPE_INCLUDE_SPECIFIC"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "includedAccessProfileIds": {
            "description": "Access profile IDs to INCLUDE in the campaign\n Used when filter_type = INCLUDE_SPECIFIC\n Max 32 profile IDs",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Grant Access Profile Filter",
        "type": "object",
        "x-speakeasy-name-override": "GrantAccessProfileFilter"
      },
      "c1.api.accessreview.v1.GrantsAddedBetween": {
        "description": "The GrantsAddedBetween message.",
        "properties": {
          "endDate": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "startDate": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Grants Added Between",
        "type": "object",
        "x-speakeasy-name-override": "GrantsAddedBetween"
      },
      "c1.api.accessreview.v1.GrantsByCriteriaScope": {
        "description": "The GrantsByCriteriaScope message.\n\nThis message contains a oneof named criteria_filter. Only a single field of the following list may be set at a time:\n  - daysSinceAdded\n  - daysSinceReviewed\n  - grantsAddedBetween\n",
        "properties": {
          "accessProfileFilter": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.GrantAccessProfileFilter"
              },
              {
                "type": "null"
              }
            ]
          },
          "daysSinceAdded": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "daysSinceLastUsed": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "daysSinceReviewed": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "grantsAddedBetween": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.GrantsAddedBetween"
              },
              {
                "type": "null"
              }
            ]
          },
          "sourceFilter": {
            "description": "The sourceFilter field.",
            "enum": [
              "GRANT_SOURCE_FILTER_UNSPECIFIED",
              "GRANT_SOURCE_FILTER_DIRECT",
              "GRANT_SOURCE_FILTER_INHERITED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "typeFilter": {
            "description": "The typeFilter field.",
            "enum": [
              "GRANT_FILTER_TYPE_UNSPECIFIED",
              "GRANT_FILTER_TYPE_PERMANENT",
              "GRANT_FILTER_TYPE_TEMPORARY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "usedWithinLast": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Grants By Criteria Scope",
        "type": "object",
        "x-speakeasy-name-override": "GrantsByCriteriaScope"
      },
      "c1.api.accessreview.v1.IncludedUserAttributeValue": {
        "description": "The IncludedUserAttributeValue message.",
        "properties": {
          "value": {
            "description": "The value field.",
            "type": "string"
          }
        },
        "title": "Included User Attribute Value",
        "type": "object",
        "x-speakeasy-name-override": "IncludedUserAttributeValue"
      },
      "c1.api.accessreview.v1.IncludedUserAttributeValues": {
        "description": "The IncludedUserAttributeValues message.",
        "properties": {
          "values": {
            "description": "The values field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.IncludedUserAttributeValue"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Included User Attribute Values",
        "type": "object",
        "x-speakeasy-name-override": "IncludedUserAttributeValues"
      },
      "c1.api.accessreview.v1.MSTeamsChannel": {
        "description": "The MSTeamsChannel message.",
        "properties": {
          "channelName": {
            "description": "The channelName field.",
            "type": "string"
          },
          "externalDirectoryId": {
            "description": "The externalDirectoryId field.",
            "type": "string"
          }
        },
        "title": "Ms Teams Channel",
        "type": "object",
        "x-speakeasy-name-override": "MSTeamsChannel"
      },
      "c1.api.accessreview.v1.MultiAppEntitlement": {
        "description": "The MultiAppEntitlement message.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "entitlementIds": {
            "description": "The entitlementIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Multi App Entitlement",
        "type": "object",
        "x-speakeasy-name-override": "MultiAppEntitlement"
      },
      "c1.api.accessreview.v1.MultiAppSetup": {
        "description": "The MultiAppSetup message.",
        "properties": {
          "appEntitlementDetails": {
            "additionalProperties": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.EntitlementToDetails"
            },
            "description": "The appEntitlementDetails field.",
            "type": "object"
          },
          "appEntitlements": {
            "additionalProperties": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.MultiAppEntitlement"
            },
            "description": "The appEntitlements field.",
            "type": "object"
          }
        },
        "title": "Multi App Setup",
        "type": "object",
        "x-speakeasy-name-override": "MultiAppSetup"
      },
      "c1.api.accessreview.v1.NotificationConfig": {
        "description": "Controls which email notifications are sent during the access review lifecycle.",
        "properties": {
          "sendClose": {
            "description": "Whether to send a notification when the campaign is closed.",
            "type": "boolean"
          },
          "sendKickoff": {
            "description": "Whether to send a notification when the campaign is started.",
            "type": "boolean"
          },
          "sendReminders": {
            "description": "Whether to send periodic reminder emails to reviewers with outstanding tasks.",
            "type": "boolean"
          }
        },
        "title": "Notification Config",
        "type": "object",
        "x-speakeasy-name-override": "NotificationConfig"
      },
      "c1.api.accessreview.v1.RecurrenceRule": {
        "description": "The RecurrenceRule message.\n\nThis message contains a oneof named end_condition. Only a single field of the following list may be set at a time:\n  - endDate\n  - occurrences\n",
        "properties": {
          "endDate": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "frequency": {
            "description": "Frequency of the recurrence: FREQUENCY_DAILY, FREQUENCY_WEEKLY, FREQUENCY_MONTHLY, or FREQUENCY_YEARLY.\n Use FREQUENCY_NONE for a non-recurring schedule.",
            "enum": [
              "FREQUENCY_UNSPECIFIED",
              "FREQUENCY_NONE",
              "FREQUENCY_DAILY",
              "FREQUENCY_WEEKLY",
              "FREQUENCY_MONTHLY",
              "FREQUENCY_YEARLY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "interval": {
            "description": "The interval field.",
            "format": "int32",
            "type": "integer"
          },
          "occurrences": {
            "description": "The occurrences field.\nThis field is part of the `end_condition` oneof.\nSee the documentation for `c1.api.accessreview.v1.RecurrenceRule` for more details.",
            "format": "int32",
            "type": [
              "integer",
              "null"
            ]
          },
          "startDate": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "frequency"
        ],
        "title": "Recurrence Rule",
        "type": "object",
        "x-speakeasy-name-override": "RecurrenceRule"
      },
      "c1.api.accessreview.v1.ResourceSelectionScope": {
        "description": "The ResourceSelectionScope message.",
        "title": "Resource Selection Scope",
        "type": "object",
        "x-speakeasy-name-override": "ResourceSelectionScope"
      },
      "c1.api.accessreview.v1.ResourceTypeIdRef": {
        "description": "A reference to a resource type within an application.",
        "properties": {
          "appId": {
            "description": "The ID of the application that owns the resource type.",
            "type": "string"
          },
          "resourceTypeId": {
            "description": "The ID of the resource type.",
            "type": "string"
          }
        },
        "title": "Resource Type Id Ref",
        "type": "object",
        "x-speakeasy-name-override": "ResourceTypeIdRef"
      },
      "c1.api.accessreview.v1.ResourceTypeSelectionScope": {
        "description": "The ResourceTypeSelectionScope message.",
        "title": "Resource Type Selection Scope",
        "type": "object",
        "x-speakeasy-name-override": "ResourceTypeSelectionScope"
      },
      "c1.api.accessreview.v1.ReviewSignatureConfig": {
        "description": "Signature configuration for access review submissions",
        "properties": {
          "meaningOfSignature": {
            "description": "The meaningOfSignature field.",
            "type": "string"
          },
          "requireSignature": {
            "description": "The requireSignature field.",
            "type": "boolean"
          },
          "stepUpProviderId": {
            "description": "The stepUpProviderId field.",
            "type": "string"
          },
          "tspUrl": {
            "description": "The tspUrl field.",
            "type": "string"
          }
        },
        "title": "Review Signature Config",
        "type": "object",
        "x-speakeasy-name-override": "ReviewSignatureConfig"
      },
      "c1.api.accessreview.v1.ReviewerAttributeBinding": {
        "description": "Pair of an app and one of that app's user profile attribute keys.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "attributeKey": {
            "description": "The attributeKey field.",
            "type": "string"
          }
        },
        "title": "Reviewer Attribute Binding",
        "type": "object",
        "x-speakeasy-name-override": "ReviewerAttributeBinding"
      },
      "c1.api.accessreview.v1.ReviewerAttributeConfig": {
        "description": "Allowlist of AppUser.profile keys visible to reviewers, scoped per app.\n Empty = reviewers see no profile attributes in the AppUser tooltip.",
        "properties": {
          "bindings": {
            "description": "The bindings field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.ReviewerAttributeBinding"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Reviewer Attribute Config",
        "type": "object",
        "x-speakeasy-name-override": "ReviewerAttributeConfig"
      },
      "c1.api.accessreview.v1.ScopeRoleSelectionScope": {
        "description": "Empty marker for scope+role pair scoping on IaaS-type apps.\n Actual selections stored in AccessReviewScopeRoleSelection rows.\n May coexist with ResourceSelectionScope on the same campaign; prepare unions both.",
        "title": "Scope Role Selection Scope",
        "type": "object",
        "x-speakeasy-name-override": "ScopeRoleSelectionScope"
      },
      "c1.api.accessreview.v1.SelectedUsersScope": {
        "description": "The SelectedUsersScope message.",
        "properties": {
          "userIds": {
            "description": "The userIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Selected Users Scope",
        "type": "object",
        "x-speakeasy-name-override": "SelectedUsersScope"
      },
      "c1.api.accessreview.v1.SingleAppSetup": {
        "description": "The SingleAppSetup message.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          }
        },
        "title": "Single App Setup",
        "type": "object",
        "x-speakeasy-name-override": "SingleAppSetup"
      },
      "c1.api.accessreview.v1.SlackChannel": {
        "description": "The SlackChannel message.",
        "properties": {
          "channelId": {
            "description": "Existing Slack channel ID (e.g. \"C0123ABCD\"). Set with is_channel_id=true to\n target an existing channel instead of creating one by name.",
            "type": "string"
          },
          "description": {
            "description": "The description field.",
            "type": "string"
          },
          "isChannelId": {
            "description": "When true, channel_id identifies an existing channel to use as-is: the\n backend resolves it by ID (conversations.info) and fails if it is missing or\n the bot cannot access it. It never creates or searches by name.",
            "type": "boolean"
          },
          "name": {
            "description": "Channel name to create/resolve. Required unless is_channel_id is true.",
            "type": "string"
          }
        },
        "title": "Slack Channel",
        "type": "object",
        "x-speakeasy-name-override": "SlackChannel"
      },
      "c1.api.accessreview.v1.SpecificAccessConflictsScope": {
        "description": "The SpecificAccessConflictsScope message.",
        "title": "Specific Access Conflicts Scope",
        "type": "object",
        "x-speakeasy-name-override": "SpecificAccessConflictsScope"
      },
      "c1.api.accessreview.v1.SpecificAccessProfilesScope": {
        "description": "Empty marker for access-profile scoping.\n Actual profile selections stored in separate rows keyed by access_review_id.",
        "title": "Specific Access Profiles Scope",
        "type": "object",
        "x-speakeasy-name-override": "SpecificAccessProfilesScope"
      },
      "c1.api.accessreview.v1.SpecificResourcesScope": {
        "description": "The SpecificResourcesScope message.",
        "title": "Specific Resources Scope",
        "type": "object",
        "x-speakeasy-name-override": "SpecificResourcesScope"
      },
      "c1.api.accessreview.v1.UserCriteriaScope": {
        "description": "The UserCriteriaScope message.",
        "properties": {
          "groupAppEntitlementsRef": {
            "description": "The groupAppEntitlementsRef field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "managerUserIds": {
            "description": "The managerUserIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "multiUserProfileAttributes": {
            "additionalProperties": {
              "$ref": "#/components/schemas/c1.api.accessreview.v1.IncludedUserAttributeValues"
            },
            "description": "The multiUserProfileAttributes field.",
            "type": "object"
          },
          "userStatus": {
            "description": "The userStatus field.",
            "items": {
              "enum": [
                "UNKNOWN",
                "ENABLED",
                "DISABLED",
                "DELETED"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "User Criteria Scope",
        "type": "object",
        "x-speakeasy-name-override": "UserCriteriaScope"
      },
      "c1.api.ai_governance.v1.AIGovernanceSettings": {
        "description": "AIGovernanceSettings holds the tenant-wide AI governance policy that controls\n MCP client access, tool approval, classification defaults, audit detail, and\n automatic tool discovery. There is one settings object per tenant.",
        "properties": {
          "allowedClientTypes": {
            "description": "MCP client types permitted to connect. An empty list allows all types.",
            "items": {
              "enum": [
                "MCP_CLIENT_TYPE_UNSPECIFIED",
                "MCP_CLIENT_TYPE_PERSONAL",
                "MCP_CLIENT_TYPE_SHARED",
                "MCP_CLIENT_TYPE_SERVICE",
                "MCP_CLIENT_TYPE_EPHEMERAL"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "auditVerbosity": {
            "description": "How much detail is captured in the audit log for MCP tool calls.",
            "enum": [
              "AUDIT_VERBOSITY_UNSPECIFIED",
              "AUDIT_VERBOSITY_MINIMAL",
              "AUDIT_VERBOSITY_STANDARD",
              "AUDIT_VERBOSITY_FULL"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "autoDiscoveryEnabled": {
            "description": "When true, C1 periodically re-discovers tools from registered MCP servers\n on the discovery_interval schedule.",
            "type": "boolean"
          },
          "c1awAutospillDisabled": {
            "deprecated": true,
            "description": "Deprecated. Set QUOTA_REF_TENANT_C1AW_AUTOSPILL_THRESHOLD_KB to 0 to\n disable C1AW autospill.",
            "type": "boolean"
          },
          "c1awAutospillThresholdBytes": {
            "deprecated": true,
            "description": "Deprecated. C1AW autospill is configured with\n QUOTA_REF_TENANT_C1AW_AUTOSPILL_THRESHOLD_KB.",
            "format": "uint32",
            "type": "integer"
          },
          "codeModeConcurrency": {
            "description": "Number of pre-warmed Lambda instances for the per-tenant code-mode\n function. 0 (default) leaves the Lambda cold-started on first call;\n \u003e 0 keeps that many execution environments warm via AWS Lambda\n provisioned concurrency, redeploying the function on change.",
            "format": "int32",
            "type": "integer"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "defaultClientLifecycle": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPClientLifecycleConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "defaultToolClassification": {
            "description": "Classification assigned to newly discovered tools that do not declare their\n own classification (for example, read, write, or destructive).",
            "enum": [
              "TOOL_CLASSIFICATION_UNSPECIFIED",
              "TOOL_CLASSIFICATION_READ",
              "TOOL_CLASSIFICATION_WRITE",
              "TOOL_CLASSIFICATION_DESTRUCTIVE",
              "TOOL_CLASSIFICATION_SENSITIVE",
              "TOOL_CLASSIFICATION_DANGEROUS"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "discoveryInterval": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "enabled": {
            "deprecated": true,
            "description": "Legacy master switch.",
            "type": "boolean"
          },
          "preferCodeModeOverDirectTools": {
            "description": "When true, the MCP server hides direct tool listings from capable clients\n whenever the code-mode entrypoints (describe + execute) are registered, so\n agents discover and invoke MCP tools through TypeScript code mode instead\n of direct tool calls. A small allowlist of high-traffic direct tools\n remains exposed. Incapable clients (e.g. SERVICE, EPHEMERAL) see the\n normal tool set regardless. Defaults to false.",
            "type": "boolean"
          },
          "requireToolApproval": {
            "description": "Require approval for newly discovered tools on MCP servers without a saved\n registration access level, unless overridden by the per-server setting.",
            "type": "boolean"
          },
          "surfaceRequestableTools": {
            "description": "When true, MCP discovery surfaces tools the caller could request (no\n active grant, but reachable through a request catalog) alongside granted\n tools — both on the classic tools/list path and inside the code-mode\n describe entrypoint. Invoking such a tool opens (or reuses) an\n access-request ticket and returns a request_created envelope instead of\n executing. Defaults to true.",
            "type": "boolean"
          },
          "untrustedJudgeDisable": {
            "description": "When true, the A2 (untrusted-content) judge is skipped and the untrusted\n dimension always scores LOW. When false (the default), the judge scores\n agent turn input and tool output for prompt-injection risk on every turn.\n\n Defaults to false, so the judge runs by default.",
            "type": "boolean"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "usageAttributionCostCenterAttribute": {
            "description": "User attribute that names a cost center on the C1 Gateway attribution\n dashboards, using the same values as usage_attribution_team_attribute.\n Empty leaves usage without a cost center.",
            "type": "string"
          },
          "usageAttributionTeamAttribute": {
            "description": "User attribute that names a team on the C1 Gateway attribution dashboards:\n department, job_title, employment_type, employment_status, or\n profile.\u003ckey\u003e for a directory profile attribute. Empty uses department.",
            "type": "string"
          }
        },
        "title": "Ai Governance Settings",
        "type": "object",
        "x-speakeasy-name-override": "AIGovernanceSettings"
      },
      "c1.api.ai_governance.v1.AIGovernanceSettingsHistoryEntry": {
        "description": "AIGovernanceSettingsHistoryEntry is a single change-history record capturing a\n snapshot of the settings and who changed them.",
        "properties": {
          "metadata": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.history.v1.HistoryEntryMetadata"
              },
              {
                "type": "null"
              }
            ]
          },
          "snapshot": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.AIGovernanceSettings"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Ai Governance Settings History Entry",
        "type": "object",
        "x-speakeasy-name-override": "AIGovernanceSettingsHistoryEntry"
      },
      "c1.api.ai_governance.v1.AccessProfilesForTool": {
        "description": "AccessProfilesForTool groups access profiles by the MCP tool they are bound to.",
        "properties": {
          "accessProfiles": {
            "description": "Access profiles bound to this tool.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfile"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "mcpToolId": {
            "description": "The MCP tool identifier.",
            "type": "string"
          }
        },
        "title": "Access Profiles For Tool",
        "type": "object",
        "x-speakeasy-name-override": "AccessProfilesForTool"
      },
      "c1.api.ai_governance.v1.AddClassifierRuleFromTemplateRequestInput": {
        "description": "The AddClassifierRuleFromTemplateRequest message.",
        "properties": {
          "insertIndex": {
            "description": "Position in the target cascade to insert before. Pass the current rule\n count to append. Values past the end append.",
            "format": "int32",
            "type": "integer"
          },
          "params": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Bind-time param values for the spliced rule's grant gates, keyed by\n TemplateParam.key (e.g. grant_policy_id).",
            "type": "object"
          },
          "ruleIndex": {
            "description": "Which rule in the template to add; defaults to 0 (the first/only rule).",
            "format": "int32",
            "type": "integer"
          },
          "templateId": {
            "description": "Template to source the rule from.",
            "type": "string"
          },
          "templateVersion": {
            "description": "Optional; empty resolves the latest version.",
            "type": "string"
          }
        },
        "required": [
          "templateId"
        ],
        "title": "Add Classifier Rule From Template Request",
        "type": "object",
        "x-speakeasy-name-override": "AddClassifierRuleFromTemplateRequest"
      },
      "c1.api.ai_governance.v1.AddClassifierRuleFromTemplateResponse": {
        "description": "The AddClassifierRuleFromTemplateResponse message.",
        "properties": {
          "classifier": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.Classifier"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Add Classifier Rule From Template Response",
        "type": "object",
        "x-speakeasy-name-override": "AddClassifierRuleFromTemplateResponse"
      },
      "c1.api.ai_governance.v1.AgentClassifierPolicy": {
        "description": "AgentClassifierPolicy is the tenant's full classifier policy: the ordered\n rule cascade plus the no-match default.",
        "properties": {
          "agentId": {
            "description": "Optional agent scoping. Empty is the tenant-wide default policy.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "defaultDenyReason": {
            "description": "The defaultDenyReason field.",
            "type": "string"
          },
          "defaultOutcome": {
            "description": "The defaultOutcome field.",
            "enum": [
              "AGENT_CLASSIFIER_RULE_OUTCOME_UNSPECIFIED",
              "AGENT_CLASSIFIER_RULE_OUTCOME_ALLOWED",
              "AGENT_CLASSIFIER_RULE_OUTCOME_DENIED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "rules": {
            "description": "The rules field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.AgentClassifierRule"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "tenantId": {
            "description": "The tenantId field.",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Agent Classifier Policy",
        "type": "object",
        "x-speakeasy-name-override": "AgentClassifierPolicy"
      },
      "c1.api.ai_governance.v1.AgentClassifierRule": {
        "description": "AgentClassifierRule is one entry in the ordered cascade.",
        "properties": {
          "action": {
            "description": "The action field.",
            "enum": [
              "AGENT_CLASSIFIER_RULE_ACTION_UNSPECIFIED",
              "AGENT_CLASSIFIER_RULE_ACTION_EVALUATE_HOOKS",
              "AGENT_CLASSIFIER_RULE_ACTION_BLOCK"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "celCondition": {
            "description": "Empty matches every tool call.",
            "type": "string"
          },
          "denyReason": {
            "description": "The denyReason field.",
            "type": "string"
          },
          "description": {
            "description": "The description field.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "id": {
            "description": "Stable rule identifier. Leave empty on a rule being added; the server\n assigns one.",
            "type": "string"
          },
          "mode": {
            "description": "The mode field.",
            "enum": [
              "AGENT_CLASSIFIER_RULE_MODE_UNSPECIFIED",
              "AGENT_CLASSIFIER_RULE_MODE_ENFORCE",
              "AGENT_CLASSIFIER_RULE_MODE_OBSERVE",
              "AGENT_CLASSIFIER_RULE_MODE_DISABLED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "outcome": {
            "description": "The outcome field.",
            "enum": [
              "AGENT_CLASSIFIER_RULE_OUTCOME_UNSPECIFIED",
              "AGENT_CLASSIFIER_RULE_OUTCOME_ALLOWED",
              "AGENT_CLASSIFIER_RULE_OUTCOME_DENIED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "postHookIds": {
            "description": "The postHookIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "preHookIds": {
            "description": "The preHookIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "preOutputHookIds": {
            "description": "Hook ids of event type HOOK_EVENT_TYPE_PRE_OUTPUT curated by this rule,\n evaluated against the assistant's outgoing response rather than a tool\n call. Parallel to pre_hook_ids/post_hook_ids.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "sourceTemplateId": {
            "description": "Rule template this rule was composed from via AddClassifierRuleFromTemplate.\n Empty for hand-authored rules; drives the \"from template / Custom\"\n provenance chip. Cleared once the rule diverges from its template.",
            "type": "string"
          },
          "systemManaged": {
            "description": "system_managed is true for rules the platform inserts and manages\n (currently: the baseline fallback rule appended at the end of every\n policy's rule list). system-managed rules cannot be created, updated, or\n deleted through the admin API — the frontend renders them read-only.\n Persisted user rules always serialize with system_managed = false.",
            "type": "boolean"
          },
          "toolGateIds": {
            "description": "The toolGateIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "displayName"
        ],
        "title": "Agent Classifier Rule",
        "type": "object",
        "x-speakeasy-name-override": "AgentClassifierRule"
      },
      "c1.api.ai_governance.v1.Classifier": {
        "description": "Classifier is a named, reusable rule cascade.",
        "properties": {
          "applicableType": {
            "description": "BOTH means Agent and gateway. Shared rules use private_data, exfiltration, tool_name, bounded tool_input,\n and user_roles; untrusted_content and agent_id require AGENT applicability.\n Changing applicability revalidates retained rules and cannot invalidate\n existing concrete bindings. Replacing rules in the same update validates\n the merged definition before persistence.",
            "enum": [
              "CLASSIFIER_TYPE_UNSPECIFIED",
              "CLASSIFIER_TYPE_AGENT",
              "CLASSIFIER_TYPE_GATEWAY",
              "CLASSIFIER_TYPE_BOTH"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "defaultDenyReason": {
            "description": "The defaultDenyReason field.",
            "type": "string"
          },
          "defaultOutcome": {
            "description": "The defaultOutcome field.",
            "enum": [
              "AGENT_CLASSIFIER_RULE_OUTCOME_UNSPECIFIED",
              "AGENT_CLASSIFIER_RULE_OUTCOME_ALLOWED",
              "AGENT_CLASSIFIER_RULE_OUTCOME_DENIED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "deletedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "The description field.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "managedBy": {
            "description": "The managedBy field.",
            "enum": [
              "MANAGED_BY_UNSPECIFIED",
              "MANAGED_BY_TENANT",
              "MANAGED_BY_SYSTEM"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "rules": {
            "description": "The rules field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.AgentClassifierRule"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "templateRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.TemplateRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "tenantId": {
            "description": "The tenantId field.",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "displayName"
        ],
        "title": "Classifier",
        "type": "object",
        "x-speakeasy-name-override": "Classifier"
      },
      "c1.api.ai_governance.v1.ClassifierBinding": {
        "description": "ClassifierBinding attaches one Classifier to one enforcement target.\n surface must be AGENT or GATEWAY; UNSPECIFIED and BOTH are invalid here. Attach a shared\n classifier twice to use the same classifier_id on both surfaces. Each call\n resolves only its originating surface, never both cascades.",
        "properties": {
          "classifierId": {
            "description": "The classifierId field.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "surface": {
            "description": "The surface field.",
            "enum": [
              "CLASSIFIER_TYPE_UNSPECIFIED",
              "CLASSIFIER_TYPE_AGENT",
              "CLASSIFIER_TYPE_GATEWAY",
              "CLASSIFIER_TYPE_BOTH"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "targetId": {
            "description": "The targetId field.",
            "type": "string"
          },
          "tenantId": {
            "description": "The tenantId field.",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "surface",
          "classifierId"
        ],
        "title": "Classifier Binding",
        "type": "object",
        "x-speakeasy-name-override": "ClassifierBinding"
      },
      "c1.api.ai_governance.v1.ClassifierTemplate": {
        "description": "ClassifierTemplate is a versioned, parameterizable definition that\n instantiates a live Classifier.",
        "properties": {
          "applicableType": {
            "description": "The applicableType field.",
            "enum": [
              "CLASSIFIER_TYPE_UNSPECIFIED",
              "CLASSIFIER_TYPE_AGENT",
              "CLASSIFIER_TYPE_GATEWAY",
              "CLASSIFIER_TYPE_BOTH"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "defaultDenyReason": {
            "description": "The defaultDenyReason field.",
            "type": "string"
          },
          "defaultOutcome": {
            "description": "The defaultOutcome field.",
            "enum": [
              "AGENT_CLASSIFIER_RULE_OUTCOME_UNSPECIFIED",
              "AGENT_CLASSIFIER_RULE_OUTCOME_ALLOWED",
              "AGENT_CLASSIFIER_RULE_OUTCOME_DENIED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "deletedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "The description field.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "distribution": {
            "description": "The distribution field.",
            "enum": [
              "TEMPLATE_DISTRIBUTION_UNSPECIFIED",
              "TEMPLATE_DISTRIBUTION_COPY",
              "TEMPLATE_DISTRIBUTION_LINKED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "frameworkTags": {
            "description": "Compliance-framework identifiers this template maps to (e.g.\n \"owasp-llm-top-10\"). Plain strings for customer extensibility, not an enum.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "hooks": {
            "description": "The hooks field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.HookSpec"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "isLatest": {
            "description": "The isLatest field.",
            "type": "boolean"
          },
          "managedBy": {
            "description": "The managedBy field.",
            "enum": [
              "MANAGED_BY_UNSPECIFIED",
              "MANAGED_BY_TENANT",
              "MANAGED_BY_SYSTEM"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "presetTier": {
            "description": "Non-UNSPECIFIED only on the three system presets (Shadow/Balanced/Strict);\n identifies and strictness-orders them for the default-classifier picker.",
            "enum": [
              "PRESET_TIER_UNSPECIFIED",
              "PRESET_TIER_SHADOW",
              "PRESET_TIER_BALANCED",
              "PRESET_TIER_STRICT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "requiredParams": {
            "description": "The requiredParams field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.TemplateParam"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "rules": {
            "description": "The rules field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.AgentClassifierRule"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "templateVersion": {
            "description": "The templateVersion field.",
            "type": "string"
          },
          "tenantId": {
            "description": "The tenantId field.",
            "type": "string"
          },
          "toolGates": {
            "description": "The toolGates field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.ToolGateSpec"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Classifier Template",
        "type": "object",
        "x-speakeasy-name-override": "ClassifierTemplate"
      },
      "c1.api.ai_governance.v1.CreateClassifierBindingRequest": {
        "description": "The CreateClassifierBindingRequest message.",
        "properties": {
          "binding": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.ClassifierBinding"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "binding"
        ],
        "title": "Create Classifier Binding Request",
        "type": "object",
        "x-speakeasy-name-override": "CreateClassifierBindingRequest"
      },
      "c1.api.ai_governance.v1.CreateClassifierBindingResponse": {
        "description": "The CreateClassifierBindingResponse message.",
        "properties": {
          "binding": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.ClassifierBinding"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create Classifier Binding Response",
        "type": "object",
        "x-speakeasy-name-override": "CreateClassifierBindingResponse"
      },
      "c1.api.ai_governance.v1.CreateClassifierRequest": {
        "description": "The CreateClassifierRequest message.",
        "properties": {
          "classifier": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.Classifier"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "classifier"
        ],
        "title": "Create Classifier Request",
        "type": "object",
        "x-speakeasy-name-override": "CreateClassifierRequest"
      },
      "c1.api.ai_governance.v1.CreateClassifierResponse": {
        "description": "The CreateClassifierResponse message.",
        "properties": {
          "classifier": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.Classifier"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create Classifier Response",
        "type": "object",
        "x-speakeasy-name-override": "CreateClassifierResponse"
      },
      "c1.api.ai_governance.v1.DeleteClassifierBindingRequestInput": {
        "description": "The DeleteClassifierBindingRequest message.",
        "title": "Delete Classifier Binding Request",
        "type": "object",
        "x-speakeasy-name-override": "DeleteClassifierBindingRequest"
      },
      "c1.api.ai_governance.v1.DeleteClassifierBindingResponse": {
        "description": "The DeleteClassifierBindingResponse message.",
        "title": "Delete Classifier Binding Response",
        "type": "object",
        "x-speakeasy-name-override": "DeleteClassifierBindingResponse"
      },
      "c1.api.ai_governance.v1.DeleteClassifierRequestInput": {
        "description": "The DeleteClassifierRequest message.",
        "title": "Delete Classifier Request",
        "type": "object",
        "x-speakeasy-name-override": "DeleteClassifierRequest"
      },
      "c1.api.ai_governance.v1.DeleteClassifierResponse": {
        "description": "The DeleteClassifierResponse message.",
        "title": "Delete Classifier Response",
        "type": "object",
        "x-speakeasy-name-override": "DeleteClassifierResponse"
      },
      "c1.api.ai_governance.v1.GetAIGovernanceSettingsResponse": {
        "description": "GetAIGovernanceSettingsResponse contains the tenant's AI governance settings.",
        "properties": {
          "aiGovernanceSettings": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.AIGovernanceSettings"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get Ai Governance Settings Response",
        "type": "object",
        "x-speakeasy-name-override": "GetAIGovernanceSettingsResponse"
      },
      "c1.api.ai_governance.v1.GetAgentClassifierPolicyResponse": {
        "description": "The GetAgentClassifierPolicyResponse message.",
        "properties": {
          "policy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.AgentClassifierPolicy"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get Agent Classifier Policy Response",
        "type": "object",
        "x-speakeasy-name-override": "GetAgentClassifierPolicyResponse"
      },
      "c1.api.ai_governance.v1.GetClassifierResponse": {
        "description": "The GetClassifierResponse message.",
        "properties": {
          "classifier": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.Classifier"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get Classifier Response",
        "type": "object",
        "x-speakeasy-name-override": "GetClassifierResponse"
      },
      "c1.api.ai_governance.v1.GetClassifierTemplateResponse": {
        "description": "The GetClassifierTemplateResponse message.",
        "properties": {
          "template": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.ClassifierTemplate"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get Classifier Template Response",
        "type": "object",
        "x-speakeasy-name-override": "GetClassifierTemplateResponse"
      },
      "c1.api.ai_governance.v1.GetTenantDefaultsResponse": {
        "description": "GetTenantDefaultsResponse contains tenant defaults used by\n legacy MCP servers.",
        "properties": {
          "requireToolApproval": {
            "description": "Whether newly discovered tools require approval on MCP servers without a\n saved registration access level, unless overridden by the per-server setting.",
            "type": "boolean"
          }
        },
        "title": "Get Tenant Defaults Response",
        "type": "object",
        "x-speakeasy-name-override": "GetTenantDefaultsResponse"
      },
      "c1.api.ai_governance.v1.HookSpec": {
        "description": "HookSpec is the instantiable body of a built-in hook inside a template. Rules\n reference it by key via pre_hook_ids/post_hook_ids; instantiation rewrites the\n key to the minted Hook id.",
        "properties": {
          "celFilter": {
            "description": "The celFilter field.",
            "type": "string"
          },
          "description": {
            "description": "The description field.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "enabled": {
            "description": "The enabled field.",
            "type": "boolean"
          },
          "eventType": {
            "description": "Event the stamped hook fires on. When UNSPECIFIED, instantiation falls\n back to post_hook. Required to mint a pre-output hook, which post_hook\n cannot express.",
            "enum": [
              "HOOK_SPEC_EVENT_TYPE_UNSPECIFIED",
              "HOOK_SPEC_EVENT_TYPE_PRE_TOOL_USE",
              "HOOK_SPEC_EVENT_TYPE_POST_TOOL_USE",
              "HOOK_SPEC_EVENT_TYPE_PRE_OUTPUT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "key": {
            "description": "The key field.",
            "type": "string"
          },
          "patternKind": {
            "description": "The patternKind field.",
            "enum": [
              "HOOK_BUILT_IN_PATTERN_KIND_UNSPECIFIED",
              "HOOK_BUILT_IN_PATTERN_KIND_PII_REDACTION",
              "HOOK_BUILT_IN_PATTERN_KIND_CREDIT_CARD_BLOCKING",
              "HOOK_BUILT_IN_PATTERN_KIND_QUERY_SCOPE_LIMIT",
              "HOOK_BUILT_IN_PATTERN_KIND_WRITE_AUTHORIZATION",
              "HOOK_BUILT_IN_PATTERN_KIND_SENSITIVE_FILE_GUARD",
              "HOOK_BUILT_IN_PATTERN_KIND_TOOL_OUTPUT_SIZE_GUARD",
              "HOOK_BUILT_IN_PATTERN_KIND_SECRETS_MASKING",
              "HOOK_BUILT_IN_PATTERN_KIND_LINK_FILTER",
              "HOOK_BUILT_IN_PATTERN_KIND_ENCODED_CONTENT_GUARD",
              "HOOK_BUILT_IN_PATTERN_KIND_PROMPT_INJECTION_SCAN"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "postHook": {
            "description": "false = pre-tool-use, true = post-tool-use. Superseded by event_type when\n the latter is set to a non-UNSPECIFIED value.",
            "type": "boolean"
          },
          "priority": {
            "description": "The priority field.",
            "format": "int32",
            "type": "integer"
          }
        },
        "title": "Hook Spec",
        "type": "object",
        "x-speakeasy-name-override": "HookSpec"
      },
      "c1.api.ai_governance.v1.InstantiateClassifierTemplateRequestInput": {
        "description": "The InstantiateClassifierTemplateRequest message.",
        "properties": {
          "displayName": {
            "description": "Optional display name override for the created Classifier.",
            "type": "string"
          },
          "params": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Bind-time param values keyed by TemplateParam.key (e.g. grant_policy_id).",
            "type": "object"
          },
          "templateVersion": {
            "description": "Optional; empty instantiates the latest version.",
            "type": "string"
          }
        },
        "title": "Instantiate Classifier Template Request",
        "type": "object",
        "x-speakeasy-name-override": "InstantiateClassifierTemplateRequest"
      },
      "c1.api.ai_governance.v1.InstantiateClassifierTemplateResponse": {
        "description": "The InstantiateClassifierTemplateResponse message.",
        "properties": {
          "classifier": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.Classifier"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Instantiate Classifier Template Response",
        "type": "object",
        "x-speakeasy-name-override": "InstantiateClassifierTemplateResponse"
      },
      "c1.api.ai_governance.v1.ListAIGovernanceSettingsHistoryResponse": {
        "description": "ListAIGovernanceSettingsHistoryResponse contains a page of AI governance\n settings change-history entries, newest first.",
        "properties": {
          "list": {
            "description": "The page of history entries, newest first.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.AIGovernanceSettingsHistoryEntry"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Pagination token for the next page, or empty if there are no more results.",
            "type": "string"
          }
        },
        "title": "List Ai Governance Settings History Response",
        "type": "object",
        "x-speakeasy-name-override": "ListAIGovernanceSettingsHistoryResponse"
      },
      "c1.api.ai_governance.v1.ListClassifierBindingsResponse": {
        "description": "The ListClassifierBindingsResponse message.",
        "properties": {
          "bindings": {
            "description": "The bindings field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.ClassifierBinding"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "List Classifier Bindings Response",
        "type": "object",
        "x-speakeasy-name-override": "ListClassifierBindingsResponse"
      },
      "c1.api.ai_governance.v1.ListClassifierTemplatesRequest": {
        "description": "The ListClassifierTemplatesRequest message.",
        "properties": {
          "latestOnly": {
            "description": "When true, only the latest version of each template id is returned.",
            "type": "boolean"
          },
          "pageSize": {
            "description": "The pageSize field.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          }
        },
        "title": "List Classifier Templates Request",
        "type": "object",
        "x-speakeasy-name-override": "ListClassifierTemplatesRequest"
      },
      "c1.api.ai_governance.v1.ListClassifierTemplatesResponse": {
        "description": "The ListClassifierTemplatesResponse message.",
        "properties": {
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          },
          "templates": {
            "description": "The templates field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.ClassifierTemplate"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "List Classifier Templates Response",
        "type": "object",
        "x-speakeasy-name-override": "ListClassifierTemplatesResponse"
      },
      "c1.api.ai_governance.v1.ListClassifiersResponse": {
        "description": "The ListClassifiersResponse message.",
        "properties": {
          "classifiers": {
            "description": "The classifiers field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.Classifier"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "List Classifiers Response",
        "type": "object",
        "x-speakeasy-name-override": "ListClassifiersResponse"
      },
      "c1.api.ai_governance.v1.MCPAccessProfile": {
        "description": "MCPAccessProfile represents an admin-curated grouping of MCP tools.",
        "properties": {
          "appEntitlementId": {
            "description": "The ID of the AppEntitlement created for this profile.",
            "type": "string"
          },
          "appId": {
            "description": "App identifier (app that owns the connector).",
            "type": "string"
          },
          "connectorDisplayName": {
            "description": "Display name of the connector this toolset belongs to. Computed read-only;\n populated on every read. The\n auto-maintained default toolsets share a display name across connectors, so\n this is what tells two of them apart.",
            "readOnly": true,
            "type": "string"
          },
          "connectorId": {
            "description": "Connector identifier.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "Description of what access this profile grants.",
            "type": "string"
          },
          "displayName": {
            "description": "Display name for the profile.",
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for this access profile.",
            "type": "string"
          },
          "requestable": {
            "description": "Whether this toolset's backing entitlement is exposed in at least one\n request catalog (i.e. can be requested). Computed read-only; populated on List.",
            "readOnly": true,
            "type": "boolean"
          },
          "toolCount": {
            "description": "The number of tools currently bound to this profile.",
            "format": "int32",
            "type": "integer"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Mcp Access Profile",
        "type": "object",
        "x-speakeasy-name-override": "MCPAccessProfile"
      },
      "c1.api.ai_governance.v1.MCPAccessProfileRef": {
        "description": "MCPAccessProfileRef is a lightweight reference to an MCP access profile,\n used for websocket notifications and search filter refs.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "connectorId": {
            "description": "The connectorId field.",
            "type": "string"
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          }
        },
        "title": "Mcp Access Profile Ref",
        "type": "object",
        "x-speakeasy-name-override": "MCPAccessProfileRef"
      },
      "c1.api.ai_governance.v1.MCPAccessProfileServiceCreateRequestInput": {
        "description": "MCPAccessProfileServiceCreateRequest creates a new MCP access profile.",
        "properties": {
          "description": {
            "description": "Description of what access this profile grants.",
            "type": "string"
          },
          "displayName": {
            "description": "Display name for the profile.",
            "type": "string"
          }
        },
        "title": "Mcp Access Profile Service Create Request",
        "type": "object",
        "x-speakeasy-name-override": "MCPAccessProfileServiceCreateRequest"
      },
      "c1.api.ai_governance.v1.MCPAccessProfileServiceCreateResponse": {
        "description": "MCPAccessProfileServiceCreateResponse returns the created MCP access profile.",
        "properties": {
          "profile": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfile"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Mcp Access Profile Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPAccessProfileServiceCreateResponse"
      },
      "c1.api.ai_governance.v1.MCPAccessProfileServiceDeleteRequestInput": {
        "description": "MCPAccessProfileServiceDeleteRequest deletes an MCP access profile (soft delete).",
        "title": "Mcp Access Profile Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "MCPAccessProfileServiceDeleteRequest"
      },
      "c1.api.ai_governance.v1.MCPAccessProfileServiceDeleteResponse": {
        "description": "MCPAccessProfileServiceDeleteResponse confirms deletion.",
        "title": "Mcp Access Profile Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPAccessProfileServiceDeleteResponse"
      },
      "c1.api.ai_governance.v1.MCPAccessProfileServiceGetByAppEntitlementIdResponse": {
        "description": "MCPAccessProfileServiceGetByAppEntitlementIdResponse returns the matched profile.",
        "properties": {
          "profile": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfile"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Mcp Access Profile Service Get By App Entitlement Id Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPAccessProfileServiceGetByAppEntitlementIdResponse"
      },
      "c1.api.ai_governance.v1.MCPAccessProfileServiceGetResponse": {
        "description": "MCPAccessProfileServiceGetResponse returns a single MCP access profile.",
        "properties": {
          "profile": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfile"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Mcp Access Profile Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPAccessProfileServiceGetResponse"
      },
      "c1.api.ai_governance.v1.MCPAccessProfileServiceListRequestableConnectorsResponse": {
        "description": "MCPAccessProfileServiceListRequestableConnectorsResponse returns connector references\n that have requestable MCP access profiles.",
        "properties": {
          "connectors": {
            "description": "List of connectors with requestable MCP access profiles.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.RequestableConnector"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Mcp Access Profile Service List Requestable Connectors Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPAccessProfileServiceListRequestableConnectorsResponse"
      },
      "c1.api.ai_governance.v1.MCPAccessProfileServiceListResponse": {
        "description": "MCPAccessProfileServiceListResponse returns a list of MCP access profiles.",
        "properties": {
          "nextPageToken": {
            "description": "Token for next page.",
            "type": "string"
          },
          "profiles": {
            "description": "List of MCP access profiles.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfile"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Mcp Access Profile Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPAccessProfileServiceListResponse"
      },
      "c1.api.ai_governance.v1.MCPAccessProfileServiceSearchAccessProfilesResponse": {
        "description": "MCPAccessProfileServiceSearchAccessProfilesResponse returns one page of\n tenant-wide MCP access profiles.",
        "properties": {
          "nextPageToken": {
            "description": "Token for next page.",
            "type": "string"
          },
          "profiles": {
            "description": "The page of matching MCP access profiles.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfile"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Mcp Access Profile Service Search Access Profiles Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPAccessProfileServiceSearchAccessProfilesResponse"
      },
      "c1.api.ai_governance.v1.MCPAccessProfileServiceSearchRequestableConnectorsResponse": {
        "description": "MCPAccessProfileServiceSearchRequestableConnectorsResponse returns one page\n of card-ready requestable-connector entries.",
        "properties": {
          "list": {
            "description": "The page of connector cards.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.RequestableConnectorView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token for next page.",
            "type": "string"
          }
        },
        "title": "Mcp Access Profile Service Search Requestable Connectors Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPAccessProfileServiceSearchRequestableConnectorsResponse"
      },
      "c1.api.ai_governance.v1.MCPAccessProfileServiceUpdateRequestInput": {
        "description": "MCPAccessProfileServiceUpdateRequest updates an existing MCP access profile.",
        "properties": {
          "profile": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfile"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Mcp Access Profile Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "MCPAccessProfileServiceUpdateRequest"
      },
      "c1.api.ai_governance.v1.MCPAccessProfileServiceUpdateResponse": {
        "description": "MCPAccessProfileServiceUpdateResponse returns the updated MCP access profile.",
        "properties": {
          "profile": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfile"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Mcp Access Profile Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPAccessProfileServiceUpdateResponse"
      },
      "c1.api.ai_governance.v1.MCPAccessProfileToolBinding": {
        "description": "MCPAccessProfileToolBinding represents a binding between an access profile and a tool.",
        "properties": {
          "accessProfileId": {
            "description": "Access profile identifier.",
            "type": "string"
          },
          "appId": {
            "description": "App identifier.",
            "type": "string"
          },
          "connectorId": {
            "description": "Connector identifier.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "mcpToolId": {
            "description": "MCP tool identifier.",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Mcp Access Profile Tool Binding",
        "type": "object",
        "x-speakeasy-name-override": "MCPAccessProfileToolBinding"
      },
      "c1.api.ai_governance.v1.MCPAccessProfileToolBindingHistoryEntry": {
        "description": "MCPAccessProfileToolBindingHistoryEntry is a single change-history record\n capturing the tool bindings added or removed in one transaction.",
        "properties": {
          "items": {
            "description": "The bindings added or removed in this change.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfileToolBindingHistoryItem"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "metadata": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.history.v1.ListHistoryEntryMetadata"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Mcp Access Profile Tool Binding History Entry",
        "type": "object",
        "x-speakeasy-name-override": "MCPAccessProfileToolBindingHistoryEntry"
      },
      "c1.api.ai_governance.v1.MCPAccessProfileToolBindingHistoryItem": {
        "description": "MCPAccessProfileToolBindingHistoryItem is a single binding added or removed in\n a transaction.",
        "properties": {
          "changeKind": {
            "description": "Whether this binding was added or removed.",
            "enum": [
              "LIST_CHANGE_KIND_UNSPECIFIED",
              "LIST_CHANGE_KIND_ADDED",
              "LIST_CHANGE_KIND_REMOVED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "listIndex": {
            "description": "The identifier of the other side of the binding: the tool ID when viewing a\n toolset's history, or the toolset ID when viewing a tool's history.",
            "type": "string"
          }
        },
        "title": "Mcp Access Profile Tool Binding History Item",
        "type": "object",
        "x-speakeasy-name-override": "MCPAccessProfileToolBindingHistoryItem"
      },
      "c1.api.ai_governance.v1.MCPAccessProfileToolBindingServiceCreateRequestInput": {
        "description": "MCPAccessProfileToolBindingServiceCreateRequest creates tool bindings.",
        "properties": {
          "mcpToolIds": {
            "description": "MCP tool IDs to bind to the access profile.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Mcp Access Profile Tool Binding Service Create Request",
        "type": "object",
        "x-speakeasy-name-override": "MCPAccessProfileToolBindingServiceCreateRequest"
      },
      "c1.api.ai_governance.v1.MCPAccessProfileToolBindingServiceCreateResponse": {
        "description": "MCPAccessProfileToolBindingServiceCreateResponse returns created bindings.",
        "properties": {
          "bindings": {
            "description": "Created tool bindings.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfileToolBinding"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Mcp Access Profile Tool Binding Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPAccessProfileToolBindingServiceCreateResponse"
      },
      "c1.api.ai_governance.v1.MCPAccessProfileToolBindingServiceDeleteRequestInput": {
        "description": "MCPAccessProfileToolBindingServiceDeleteRequest deletes tool bindings.",
        "properties": {
          "mcpToolIds": {
            "description": "MCP tool IDs to unbind from the access profile.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Mcp Access Profile Tool Binding Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "MCPAccessProfileToolBindingServiceDeleteRequest"
      },
      "c1.api.ai_governance.v1.MCPAccessProfileToolBindingServiceDeleteResponse": {
        "description": "MCPAccessProfileToolBindingServiceDeleteResponse confirms deletion.",
        "title": "Mcp Access Profile Tool Binding Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPAccessProfileToolBindingServiceDeleteResponse"
      },
      "c1.api.ai_governance.v1.MCPAccessProfileToolBindingServiceGetAccessProfilesForToolsRequestInput": {
        "description": "MCPAccessProfileToolBindingServiceGetAccessProfilesForToolsRequest requests\n the access profiles bound to a batch of MCP tools.",
        "properties": {
          "mcpToolIds": {
            "description": "MCP tool IDs to look up. Sized to match frontend MultiGet batch size.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Mcp Access Profile Tool Binding Service Get Access Profiles For Tools Request",
        "type": "object",
        "x-speakeasy-name-override": "MCPAccessProfileToolBindingServiceGetAccessProfilesForToolsRequest"
      },
      "c1.api.ai_governance.v1.MCPAccessProfileToolBindingServiceGetAccessProfilesForToolsResponse": {
        "description": "MCPAccessProfileToolBindingServiceGetAccessProfilesForToolsResponse returns\n access profiles grouped by MCP tool.",
        "properties": {
          "accessProfilesForTools": {
            "description": "One entry per requested MCP tool. Tools with no bindings are still\n included with an empty access_profiles list, so callers can distinguish\n \"no bindings\" from \"tool not requested\" in the multi-get cache.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.AccessProfilesForTool"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Mcp Access Profile Tool Binding Service Get Access Profiles For Tools Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPAccessProfileToolBindingServiceGetAccessProfilesForToolsResponse"
      },
      "c1.api.ai_governance.v1.MCPAccessProfileToolBindingServiceListProfilesByToolHistoryResponse": {
        "description": "Contains a page of change-history entries for the toolsets one tool has belonged to,\n sorted newest first.",
        "properties": {
          "list": {
            "description": "The page of history entries, newest first.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfileToolBindingHistoryEntry"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Pagination token for the next page, or empty if there are no more results.",
            "type": "string"
          }
        },
        "title": "Mcp Access Profile Tool Binding Service List Profiles By Tool History Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPAccessProfileToolBindingServiceListProfilesByToolHistoryResponse"
      },
      "c1.api.ai_governance.v1.MCPAccessProfileToolBindingServiceListResponse": {
        "description": "MCPAccessProfileToolBindingServiceListResponse returns tool bindings.",
        "properties": {
          "bindings": {
            "description": "List of tool bindings.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfileToolBinding"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token for next page.",
            "type": "string"
          }
        },
        "title": "Mcp Access Profile Tool Binding Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPAccessProfileToolBindingServiceListResponse"
      },
      "c1.api.ai_governance.v1.MCPAccessProfileToolBindingServiceListToolsByProfileHistoryResponse": {
        "description": "Contains a page of change-history entries for the tools bound to one toolset\n sorted newest first.",
        "properties": {
          "list": {
            "description": "The page of history entries, newest first.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfileToolBindingHistoryEntry"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Pagination token for the next page, or empty if there are no more results.",
            "type": "string"
          }
        },
        "title": "Mcp Access Profile Tool Binding Service List Tools By Profile History Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPAccessProfileToolBindingServiceListToolsByProfileHistoryResponse"
      },
      "c1.api.ai_governance.v1.MCPAccessProvisioningConfig": {
        "description": "MCPAccessProvisioningConfig selects a shared toolset and how users receive access.",
        "properties": {
          "accessLevel": {
            "description": "Unspecified defaults to read-only access.",
            "enum": [
              "MCP_SYSTEM_TOOLSET_UNSPECIFIED",
              "MCP_SYSTEM_TOOLSET_READ",
              "MCP_SYSTEM_TOOLSET_ALL_APPROVED",
              "MCP_SYSTEM_TOOLSET_CUSTOM"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "automatic": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAutomaticAccessProvisioning"
              },
              {
                "type": "null"
              }
            ]
          },
          "request": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPRequestAccessProvisioning"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Mcp Access Provisioning Config",
        "type": "object",
        "x-speakeasy-name-override": "MCPAccessProvisioningConfig"
      },
      "c1.api.ai_governance.v1.MCPAutomaticAccessProvisioning": {
        "description": "MCPAutomaticAccessProvisioning enables system-managed birthright access.",
        "properties": {
          "enabled": {
            "description": "Requires JML for membership automation.",
            "type": "boolean"
          }
        },
        "title": "Mcp Automatic Access Provisioning",
        "type": "object",
        "x-speakeasy-name-override": "MCPAutomaticAccessProvisioning"
      },
      "c1.api.ai_governance.v1.MCPClientLifecycleConfig": {
        "description": "MCPClientLifecycleConfig controls how long inactive MCP clients remain\n visible, when their access is closed, and when their records are removed.\n Durations are measured from the client's last activity. Any duration left at\n zero disables that transition.",
        "properties": {
          "inactivityCloseAfter": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "inactivityHideAfter": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "retentionDeleteAfter": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Mcp Client Lifecycle Config",
        "type": "object",
        "x-speakeasy-name-override": "MCPClientLifecycleConfig"
      },
      "c1.api.ai_governance.v1.MCPConnectionView": {
        "description": "MCPConnectionView is the user-facing representation of a per-user MCP\n server, including whether the calling user has an active credential.\n Covers both OAuth2 authorization-code passthrough (where the user\n connects via an IdP redirect) and bearer-token / custom-header\n passthrough (where the user submits a value via SubmitUserCredential).\n The frontend branches on auth_method to decide which flow to drive.",
        "properties": {
          "appId": {
            "description": "App that owns this MCP server.",
            "type": "string"
          },
          "authMethod": {
            "description": "Auth method on the connector. Drives the FE connect-flow choice:\n OAUTH2 → redirect via CreateAuthorizeURL; BEARER_TOKEN / CUSTOM_HEADER\n → form dialog via SubmitUserCredential.",
            "enum": [
              "MCP_SERVER_AUTH_METHOD_UNSPECIFIED",
              "MCP_SERVER_AUTH_METHOD_NONE",
              "MCP_SERVER_AUTH_METHOD_BEARER_TOKEN",
              "MCP_SERVER_AUTH_METHOD_OAUTH2",
              "MCP_SERVER_AUTH_METHOD_CUSTOM_HEADER",
              "MCP_SERVER_AUTH_METHOD_AWS_SIGV4",
              "MCP_SERVER_AUTH_METHOD_BASIC_AUTH"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "authorizedAsEmail": {
            "description": "Email of the external identity (from OAuth ID token). Empty for\n non-OAuth connections (no upstream identity to surface).",
            "type": "string"
          },
          "authorizedAsName": {
            "description": "Display name of the external identity (from OAuth ID token). Empty\n for non-OAuth connections.",
            "type": "string"
          },
          "connected": {
            "description": "Whether the calling user has an active credential.",
            "type": "boolean"
          },
          "connectedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "connectorId": {
            "description": "MCP server connector ID.",
            "type": "string"
          },
          "description": {
            "description": "Description of the MCP server.",
            "type": "string"
          },
          "displayName": {
            "description": "Display name of the MCP server.",
            "type": "string"
          },
          "serverType": {
            "description": "Server type (hosted or external).",
            "enum": [
              "MCP_SERVER_TYPE_UNSPECIFIED",
              "MCP_SERVER_TYPE_HOSTED",
              "MCP_SERVER_TYPE_EXTERNAL"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Mcp Connection View",
        "type": "object",
        "x-speakeasy-name-override": "MCPConnectionView"
      },
      "c1.api.ai_governance.v1.MCPRequestAccessProvisioning": {
        "description": "MCPRequestAccessProvisioning attaches a system toolset to request access profiles.",
        "properties": {
          "accessProfileIds": {
            "description": "Optional access profiles that receive the selected toolset during Register.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Mcp Request Access Provisioning",
        "type": "object",
        "x-speakeasy-name-override": "MCPRequestAccessProvisioning"
      },
      "c1.api.ai_governance.v1.MCPResource": {
        "description": "MCPResource represents metadata about an individual resource discovered from an MCP server.",
        "properties": {
          "appEntitlementId": {
            "description": "Bound AppEntitlement created during sync.",
            "type": "string"
          },
          "appId": {
            "description": "App identifier (app that owns the connector).",
            "type": "string"
          },
          "connectorId": {
            "description": "Connector identifier.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "Description from the MCP resource spec.",
            "type": "string"
          },
          "discoveryHash": {
            "description": "Hash of resource definition for change detection.",
            "type": "string"
          },
          "entitlementActive": {
            "description": "Whether the bound app entitlement exists and is not deleted. Computed\n read-only; populated on Search only when the request had\n include_grant_status = true; ignored on write.",
            "readOnly": true,
            "type": "boolean"
          },
          "grantCount": {
            "description": "Number of active grants on the bound app entitlement. Computed read-only;\n populated on Search only when the request had include_grant_status = true;\n ignored on write.",
            "format": "int64",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for this MCP resource record.",
            "type": "string"
          },
          "kind": {
            "description": "Whether this is a static resource or a URI template.",
            "enum": [
              "MCP_RESOURCE_KIND_UNSPECIFIED",
              "MCP_RESOURCE_KIND_STATIC",
              "MCP_RESOURCE_KIND_TEMPLATE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "lastDiscoveredAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "mimeType": {
            "description": "MIME type of the resource content, when known.",
            "type": "string"
          },
          "name": {
            "description": "Native MCP resource name (unique within an MCP server).",
            "type": "string"
          },
          "state": {
            "description": "Resource approval/lifecycle state.",
            "enum": [
              "MCP_RESOURCE_STATE_UNSPECIFIED",
              "MCP_RESOURCE_STATE_PENDING_REVIEW",
              "MCP_RESOURCE_STATE_APPROVED",
              "MCP_RESOURCE_STATE_DISABLED",
              "MCP_RESOURCE_STATE_REMOVED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "title": {
            "description": "Human-readable title from the MCP resource spec.",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "uri": {
            "description": "Raw resource URI from MCP discovery (set for STATIC resources).",
            "type": "string"
          },
          "uriTemplate": {
            "description": "Raw RFC 6570 URI template from MCP discovery (set for TEMPLATE resources).",
            "type": "string"
          }
        },
        "title": "Mcp Resource",
        "type": "object",
        "x-speakeasy-name-override": "MCPResource"
      },
      "c1.api.ai_governance.v1.MCPResourceHistoryEntry": {
        "description": "MCPResourceHistoryEntry is one version of an MCP resource and its history metadata.",
        "properties": {
          "metadata": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.history.v1.HistoryEntryMetadata"
              },
              {
                "type": "null"
              }
            ]
          },
          "snapshot": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPResource"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Mcp Resource History Entry",
        "type": "object",
        "x-speakeasy-name-override": "MCPResourceHistoryEntry"
      },
      "c1.api.ai_governance.v1.MCPResourceServiceGetResponse": {
        "description": "MCPResourceServiceGetResponse returns a single MCP resource.",
        "properties": {
          "resource": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPResource"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Mcp Resource Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPResourceServiceGetResponse"
      },
      "c1.api.ai_governance.v1.MCPResourceServiceListHistoryResponse": {
        "description": "MCPResourceServiceListHistoryResponse returns MCP resource history entries.",
        "properties": {
          "list": {
            "description": "The page of history entries, newest first.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPResourceHistoryEntry"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Pagination token for the next page, or empty if there are no more results.",
            "type": "string"
          }
        },
        "title": "Mcp Resource Service List History Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPResourceServiceListHistoryResponse"
      },
      "c1.api.ai_governance.v1.MCPResourceServiceListResponse": {
        "description": "MCPResourceServiceListResponse returns a list of MCP resources.",
        "properties": {
          "nextPageToken": {
            "description": "Token for next page.",
            "type": "string"
          },
          "resources": {
            "description": "List of MCP resources.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPResource"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Mcp Resource Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPResourceServiceListResponse"
      },
      "c1.api.ai_governance.v1.MCPResourceServiceSearchRequestInput": {
        "description": "MCPResourceServiceSearchRequest searches MCP resources with filters.",
        "properties": {
          "includeGrantStatus": {
            "description": "When true, the server populates the computed entitlement_active and\n grant_count fields on each returned row (an extra batched entitlement\n lookup per page). Off by default so callers that don't render grant\n status don't pay for it.",
            "type": "boolean"
          },
          "kindFilter": {
            "description": "Optional filter by resource kind. An empty list means no filter.",
            "items": {
              "enum": [
                "MCP_RESOURCE_KIND_UNSPECIFIED",
                "MCP_RESOURCE_KIND_STATIC",
                "MCP_RESOURCE_KIND_TEMPLATE"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pageSize": {
            "description": "Page size (max 100).",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "Page token for pagination.",
            "type": "string"
          },
          "query": {
            "description": "Optional text query matched against name, title, description, and uri.",
            "type": "string"
          },
          "sortBy": {
            "description": "Sort order for results. UNSPECIFIED sorts by resource name ascending.",
            "enum": [
              "MCP_RESOURCE_SORT_BY_UNSPECIFIED",
              "MCP_RESOURCE_SORT_BY_NAME",
              "MCP_RESOURCE_SORT_BY_URI",
              "MCP_RESOURCE_SORT_BY_STATE",
              "MCP_RESOURCE_SORT_BY_UPDATED_AT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "sortDirection": {
            "description": "Direction for sort_by. UNSPECIFIED means ascending.",
            "enum": [
              "SORT_DIRECTION_UNSPECIFIED",
              "SORT_DIRECTION_ASC",
              "SORT_DIRECTION_DESC"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "stateFilter": {
            "description": "Optional filter by resource state. An empty list defaults to\n PENDING_REVIEW, APPROVED, and DISABLED (REMOVED is hidden unless\n explicitly requested).",
            "items": {
              "enum": [
                "MCP_RESOURCE_STATE_UNSPECIFIED",
                "MCP_RESOURCE_STATE_PENDING_REVIEW",
                "MCP_RESOURCE_STATE_APPROVED",
                "MCP_RESOURCE_STATE_DISABLED",
                "MCP_RESOURCE_STATE_REMOVED"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Mcp Resource Service Search Request",
        "type": "object",
        "x-speakeasy-name-override": "MCPResourceServiceSearchRequest"
      },
      "c1.api.ai_governance.v1.MCPResourceServiceSearchResponse": {
        "description": "MCPResourceServiceSearchResponse returns matching MCP resources.",
        "properties": {
          "list": {
            "description": "Matching MCP resources.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPResource"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token for next page.",
            "type": "string"
          }
        },
        "title": "Mcp Resource Service Search Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPResourceServiceSearchResponse"
      },
      "c1.api.ai_governance.v1.MCPResourceServiceUpdateRequestInput": {
        "description": "MCPResourceServiceUpdateRequest updates an existing MCP resource.",
        "properties": {
          "resource": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPResource"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Mcp Resource Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "MCPResourceServiceUpdateRequest"
      },
      "c1.api.ai_governance.v1.MCPResourceServiceUpdateResponse": {
        "description": "MCPResourceServiceUpdateResponse returns the updated MCP resource.",
        "properties": {
          "resource": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPResource"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Mcp Resource Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPResourceServiceUpdateResponse"
      },
      "c1.api.ai_governance.v1.MCPServerAuthAWSSigV4": {
        "description": "MCPServerAuthAWSSigV4 provides AWS Signature Version 4 authentication.\n Used for hosted MCP servers backed by AWS service impls (the\n amazonaws_com_* catalog entries). Outbound requests from the gateway are\n signed per-request with the supplied access key + secret, against the\n service+region scope sourced from the impl bundle's connect.auth.\n\n Only the SHARED token-sharing model is supported — every caller in the\n tenant signs with the same admin-configured credentials. Per-user AWS\n (STS / Web Identity / IAM Identity Center) is a separate future surface.",
        "properties": {
          "accessKeyId": {
            "description": "AWS access key ID (the IAM user / role's public identifier, e.g.\n \"AKIAIOSFODNN7EXAMPLE\"). Persisted in plaintext form; the secret half\n is sealed.",
            "type": "string"
          },
          "secretAccessKey": {
            "description": "AWS secret access key. Sealed by the backend on write; never returned on\n read.",
            "type": "string"
          },
          "sessionToken": {
            "description": "Optional AWS session token. Set only when the credential is a\n short-lived STS temporary credential. Static IAM-user keys leave this\n empty.",
            "type": "string"
          }
        },
        "title": "Mcp Server Auth Aws Sig V 4",
        "type": "object",
        "x-speakeasy-name-override": "MCPServerAuthAWSSigV4"
      },
      "c1.api.ai_governance.v1.MCPServerAuthBasicAuth": {
        "description": "MCPServerAuthBasicAuth provides HTTP Basic authentication (RFC 7617).\n The gateway encodes `username:password` as base64 and sends it as\n `Authorization: Basic \u003cencoded\u003e` on every outbound request.",
        "properties": {
          "password": {
            "description": "Password. Sealed before storage; never returned on read.\n ignore_empty for the same PER_USER reason as username above.",
            "type": "string"
          },
          "username": {
            "description": "Username. Sent in plaintext over TLS; stored unsealed on the\n connector config (mirrors how MCPAuthOAuth2.client_id is plaintext).\n ignore_empty mirrors MCPServerAuthBearerToken.token — PER_USER admin\n submits don't carry a username; the handler enforces non-empty for\n SHARED.",
            "type": "string"
          }
        },
        "title": "Mcp Server Auth Basic Auth",
        "type": "object",
        "x-speakeasy-name-override": "MCPServerAuthBasicAuth"
      },
      "c1.api.ai_governance.v1.MCPServerAuthBearerToken": {
        "description": "MCPServerAuthBearerToken provides bearer token authentication.",
        "properties": {
          "token": {
            "description": "The bearer token value.",
            "type": "string"
          }
        },
        "title": "Mcp Server Auth Bearer Token",
        "type": "object",
        "x-speakeasy-name-override": "MCPServerAuthBearerToken"
      },
      "c1.api.ai_governance.v1.MCPServerAuthCustomHeader": {
        "description": "MCPServerAuthCustomHeader provides custom header authentication.",
        "properties": {
          "headerName": {
            "description": "HTTP header name.",
            "type": "string"
          },
          "headerValue": {
            "description": "HTTP header value.",
            "type": "string"
          }
        },
        "title": "Mcp Server Auth Custom Header",
        "type": "object",
        "x-speakeasy-name-override": "MCPServerAuthCustomHeader"
      },
      "c1.api.ai_governance.v1.MCPServerAuthGoogleServiceAccount": {
        "description": "MCPServerAuthGoogleServiceAccount provides Google service account authentication.\n The admin uploads the raw JSON key file from the GCP console; the backend parses\n it to extract the private key, client email (issuer), and token URI.",
        "properties": {
          "credentialsJson": {
            "description": "Raw JSON content of the Google service account key file.",
            "type": "string"
          },
          "scopes": {
            "description": "OAuth2 scopes to request when exchanging the JWT for an access token.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Mcp Server Auth Google Service Account",
        "type": "object",
        "x-speakeasy-name-override": "MCPServerAuthGoogleServiceAccount"
      },
      "c1.api.ai_governance.v1.MCPServerAuthNone": {
        "description": "MCPServerAuthNone indicates no authentication is required.",
        "title": "Mcp Server Auth None",
        "type": "object",
        "x-speakeasy-name-override": "MCPServerAuthNone"
      },
      "c1.api.ai_governance.v1.MCPServerAuthOAuth2": {
        "description": "MCPServerAuthOAuth2 provides OAuth2 client credentials or JWT Bearer authentication.",
        "properties": {
          "authorizeUrl": {
            "description": "OAuth2 authorization endpoint URL (for service and passthrough modes).",
            "type": "string"
          },
          "clientId": {
            "description": "OAuth2 client identifier. Required for CLIENT_CREDENTIALS mode; not used for JWT_BEARER mode.",
            "type": "string"
          },
          "clientIdMode": {
            "description": "How the client_id is acquired for authorization_code mode. When DCR (or\n CIMD), client_id / client_secret are not required on input — the gateway\n registers itself with the authorization server during Register and injects\n the result. UNSPECIFIED means manual (admin-entered client_id).",
            "enum": [
              "MCP_SERVER_AUTH_OAUTH2_CLIENT_ID_MODE_UNSPECIFIED",
              "MCP_SERVER_AUTH_OAUTH2_CLIENT_ID_MODE_DCR",
              "MCP_SERVER_AUTH_OAUTH2_CLIENT_ID_MODE_CIMD"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "clientSecret": {
            "description": "OAuth2 client secret. Required for CLIENT_CREDENTIALS mode; not used for JWT_BEARER mode.",
            "type": "string"
          },
          "codeChallengeMethodsSupported": {
            "description": "PKCE code challenge methods supported by the authorization server, as\n returned by DiscoverOIDCEndpoints. Optional registration-time shortcut\n that lets the gateway skip the per-flow xjwks.Cache lookup. Capped at\n 8 entries because RFC 7636 / RFC 8414 only define a tiny enumerated\n set (\"plain\", \"S256\") and we don't want to be a dumping ground for\n arbitrary strings the IdP might emit.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "extraAuthorizeParams": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Static query params appended to the authorize URL on top of the standard\n OAuth2 fields (e.g. Notion \"owner=user\"). Applies to authorization_code\n mode only. Inherited from MCPServerCatalogAuthMode.extra_authorize_params\n at registration time.",
            "type": "object"
          },
          "extraTokenParams": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Extra body params POSTed to the token endpoint on top of the standard\n OAuth2 fields. Provider-specific (e.g. Auth0/Wiz \"audience\"). Applies\n to client_credentials mode only; other modes ignore it. Inherited from\n MCPServerCatalogAuthMode.extra_token_params at registration time;\n admins can add, edit, or remove entries on the edit form.",
            "type": "object"
          },
          "issuerUrl": {
            "description": "OIDC issuer URL (no trailing path). Used as the cache key for live\n PKCE-methods discovery via xjwks.Cache on the gateway. Populated by\n the Discover button or hand-entered alongside authorize_url/token_url.\n Required for SERVICE / PASSTHROUGH modes.",
            "type": "string"
          },
          "jwtAudience": {
            "description": "Audience claim for the JWT. When empty, token_url is used as the audience.",
            "type": "string"
          },
          "jwtIssuer": {
            "description": "The service account email / issuer claim.",
            "type": "string"
          },
          "jwtPrivateKey": {
            "description": "PEM-encoded RSA private key (plaintext in API; sealed before storage).",
            "type": "string"
          },
          "jwtSubject": {
            "description": "Optional subject for domain-wide delegation.",
            "type": "string"
          },
          "mode": {
            "description": "OAuth2 mode.",
            "enum": [
              "MCP_SERVER_AUTH_OAUTH2_MODE_UNSPECIFIED",
              "MCP_SERVER_AUTH_OAUTH2_MODE_SERVICE",
              "MCP_SERVER_AUTH_OAUTH2_MODE_PASSTHROUGH",
              "MCP_SERVER_AUTH_OAUTH2_MODE_CLIENT_CREDENTIALS",
              "MCP_SERVER_AUTH_OAUTH2_MODE_JWT_BEARER",
              "MCP_SERVER_AUTH_OAUTH2_MODE_GOOGLE_SERVICE_ACCOUNT",
              "MCP_SERVER_AUTH_OAUTH2_MODE_AUTHORIZATION_CODE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "pkce": {
            "description": "PKCE behavior for authorization_code mode: \"discover\" (or empty),\n \"s256\", or \"disabled\". Inherited from MCPServerCatalogAuthMode.pkce.",
            "type": "string"
          },
          "scopes": {
            "description": "OAuth2 scopes to request.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "scopesSupported": {
            "description": "Full list of OAuth scopes the IdP advertises in its discovery doc\n (`scopes_supported`). Distinct from the `scopes` field above, which is\n the curated subset the admin wants requested on the authorize URL.\n Captured at registration time so the edit form can offer autocomplete\n suggestions on the Scopes input without forcing the admin to re-run\n Discover. Capped at 256 because providers like Salesforce return ~36;\n 256 leaves headroom without inviting abuse.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "tokenEndpointAuthMethod": {
            "description": "RFC 7591 token_endpoint_auth_method. For DCR/CIMD client_id_mode this is\n server-set from the registration result and input is ignored. For a MANUAL\n client_id_mode, \"none\" may be set on write to declare a pre-registered\n public client (PKCE-only, no client_secret); any other value is rejected.",
            "type": "string"
          },
          "tokenUrl": {
            "description": "OAuth2 token endpoint URL. Required for all modes when creating or\n rotating; uses ignore_empty so partial UpdateCredentials calls that omit\n this path pass protovalidate. The handler enforces required-on-create.",
            "type": "string"
          }
        },
        "title": "Mcp Server Auth O Auth 2",
        "type": "object",
        "x-speakeasy-name-override": "MCPServerAuthOAuth2"
      },
      "c1.api.ai_governance.v1.MCPServerCatalogAuthMode": {
        "description": "MCPServerCatalogAuthMode describes a single authentication method an impl\n supports. Multiple modes mean the user/admin can pick at registration time\n (e.g., GitHub: bearer PAT or OAuth2). Sourced from the bundle's\n connect.supported_auth_modes via the model-side mirror.",
        "properties": {
          "authMethod": {
            "description": "Authentication method enum. UNSPECIFIED entries are dropped on the way out.",
            "enum": [
              "MCP_SERVER_AUTH_METHOD_UNSPECIFIED",
              "MCP_SERVER_AUTH_METHOD_NONE",
              "MCP_SERVER_AUTH_METHOD_BEARER_TOKEN",
              "MCP_SERVER_AUTH_METHOD_OAUTH2",
              "MCP_SERVER_AUTH_METHOD_CUSTOM_HEADER",
              "MCP_SERVER_AUTH_METHOD_AWS_SIGV4",
              "MCP_SERVER_AUTH_METHOD_BASIC_AUTH"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "authStyle": {
            "description": "Credential placement on the OAuth2 token request. Allowed values:\n \"in_params\" (form body), \"in_header\" (HTTP Basic), or empty\n (autodetect). Set by the impl bundle and shown read-only on the form.",
            "type": "string"
          },
          "authorizeUrl": {
            "description": "OAuth2 authorization endpoint URL. Empty for non-OAuth2 methods.",
            "type": "string"
          },
          "clientIdMode": {
            "description": "How the OAuth2 client_id is acquired for this mode. Set by the impl bundle\n and shown read-only on the form. authorization_code grant only.",
            "enum": [
              "MCP_SERVER_CATALOG_CLIENT_ID_MODE_UNSPECIFIED",
              "MCP_SERVER_CATALOG_CLIENT_ID_MODE_MANUAL",
              "MCP_SERVER_CATALOG_CLIENT_ID_MODE_DCR",
              "MCP_SERVER_CATALOG_CLIENT_ID_MODE_CIMD"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "credentialUrl": {
            "description": "Documentation URL where the user can obtain a credential for this method\n (e.g., a link to the SaaS app's \"create API token\" page). Empty if not set.",
            "type": "string"
          },
          "description": {
            "description": "Optional admin-facing hint describing the use case this mode targets\n (e.g. \"Per user OAuth option\").",
            "type": "string"
          },
          "extraAuthorizeParams": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Static query params the bundle declares for the authorize URL\n (e.g. Notion `owner=user`). authorization_code grant only. Surfaced\n read-only so the form can pre-populate its editable copy.",
            "type": "object"
          },
          "extraTokenParams": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Extra body params the bundle declares for the OAuth2 token request\n (e.g. Auth0/Wiz `audience`). Surfaced read-only so the registration\n form can pre-populate its editable copy on MCPServerAuthOAuth2.",
            "type": "object"
          },
          "header": {
            "description": "Header name for api_key / custom-header methods. Prefills the form's\n header-name field. Empty falls back to the C1 default.",
            "type": "string"
          },
          "issuerUrl": {
            "description": "OAuth2 issuer URL (used for OIDC discovery). Empty when not an OIDC issuer.",
            "type": "string"
          },
          "jwtAudience": {
            "description": "JWT-bearer assertion audience when it differs from token_url.",
            "type": "string"
          },
          "oauth2Grant": {
            "description": "OAuth2 grant for this mode. Prefills the form's OAuth2 mode selection.\n Raw bundle string: \"client_credentials\", \"authorization_code\",\n \"jwt_bearer\", \"google_service_account\", or empty (infer from authorize_url).",
            "type": "string"
          },
          "optionalScopes": {
            "description": "Optional (opt-in) OAuth2 scopes from the config's optional_scopes.\n Disjoint from `scopes` and not pre-selected. Empty for non-OAuth2 methods.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "passthrough": {
            "description": "Per-user OAuth: each user authorizes individually instead of sharing a\n service-level credential. Only meaningful for OAuth2.",
            "type": "boolean"
          },
          "pkce": {
            "description": "PKCE behavior for authorization_code: \"discover\" (or empty), \"s256\", or\n \"disabled\". Set by the impl bundle and shown read-only on the form.",
            "type": "string"
          },
          "scopes": {
            "description": "OAuth2 scopes requested by this method. Empty for non-OAuth2 methods.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "tokenUrl": {
            "description": "OAuth2 token endpoint URL. Empty for non-OAuth2 methods.",
            "type": "string"
          }
        },
        "title": "Mcp Server Catalog Auth Mode",
        "type": "object",
        "x-speakeasy-name-override": "MCPServerCatalogAuthMode"
      },
      "c1.api.ai_governance.v1.MCPServerCatalogConfigField": {
        "description": "MCPServerCatalogConfigField describes a single extra configuration field for an MCP server catalog entry.",
        "properties": {
          "default": {
            "description": "Default value the registration form prefills. Ignored when secret.",
            "type": "string"
          },
          "description": {
            "description": "Help text describing the field.",
            "type": "string"
          },
          "displayName": {
            "description": "Human-readable label for the field.",
            "type": "string"
          },
          "name": {
            "description": "Machine-readable field name (used as the map key in config_fields).",
            "type": "string"
          },
          "placeholder": {
            "description": "Placeholder text shown in an empty input.",
            "type": "string"
          },
          "required": {
            "description": "Whether this field must be provided.",
            "type": "boolean"
          },
          "secret": {
            "description": "Whether the field value should be treated as a secret (e.g. masked in UI).",
            "type": "boolean"
          }
        },
        "title": "Mcp Server Catalog Config Field",
        "type": "object",
        "x-speakeasy-name-override": "MCPServerCatalogConfigField"
      },
      "c1.api.ai_governance.v1.MCPServerCatalogConfigSchema": {
        "description": "MCPServerCatalogConfigSchema describes extra configuration fields beyond auth.",
        "properties": {
          "fields": {
            "description": "The fields field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerCatalogConfigField"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Mcp Server Catalog Config Schema",
        "type": "object",
        "x-speakeasy-name-override": "MCPServerCatalogConfigSchema"
      },
      "c1.api.ai_governance.v1.MCPServerCatalogEntry": {
        "description": "MCPServerCatalogEntry describes a supported MCP server in the catalog.",
        "properties": {
          "authModes": {
            "description": "Authentication methods this server supports. The first entry is the\n catalog-prescribed default. Empty when the impl declares no auth.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerCatalogAuthMode"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "authValidationUrl": {
            "description": "Authentication validation endpoint declared by the catalog impl. Set only\n when the impl declares an endpoint that rejects invalid credentials.\n Hosted connection tests are offered only for connect_type \"mcp\" entries\n with this set. May be a ${VAR} template over config_schema fields, like\n base_url.",
            "type": "string"
          },
          "baseUrl": {
            "description": "Connection base URL declared by the impl. May be a ${VAR} template over\n config_schema fields (e.g. \"https://${workspace}.app.n8n.cloud/mcp-server/http\");\n the UI substitutes the admin's config-field values to preview the resolved\n endpoint. Empty when the impl declares no base URL.",
            "type": "string"
          },
          "channel": {
            "description": "Release channel for this catalog entry.",
            "enum": [
              "MCP_SERVER_CATALOG_CHANNEL_UNSPECIFIED",
              "MCP_SERVER_CATALOG_CHANNEL_STABLE",
              "MCP_SERVER_CATALOG_CHANNEL_BETA",
              "MCP_SERVER_CATALOG_CHANNEL_ALPHA"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "configSchema": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerCatalogConfigSchema"
              },
              {
                "type": "null"
              }
            ]
          },
          "connectType": {
            "description": "Connection type declared by the catalog impl (for example, \"mcp\").",
            "type": "string"
          },
          "defaultAuthMethod": {
            "deprecated": true,
            "description": "Deprecated: read auth_modes instead.",
            "enum": [
              "MCP_SERVER_AUTH_METHOD_UNSPECIFIED",
              "MCP_SERVER_AUTH_METHOD_NONE",
              "MCP_SERVER_AUTH_METHOD_BEARER_TOKEN",
              "MCP_SERVER_AUTH_METHOD_OAUTH2",
              "MCP_SERVER_AUTH_METHOD_CUSTOM_HEADER",
              "MCP_SERVER_AUTH_METHOD_AWS_SIGV4",
              "MCP_SERVER_AUTH_METHOD_BASIC_AUTH"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "defaultAuthorizeUrl": {
            "deprecated": true,
            "description": "Deprecated: read the OAUTH2 entry's authorize_url from auth_modes instead.",
            "type": "string"
          },
          "defaultScopes": {
            "deprecated": true,
            "description": "Deprecated: read the OAUTH2 entry's scopes from auth_modes instead.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "defaultTokenUrl": {
            "deprecated": true,
            "description": "Deprecated: read the OAUTH2 entry's token_url from auth_modes instead.",
            "type": "string"
          },
          "defaultToolPrefix": {
            "description": "Curated default tool-name prefix an admin gets when they register this\n catalog entry and set no custom prefix: the impl's declared server_prefix,\n else its service_name. Shown as a placeholder in the create wizard's tool\n prefix field. Empty when the impl declares no curated default. Mirrors the\n read-only default_tool_prefix on MCPServerView surfaced in the edit flow.",
            "type": "string"
          },
          "description": {
            "description": "Short description of what the MCP server does.",
            "type": "string"
          },
          "displayName": {
            "description": "Human-readable display name.",
            "type": "string"
          },
          "iconUrl": {
            "description": "Icon URL (e.g. \"/static/app-icons/datadog.svg\").",
            "type": "string"
          },
          "id": {
            "description": "Opaque catalog entry identifier (27-character KSUID).",
            "type": "string"
          },
          "maturity": {
            "description": "Implementation maturity level.",
            "enum": [
              "MCP_SERVER_CATALOG_MATURITY_UNSPECIFIED",
              "MCP_SERVER_CATALOG_MATURITY_STUB",
              "MCP_SERVER_CATALOG_MATURITY_GENERATED",
              "MCP_SERVER_CATALOG_MATURITY_VERIFIED",
              "MCP_SERVER_CATALOG_MATURITY_CURATED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "scope": {
            "description": "Implementation scope classification.",
            "enum": [
              "MCP_SERVER_CATALOG_SCOPE_UNSPECIFIED",
              "MCP_SERVER_CATALOG_SCOPE_BUSINESS",
              "MCP_SERVER_CATALOG_SCOPE_EXCLUDED",
              "MCP_SERVER_CATALOG_SCOPE_UNDETERMINED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "serviceName": {
            "description": "mcpgw impl service name (e.g., \"datadog\", \"github\"). Stable across\n display-name changes; suitable for grouping entries that share an impl\n and for matching catalog entries to a host app. For tunneled HOSTED\n registrations the appliance must announce a HOSTED port whose Name field\n matches this string — that's how the wormhole DialByName at runtime\n resolves the right port on the appliance.",
            "type": "string"
          },
          "stable": {
            "deprecated": true,
            "description": "Whether this catalog entry is stable (true) or early access (false/default).\n Deprecated: use channel instead.",
            "type": "boolean"
          },
          "supportedOauth2Modes": {
            "description": "OAuth2 modes supported by this server. When non-empty, the frontend shows\n only these modes in the dropdown. When empty, all modes are shown.",
            "items": {
              "enum": [
                "MCP_SERVER_AUTH_OAUTH2_MODE_UNSPECIFIED",
                "MCP_SERVER_AUTH_OAUTH2_MODE_SERVICE",
                "MCP_SERVER_AUTH_OAUTH2_MODE_PASSTHROUGH",
                "MCP_SERVER_AUTH_OAUTH2_MODE_CLIENT_CREDENTIALS",
                "MCP_SERVER_AUTH_OAUTH2_MODE_JWT_BEARER",
                "MCP_SERVER_AUTH_OAUTH2_MODE_GOOGLE_SERVICE_ACCOUNT",
                "MCP_SERVER_AUTH_OAUTH2_MODE_AUTHORIZATION_CODE"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Mcp Server Catalog Entry",
        "type": "object",
        "x-speakeasy-name-override": "MCPServerCatalogEntry"
      },
      "c1.api.ai_governance.v1.MCPServerExternalConfig": {
        "description": "MCPServerExternalConfig configures an external MCP server accessed via HTTP transport.\n The server is routed through the MCP gateway for credential decryption.\n\nThis message contains a oneof named auth_config. Only a single field of the following list may be set at a time:\n  - none\n  - bearerToken\n  - oauth2\n  - customHeader\n  - basicAuth\n",
        "properties": {
          "basicAuth": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerAuthBasicAuth"
              },
              {
                "type": "null"
              }
            ]
          },
          "bearerToken": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerAuthBearerToken"
              },
              {
                "type": "null"
              }
            ]
          },
          "customHeader": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerAuthCustomHeader"
              },
              {
                "type": "null"
              }
            ]
          },
          "none": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerAuthNone"
              },
              {
                "type": "null"
              }
            ]
          },
          "oauth2": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerAuthOAuth2"
              },
              {
                "type": "null"
              }
            ]
          },
          "requireToolApproval": {
            "description": "Optional per-server override for tool approval when registering without an\n access level. See MCPServerView.require_tool_approval for semantics.",
            "enum": [
              "OPTIONAL_BOOL_UNSPECIFIED",
              "OPTIONAL_BOOL_TRUE",
              "OPTIONAL_BOOL_FALSE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "tokenSharing": {
            "description": "Token sharing model. SHARED = admin authorizes once; PER_USER = each user\n authenticates independently. PER_USER is supported for OAuth2\n authorization_code, bearer_token, custom_header, and basic_auth. Defaults\n to SHARED at runtime.",
            "enum": [
              "MCP_SERVER_TOKEN_SHARING_UNSPECIFIED",
              "MCP_SERVER_TOKEN_SHARING_SHARED",
              "MCP_SERVER_TOKEN_SHARING_PER_USER"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "transportType": {
            "description": "Transport type for the MCP connection.",
            "enum": [
              "MCP_SERVER_TRANSPORT_TYPE_UNSPECIFIED",
              "MCP_SERVER_TRANSPORT_TYPE_STREAMABLE_HTTP",
              "MCP_SERVER_TRANSPORT_TYPE_SSE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "url": {
            "description": "The HTTP endpoint URL of the external MCP server (HTTPS required).",
            "type": "string"
          }
        },
        "title": "Mcp Server External Config",
        "type": "object",
        "x-speakeasy-name-override": "MCPServerExternalConfig"
      },
      "c1.api.ai_governance.v1.MCPServerHostedConfig": {
        "description": "MCPServerHostedConfig configures a hosted MCP server backed by the MCP gateway.\n\nThis message contains a oneof named auth_config. Only a single field of the following list may be set at a time:\n  - none\n  - bearerToken\n  - oauth2\n  - customHeader\n  - googleServiceAccount\n  - awsSigv4\n  - basicAuth\n",
        "properties": {
          "awsSigv4": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerAuthAWSSigV4"
              },
              {
                "type": "null"
              }
            ]
          },
          "basicAuth": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerAuthBasicAuth"
              },
              {
                "type": "null"
              }
            ]
          },
          "bearerToken": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerAuthBearerToken"
              },
              {
                "type": "null"
              }
            ]
          },
          "configFields": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Extra config field values keyed by catalog config field name.\n Sent as plaintext over TLS; the backend seals secret fields based on catalog schema.",
            "type": "object"
          },
          "customHeader": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerAuthCustomHeader"
              },
              {
                "type": "null"
              }
            ]
          },
          "googleServiceAccount": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerAuthGoogleServiceAccount"
              },
              {
                "type": "null"
              }
            ]
          },
          "mcpServerCatalogId": {
            "description": "Opaque catalog entry ID (27-character KSUID). Obtain valid IDs from the\n ListCatalog or GetCatalog RPCs.",
            "type": "string"
          },
          "none": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerAuthNone"
              },
              {
                "type": "null"
              }
            ]
          },
          "oauth2": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerAuthOAuth2"
              },
              {
                "type": "null"
              }
            ]
          },
          "requireToolApproval": {
            "description": "Optional per-server override for tool approval when registering without an\n access level. See MCPServerView.require_tool_approval for semantics.",
            "enum": [
              "OPTIONAL_BOOL_UNSPECIFIED",
              "OPTIONAL_BOOL_TRUE",
              "OPTIONAL_BOOL_FALSE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "sourceAppId": {
            "description": "Source app ID (optional, for connector-backed servers).",
            "type": "string"
          },
          "tokenSharing": {
            "description": "Token sharing model for the configured auth method. SHARED means the\n admin authorizes once and the credential applies to every tool call;\n PER_USER means each user authenticates independently. PER_USER is\n supported for OAuth2 authorization-code, bearer_token, custom_header,\n and basic_auth methods; sending PER_USER alongside any other auth\n method is rejected with InvalidArgument.",
            "enum": [
              "MCP_SERVER_TOKEN_SHARING_UNSPECIFIED",
              "MCP_SERVER_TOKEN_SHARING_SHARED",
              "MCP_SERVER_TOKEN_SHARING_PER_USER"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Mcp Server Hosted Config",
        "type": "object",
        "x-speakeasy-name-override": "MCPServerHostedConfig"
      },
      "c1.api.ai_governance.v1.MCPServerSearchWithToolCountResult": {
        "description": "MCPServerSearchWithToolCountResult wraps a server view with per-state tool counts.",
        "properties": {
          "mcpServer": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerView"
              },
              {
                "type": "null"
              }
            ]
          },
          "toolCount": {
            "description": "The toolCount field.",
            "format": "int64",
            "type": "string"
          }
        },
        "title": "Mcp Server Search With Tool Count Result",
        "type": "object",
        "x-speakeasy-name-override": "MCPServerSearchWithToolCountResult"
      },
      "c1.api.ai_governance.v1.MCPServerServiceDeleteRequestInput": {
        "description": "MCPServerServiceDeleteRequest soft-deletes an MCP server.",
        "title": "Mcp Server Service Delete Request",
        "type": "object",
        "x-speakeasy-entity": "MCP Server",
        "x-speakeasy-name-override": "MCPServerServiceDeleteRequest"
      },
      "c1.api.ai_governance.v1.MCPServerServiceDeleteResponse": {
        "description": "MCPServerServiceDeleteResponse confirms deletion.",
        "title": "Mcp Server Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPServerServiceDeleteResponse"
      },
      "c1.api.ai_governance.v1.MCPServerServiceDisconnectRequestInput": {
        "description": "MCPServerServiceDisconnectRequest removes the calling user's OAuth credential\n for a passthrough-mode MCP server.",
        "title": "Mcp Server Service Disconnect Request",
        "type": "object",
        "x-speakeasy-name-override": "MCPServerServiceDisconnectRequest"
      },
      "c1.api.ai_governance.v1.MCPServerServiceDisconnectResponse": {
        "description": "MCPServerServiceDisconnectResponse is empty on success.",
        "title": "Mcp Server Service Disconnect Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPServerServiceDisconnectResponse"
      },
      "c1.api.ai_governance.v1.MCPServerServiceDiscoverOIDCEndpointsRequest": {
        "description": "MCPServerServiceDiscoverOIDCEndpointsRequest fetches the OpenID Connect discovery\n document for a given issuer URL.",
        "properties": {
          "issuerUrl": {
            "description": "The issuer URL (e.g. \"https://accounts.google.com\"). The server appends\n /.well-known/openid-configuration to this URL.",
            "type": "string"
          }
        },
        "title": "Mcp Server Service Discover Oidc Endpoints Request",
        "type": "object",
        "x-speakeasy-name-override": "MCPServerServiceDiscoverOIDCEndpointsRequest"
      },
      "c1.api.ai_governance.v1.MCPServerServiceDiscoverOIDCEndpointsResponse": {
        "description": "MCPServerServiceDiscoverOIDCEndpointsResponse returns the discovered OAuth2 endpoints.",
        "properties": {
          "authorizationEndpoint": {
            "description": "The authorization endpoint URL.",
            "type": "string"
          },
          "codeChallengeMethodsSupported": {
            "description": "PKCE code challenge methods supported by the authorization server (RFC 8414).\n Typical values: \"plain\", \"S256\". Empty when the discovery doc omits this\n field. The frontend should pass the array back unchanged on save so the\n backend can persist it on the connector and skip per-flow re-discovery.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "scopesSupported": {
            "description": "Scopes supported by the authorization server.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "tokenEndpoint": {
            "description": "The token endpoint URL.",
            "type": "string"
          }
        },
        "title": "Mcp Server Service Discover Oidc Endpoints Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPServerServiceDiscoverOIDCEndpointsResponse"
      },
      "c1.api.ai_governance.v1.MCPServerServiceGetCatalogResponse": {
        "description": "MCPServerServiceGetCatalogResponse returns a single catalog entry.",
        "properties": {
          "catalogEntry": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerCatalogEntry"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Mcp Server Service Get Catalog Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPServerServiceGetCatalogResponse"
      },
      "c1.api.ai_governance.v1.MCPServerServiceGetResponse": {
        "description": "MCPServerServiceGetResponse returns a single MCP server.",
        "properties": {
          "mcpServer": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerView"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Mcp Server Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPServerServiceGetResponse"
      },
      "c1.api.ai_governance.v1.MCPServerServiceListCatalogResponse": {
        "description": "MCPServerServiceListCatalogResponse returns a paginated list of catalog entries.",
        "properties": {
          "list": {
            "description": "List of catalog entries.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerCatalogEntry"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token for next page.",
            "type": "string"
          }
        },
        "title": "Mcp Server Service List Catalog Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPServerServiceListCatalogResponse"
      },
      "c1.api.ai_governance.v1.MCPServerServiceListConnectionsResponse": {
        "description": "MCPServerServiceListConnectionsResponse returns a list of passthrough-mode\n MCP servers with per-user connection status.",
        "properties": {
          "list": {
            "description": "List of passthrough MCP servers with connection status.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPConnectionView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token for next page.",
            "type": "string"
          }
        },
        "title": "Mcp Server Service List Connections Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPServerServiceListConnectionsResponse"
      },
      "c1.api.ai_governance.v1.MCPServerServiceListResponse": {
        "description": "MCPServerServiceListResponse returns a paginated list of MCP servers.",
        "properties": {
          "list": {
            "description": "List of MCP servers.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token for next page.",
            "type": "string"
          }
        },
        "title": "Mcp Server Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPServerServiceListResponse"
      },
      "c1.api.ai_governance.v1.MCPServerServiceRegisterRequestInput": {
        "description": "MCPServerServiceRegisterRequest creates a new MCP server (Connector + config).",
        "properties": {
          "accessProfileIds": {
            "deprecated": true,
            "description": "Deprecated: use access_provisioning.request. Retained for older clients;\n used when access_provisioning.request is absent.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "accessProvisioning": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProvisioningConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "acknowledgedFindingIds": {
            "description": "finding_ids from the diagnostic the admin acknowledged. Each must cover a\n blocking-relaxable finding on oauth_diagnostic_id.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appManagedStateBindingRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppManagedStateBindingRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "dataSensitivity": {
            "description": "Data sensitivity classification.",
            "enum": [
              "MCP_SERVER_DATA_SENSITIVITY_UNSPECIFIED",
              "MCP_SERVER_DATA_SENSITIVITY_PUBLIC",
              "MCP_SERVER_DATA_SENSITIVITY_INTERNAL",
              "MCP_SERVER_DATA_SENSITIVITY_CONFIDENTIAL",
              "MCP_SERVER_DATA_SENSITIVITY_RESTRICTED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "description": {
            "description": "Admin-provided description.",
            "type": "string"
          },
          "displayName": {
            "description": "Admin-provided display name.",
            "type": "string"
          },
          "externalConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerExternalConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "hostedConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerHostedConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "oauthDiagnosticId": {
            "description": "When registering a DCR (client_id_mode=DCR) hosted server, the id of the\n diagnostic returned by DiscoverMCPOAuthConfig that the admin reviewed. When\n set, the server uses that diagnostic as the canonical discovery result and\n relaxes only the acknowledged findings. Empty preserves the strict path.",
            "type": "string"
          },
          "serverType": {
            "description": "The type of MCP server being registered.",
            "enum": [
              "MCP_SERVER_TYPE_UNSPECIFIED",
              "MCP_SERVER_TYPE_HOSTED",
              "MCP_SERVER_TYPE_EXTERNAL"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "toolPrefix": {
            "description": "Optional prefix for tool names in the C1 MCP server.\n Tools are exposed as \"\u003ctool_prefix\u003e_\u003ctool_name\u003e\".\n When empty, the system uses an auto-derived prefix (service name or hostname).",
            "type": "string"
          },
          "tunnelApplianceId": {
            "description": "ID of the bridge (TunnelBridge.id, a KSUID) that proxies this server.\n Only set when tunneled == true; must match a bridge enrolled for this\n tenant. The server resolves this at register time to an active\n credential and persists that on the connector config; runtime routing\n through the wormhole requester is keyed on the resolved credential.\n\n Cross-field invariant: proto validation uses ignore_empty:true so an\n empty value passes the regex check. The service layer enforces that this\n field is non-empty whenever tunneled==true (see applyTunneledRegisterResolution).",
            "type": "string"
          },
          "tunnelPath": {
            "description": "Endpoint path on the appliance-side MCP server (e.g. \"/sse\", \"/mcp\").\n Only used for EXTERNAL servers when tunneled == true: the service\n synthesizes external_config.url as http://\u003ctunnel_service_name\u003e\u003ctunnel_path\u003e,\n since the tunnel host is the announced service name and only the admin\n knows the path. Empty defaults to \"/\". Ignored for HOSTED and non-tunneled.",
            "type": "string"
          },
          "tunnelServiceName": {
            "description": "Service name as declared by the appliance via AnnounceServices. Required\n when tunneled == true (for both EXTERNAL and HOSTED). The frontend\n populates this from a dropdown of services the picked appliance has\n announced. At runtime, mcp-gateway uses this name as the wormhole\n port-name argument to DialByName.",
            "type": "string"
          },
          "tunneled": {
            "description": "Whether the MCP server is reached over a tunnel to a private appliance\n instead of a public URL.",
            "type": "boolean"
          },
          "userIds": {
            "description": "Integration owners for the MCP server connector.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Mcp Server Service Register Request",
        "type": "object",
        "x-speakeasy-entity": "MCP Server",
        "x-speakeasy-name-override": "MCPServerServiceRegisterRequest"
      },
      "c1.api.ai_governance.v1.MCPServerServiceRegisterResponse": {
        "description": "MCPServerServiceRegisterResponse returns the newly created MCP server.",
        "properties": {
          "accessProfilesAttached": {
            "description": "Whether the selected system toolset reached every profile in\n the request access profiles. False means the server registered but the attach failed\n afterwards, and the profiles have to be wired from the server page. Always true\n when no request access profiles were supplied, since there was nothing to attach.",
            "type": "boolean"
          },
          "mcpServer": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerView"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Mcp Server Service Register Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPServerServiceRegisterResponse"
      },
      "c1.api.ai_governance.v1.MCPServerServiceResyncToolsRequestInput": {
        "description": "MCPServerServiceResyncToolsRequest re-runs tool discovery for an external MCP\n server using the caller's own credential, or the configured shared credential\n when the caller has MCP management permission for the app.",
        "title": "Mcp Server Service Resync Tools Request",
        "type": "object",
        "x-speakeasy-name-override": "MCPServerServiceResyncToolsRequest"
      },
      "c1.api.ai_governance.v1.MCPServerServiceResyncToolsResponse": {
        "description": "MCPServerServiceResyncToolsResponse is empty on success.",
        "title": "Mcp Server Service Resync Tools Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPServerServiceResyncToolsResponse"
      },
      "c1.api.ai_governance.v1.MCPServerServiceSearchWithToolCountRequestInput": {
        "description": "MCPServerServiceSearchWithToolCountRequest searches MCP servers for an app with\n filters and returns per-server tool counts by state.",
        "properties": {
          "includeLastCalledAt": {
            "description": "When true, the server populates MCPServerView.last_called_at on each\n returned row by querying TSDB for the most recent `mcp_tool_calls`\n raw emit time per (app_id, connector_id). Costs one Dynamo Limit(1)\n read per row; callers that don't render the \"Last used\" value should\n leave false.",
            "type": "boolean"
          },
          "pageSize": {
            "description": "Page size (max 100).",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "Page token for pagination.",
            "type": "string"
          },
          "query": {
            "description": "Optional text query matched against display_name.",
            "type": "string"
          },
          "toolState": {
            "description": "Which tool state to return count for on each server.",
            "enum": [
              "MCP_TOOL_STATE_UNSPECIFIED",
              "MCP_TOOL_STATE_PENDING_REVIEW",
              "MCP_TOOL_STATE_APPROVED",
              "MCP_TOOL_STATE_DISABLED",
              "MCP_TOOL_STATE_REMOVED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Mcp Server Service Search With Tool Count Request",
        "type": "object",
        "x-speakeasy-name-override": "MCPServerServiceSearchWithToolCountRequest"
      },
      "c1.api.ai_governance.v1.MCPServerServiceSearchWithToolCountResponse": {
        "description": "MCPServerServiceSearchWithToolCountResponse returns matching MCP servers with tool counts.",
        "properties": {
          "list": {
            "description": "Matching servers with counts.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerSearchWithToolCountResult"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token for next page.",
            "type": "string"
          }
        },
        "title": "Mcp Server Service Search With Tool Count Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPServerServiceSearchWithToolCountResponse"
      },
      "c1.api.ai_governance.v1.MCPServerServiceTestConnectionRequest": {
        "description": "MCPServerServiceTestConnectionRequest exercises a configured external or\n hosted MCP server against the upstream and reports whether credentials accept\n a real initialize + tools/list round trip.",
        "properties": {
          "appId": {
            "description": "App ID of an existing external MCP connector. When set together with\n connector_id, the request runs in edit mode (see above).",
            "type": "string"
          },
          "connectorId": {
            "description": "Connector ID of an existing external MCP connector. When set together\n with app_id, the request runs in edit mode (see above).",
            "type": "string"
          },
          "externalConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerExternalConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "hostedConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerHostedConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Mcp Server Service Test Connection Request",
        "type": "object",
        "x-speakeasy-name-override": "MCPServerServiceTestConnectionRequest"
      },
      "c1.api.ai_governance.v1.MCPServerServiceTestConnectionResponse": {
        "description": "The MCPServerServiceTestConnectionResponse message.",
        "properties": {
          "credentialVerified": {
            "description": "True when the upstream accepted the supplied credentials. For hosted\n configurations that means the catalog entry's auth_validation_url\n answered an authenticated tools/list. Always false when the configuration\n carries no credential.",
            "type": "boolean"
          },
          "failureReason": {
            "description": "Sanitized, human-readable explanation of why the probe failed, set\n only when reachable=false (e.g. \"MCP server unreachable or rejected\n the credentials (HTTP 401 Unauthorized)\"). Empty when reachable=true.\n Never contains raw upstream response bytes.",
            "type": "string"
          },
          "reachable": {
            "description": "True when a connection test completes successfully: the upstream was\n contacted with the supplied credentials. For hosted configurations that\n is an authenticated MCP tools/list against the catalog entry's\n auth_validation_url.",
            "type": "boolean"
          },
          "toolCount": {
            "description": "Number of tools exposed by the connection test. For external\n configurations, this is the upstream tools/list result. For hosted\n configurations, this is the catalog tool surface. Zero when\n reachable=false. int64 to match MCPServerSearchWithToolCountResult.tool_count.",
            "format": "int64",
            "type": "string"
          }
        },
        "title": "Mcp Server Service Test Connection Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPServerServiceTestConnectionResponse"
      },
      "c1.api.ai_governance.v1.MCPServerServiceUpdateCredentialsRequestInput": {
        "description": "MCPServerServiceUpdateCredentialsRequest updates the auth credentials and config fields\n for an existing MCP server. Secrets are sealed before storage.",
        "properties": {
          "externalConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerExternalConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "hostedConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerHostedConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Mcp Server Service Update Credentials Request",
        "type": "object",
        "x-speakeasy-name-override": "MCPServerServiceUpdateCredentialsRequest"
      },
      "c1.api.ai_governance.v1.MCPServerServiceUpdateCredentialsResponse": {
        "description": "MCPServerServiceUpdateCredentialsResponse returns the updated MCP server.",
        "properties": {
          "mcpServer": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerView"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Mcp Server Service Update Credentials Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPServerServiceUpdateCredentialsResponse"
      },
      "c1.api.ai_governance.v1.MCPServerServiceUpdateRequestInput": {
        "description": "MCPServerServiceUpdateRequest updates an existing MCP server's editable fields.",
        "properties": {
          "mcpServer": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerView"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Mcp Server Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "MCPServerServiceUpdateRequest"
      },
      "c1.api.ai_governance.v1.MCPServerServiceUpdateResponse": {
        "description": "MCPServerServiceUpdateResponse returns the updated MCP server.",
        "properties": {
          "mcpServer": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerView"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Mcp Server Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPServerServiceUpdateResponse"
      },
      "c1.api.ai_governance.v1.MCPServerView": {
        "description": "MCPServerView is the API representation of an MCP server (backed by a Connector).",
        "properties": {
          "appId": {
            "description": "App identifier that owns this MCP server.",
            "type": "string"
          },
          "authMethod": {
            "description": "Authentication method in use. Read-only; derived from stored config.",
            "enum": [
              "MCP_SERVER_AUTH_METHOD_UNSPECIFIED",
              "MCP_SERVER_AUTH_METHOD_NONE",
              "MCP_SERVER_AUTH_METHOD_BEARER_TOKEN",
              "MCP_SERVER_AUTH_METHOD_OAUTH2",
              "MCP_SERVER_AUTH_METHOD_CUSTOM_HEADER",
              "MCP_SERVER_AUTH_METHOD_AWS_SIGV4",
              "MCP_SERVER_AUTH_METHOD_BASIC_AUTH"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "awsAccessKeyId": {
            "description": "AWS SigV4 access key ID (the public half of the credential pair).\n Read-only; derived from stored config. Surfaced so the edit form can\n pre-fill the field on load without exposing the sealed secret.",
            "readOnly": true,
            "type": "string"
          },
          "awsSecretAccessKeyConfigured": {
            "description": "Whether an AWS SigV4 secret access key is configured. Read-only.",
            "readOnly": true,
            "type": "boolean"
          },
          "awsSessionTokenConfigured": {
            "description": "Whether an AWS SigV4 session token is configured (optional, only for\n STS temporary credentials). Read-only.",
            "readOnly": true,
            "type": "boolean"
          },
          "basicAuthPasswordConfigured": {
            "description": "Whether a basic-auth password is configured (admin-supplied for SHARED,\n irrelevant for PER_USER). Read-only; derived from stored config.",
            "readOnly": true,
            "type": "boolean"
          },
          "basicAuthUsername": {
            "description": "The username configured for basic-auth. Read-only.",
            "readOnly": true,
            "type": "string"
          },
          "bearerTokenConfigured": {
            "description": "Whether a bearer-token credential is configured (admin-supplied for\n SHARED, irrelevant for PER_USER). Read-only; derived from stored config.\n Mirrors oauth2_credentials_configured for the bearer-token auth method\n so the edit form can render the password input as \"configured\" without\n exposing the sealed bytes.",
            "readOnly": true,
            "type": "boolean"
          },
          "configFieldValues": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Non-secret configuration field values keyed by catalog config field name.\n Read-only; populated from the stored config. Secret fields are omitted.",
            "readOnly": true,
            "type": "object"
          },
          "connectorId": {
            "description": "Unique identifier (connector ID).",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "credentialsSetupUrl": {
            "description": "Deep link to the server's detail page in the C1 admin UI, where an admin\n enters or rotates credentials in the browser. Lets an agent hand its human\n a clickable link for credential entry so the secret value never transits\n the agent transcript. Empty when the tenant frontend URL can't be resolved.\n Read-only.",
            "readOnly": true,
            "type": "string"
          },
          "customHeaderName": {
            "description": "The HTTP header name configured for custom-header auth. Read-only;\n derived from stored config. Surfaced so the admin edit form can\n pre-fill the field on load — without this, the form shows blank and\n the admin has to retype it on every edit (which loses the value if\n they only meant to flip token_sharing).",
            "readOnly": true,
            "type": "string"
          },
          "customHeaderValueConfigured": {
            "description": "Whether a custom-header value is configured (admin-supplied for SHARED,\n irrelevant for PER_USER). Read-only; derived from stored config.",
            "readOnly": true,
            "type": "boolean"
          },
          "dataSensitivity": {
            "description": "Data sensitivity classification.",
            "enum": [
              "MCP_SERVER_DATA_SENSITIVITY_UNSPECIFIED",
              "MCP_SERVER_DATA_SENSITIVITY_PUBLIC",
              "MCP_SERVER_DATA_SENSITIVITY_INTERNAL",
              "MCP_SERVER_DATA_SENSITIVITY_CONFIDENTIAL",
              "MCP_SERVER_DATA_SENSITIVITY_RESTRICTED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "defaultToolPrefix": {
            "description": "Default tool-name prefix used when tool_prefix is unset (the hosted impl's\n server_prefix / service name); empty for external or legacy servers. Read-only.",
            "readOnly": true,
            "type": "string"
          },
          "description": {
            "description": "Admin-provided description.",
            "type": "string"
          },
          "displayName": {
            "description": "Admin-provided display name.",
            "type": "string"
          },
          "endpointUrl": {
            "description": "Endpoint URL for external MCP servers. Read-only.",
            "readOnly": true,
            "type": "string"
          },
          "endpointUrlLocked": {
            "description": "Whether the endpoint URL is immutable. True once the connector has\n completed its first successful sync; the URL cannot be changed after\n that point. Read-only.",
            "readOnly": true,
            "type": "boolean"
          },
          "lastCalledAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "mcpServerCatalogId": {
            "description": "Opaque catalog entry ID for hosted MCP servers (27-character KSUID).\n Obtain valid IDs from the ListCatalog or GetCatalog RPCs.",
            "type": "string"
          },
          "oauth2AuthorizeUrl": {
            "description": "OAuth2 authorization URL. Read-only; derived from stored config.",
            "readOnly": true,
            "type": "string"
          },
          "oauth2ClientId": {
            "description": "OAuth2 client ID (non-secret). Read-only; derived from stored config.",
            "readOnly": true,
            "type": "string"
          },
          "oauth2ClientIdMode": {
            "description": "How the OAuth2 client_id was acquired (manual / DCR / CIMD). Read-only;\n derived from stored config. Empty for non-authorization_code servers.",
            "enum": [
              "MCP_SERVER_AUTH_OAUTH2_CLIENT_ID_MODE_UNSPECIFIED",
              "MCP_SERVER_AUTH_OAUTH2_CLIENT_ID_MODE_DCR",
              "MCP_SERVER_AUTH_OAUTH2_CLIENT_ID_MODE_CIMD"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "oauth2ClientSecretExpiresAt": {
            "description": "RFC 7591 client_secret expiry (unix seconds; 0 = never). Read-only;\n derived from stored config. Surfaced for display only.",
            "format": "int64",
            "readOnly": true,
            "type": "string"
          },
          "oauth2CodeChallengeMethodsSupported": {
            "description": "PKCE code-challenge methods the IdP advertised at registration.\n Read-only; derived from stored config. Surfaced so the edit form's\n change detection can compare against the saved value rather than an\n implicit empty default — without this, re-running Discover on a\n server with stable methods always reports the field as changed and\n fires a spurious UpdateCredentials.",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "oauth2CredentialsConfigured": {
            "description": "Whether OAuth2 client credentials (client_id + client_secret) are configured. Read-only.",
            "readOnly": true,
            "type": "boolean"
          },
          "oauth2ExtraAuthorizeParams": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Static query params appended to the OAuth2 authorize URL. Read-only on the\n view; the edit form surfaces this as an editable key/value list. Empty for\n non-authorization_code servers.",
            "readOnly": true,
            "type": "object"
          },
          "oauth2ExtraTokenParams": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Extra body params POSTed to the OAuth2 token endpoint. Read-only on the\n view; the edit form takes this value and surfaces it as an editable\n key/value list. Empty for non-OAuth2 / non-client-credentials servers.",
            "readOnly": true,
            "type": "object"
          },
          "oauth2IssuerUrl": {
            "description": "OAuth2 issuer URL. Read-only; derived from stored config. Surfaced so\n the registration UI can prefill the Discover input box on edit.",
            "readOnly": true,
            "type": "string"
          },
          "oauth2JwtAudience": {
            "description": "JWT audience claim. Read-only.",
            "readOnly": true,
            "type": "string"
          },
          "oauth2JwtIssuer": {
            "description": "JWT issuer (service account email). Read-only.",
            "readOnly": true,
            "type": "string"
          },
          "oauth2JwtPrivateKeyConfigured": {
            "description": "Whether a JWT private key is configured. Read-only.",
            "readOnly": true,
            "type": "boolean"
          },
          "oauth2JwtSubject": {
            "description": "JWT subject (domain-wide delegation). Read-only.",
            "readOnly": true,
            "type": "string"
          },
          "oauth2Mode": {
            "description": "OAuth2 mode in use. Read-only; derived from stored config.",
            "enum": [
              "MCP_SERVER_AUTH_OAUTH2_MODE_UNSPECIFIED",
              "MCP_SERVER_AUTH_OAUTH2_MODE_SERVICE",
              "MCP_SERVER_AUTH_OAUTH2_MODE_PASSTHROUGH",
              "MCP_SERVER_AUTH_OAUTH2_MODE_CLIENT_CREDENTIALS",
              "MCP_SERVER_AUTH_OAUTH2_MODE_JWT_BEARER",
              "MCP_SERVER_AUTH_OAUTH2_MODE_GOOGLE_SERVICE_ACCOUNT",
              "MCP_SERVER_AUTH_OAUTH2_MODE_AUTHORIZATION_CODE"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "oauth2Pkce": {
            "description": "PKCE behavior for authorization_code mode: \"discover\" (or empty), \"s256\",\n or \"disabled\". Read-only on the view. Empty for non-authorization_code servers.",
            "readOnly": true,
            "type": "string"
          },
          "oauth2Scopes": {
            "description": "OAuth2 scopes. Read-only; derived from stored config.",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "oauth2ScopesSupported": {
            "description": "OAuth scopes the IdP advertised in its discovery doc at the most\n recent Discover. Read-only; derived from stored config. Surfaced so\n the edit form can populate the Scopes chips-input autocomplete from\n a previously-discovered list without forcing the admin to re-run\n Discover. Distinct from oauth2_scopes (= the requested subset).",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "oauth2ServiceAuthorized": {
            "description": "Whether a service-mode OAuth2 credential exists. Read-only.",
            "readOnly": true,
            "type": "boolean"
          },
          "oauth2ServiceAuthorizedAsEmail": {
            "description": "Email of the external identity authorized (from ID token). Read-only.",
            "readOnly": true,
            "type": "string"
          },
          "oauth2ServiceAuthorizedAsName": {
            "description": "Display name of the external identity authorized (from ID token). Read-only.",
            "readOnly": true,
            "type": "string"
          },
          "oauth2ServiceAuthorizedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "oauth2ServiceAuthorizedBy": {
            "description": "Passport user ID of who authorized the service-mode OAuth2 credential. Read-only.",
            "readOnly": true,
            "type": "string"
          },
          "oauth2TokenEndpointAuthMethod": {
            "description": "RFC 7591 token_endpoint_auth_method the authorization server assigned\n (\"none\" for public PKCE-only clients). Read-only; server-set from the DCR\n result. Empty for manual / non-DCR servers.",
            "readOnly": true,
            "type": "string"
          },
          "oauth2TokenUrl": {
            "description": "OAuth2 token URL. Read-only; derived from stored config.",
            "readOnly": true,
            "type": "string"
          },
          "requireToolApproval": {
            "description": "Per-server override for tool approval on MCP servers without a saved\n registration access level. UNSPECIFIED inherits the tenant setting.",
            "enum": [
              "OPTIONAL_BOOL_UNSPECIFIED",
              "OPTIONAL_BOOL_TRUE",
              "OPTIONAL_BOOL_FALSE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "serverType": {
            "description": "Whether this is a hosted MCP server.",
            "enum": [
              "MCP_SERVER_TYPE_UNSPECIFIED",
              "MCP_SERVER_TYPE_HOSTED",
              "MCP_SERVER_TYPE_EXTERNAL"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "sourceAppId": {
            "description": "Source app ID (hosted servers only).",
            "type": "string"
          },
          "tokenSharing": {
            "description": "Token sharing model in use. Read-only; derived from stored config.\n For rows stored under the legacy SERVICE/PASSTHROUGH OAuth2 modes,\n this is synthesized as SHARED/PER_USER respectively.",
            "enum": [
              "MCP_SERVER_TOKEN_SHARING_UNSPECIFIED",
              "MCP_SERVER_TOKEN_SHARING_SHARED",
              "MCP_SERVER_TOKEN_SHARING_PER_USER"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "toolPrefix": {
            "description": "Admin-configured prefix for tool names in the C1 MCP server.\n Tools are exposed as \"\u003ctool_prefix\u003e_\u003ctool_name\u003e\".\n When empty, the system uses an auto-derived prefix (service name or hostname).",
            "type": "string"
          },
          "transportType": {
            "description": "Transport type for external MCP servers. Read-only.",
            "enum": [
              "MCP_SERVER_TRANSPORT_TYPE_UNSPECIFIED",
              "MCP_SERVER_TRANSPORT_TYPE_STREAMABLE_HTTP",
              "MCP_SERVER_TRANSPORT_TYPE_SSE"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "tunnelApplianceId": {
            "description": "Credential id (cutename) used to route tool calls through the bridge.\n Set only when tunneled == true. Read-only.",
            "readOnly": true,
            "type": "string"
          },
          "tunnelBridgeId": {
            "description": "ID of the bridge (TunnelConnection.id, a KSUID) that proxies this server.\n Set only when tunneled == true. Read-only.",
            "readOnly": true,
            "type": "string"
          },
          "tunnelServiceName": {
            "description": "Bridge-announced service name used to route to this server. Set only\n when tunneled == true. Read-only.",
            "readOnly": true,
            "type": "string"
          },
          "tunneled": {
            "description": "Whether the MCP server is reached over a tunnel to a private bridge\n appliance instead of a public URL. Read-only.",
            "readOnly": true,
            "type": "boolean"
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Mcp Server View",
        "type": "object",
        "x-speakeasy-entity": "MCP Server",
        "x-speakeasy-name-override": "MCPServerView"
      },
      "c1.api.ai_governance.v1.MCPTool": {
        "description": "MCPTool represents metadata about individual tools discovered from an MCP server.",
        "properties": {
          "allowedClientTypes": {
            "description": "Which client types may use this tool.\n Empty = all allowed types from tenant config.",
            "items": {
              "enum": [
                "MCP_CLIENT_TYPE_UNSPECIFIED",
                "MCP_CLIENT_TYPE_PERSONAL",
                "MCP_CLIENT_TYPE_SHARED",
                "MCP_CLIENT_TYPE_SERVICE",
                "MCP_CLIENT_TYPE_EPHEMERAL"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appEntitlementId": {
            "description": "Bound AppEntitlement created during sync.",
            "type": "string"
          },
          "appId": {
            "description": "App identifier (app that owns the connector).",
            "type": "string"
          },
          "classification": {
            "description": "Tool risk classification for policy decisions.",
            "enum": [
              "TOOL_CLASSIFICATION_UNSPECIFIED",
              "TOOL_CLASSIFICATION_READ",
              "TOOL_CLASSIFICATION_WRITE",
              "TOOL_CLASSIFICATION_DESTRUCTIVE",
              "TOOL_CLASSIFICATION_SENSITIVE",
              "TOOL_CLASSIFICATION_DANGEROUS"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "connectorId": {
            "description": "Connector identifier.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "defaultClassification": {
            "description": "Default tool classification from MCP config (system-managed during discovery).",
            "enum": [
              "TOOL_CLASSIFICATION_UNSPECIFIED",
              "TOOL_CLASSIFICATION_READ",
              "TOOL_CLASSIFICATION_WRITE",
              "TOOL_CLASSIFICATION_DESTRUCTIVE",
              "TOOL_CLASSIFICATION_SENSITIVE",
              "TOOL_CLASSIFICATION_DANGEROUS"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "defaultDisplayName": {
            "description": "Default display name from MCP tool spec (title field).",
            "type": "string"
          },
          "defaultVisibility": {
            "description": "System-managed default visibility from MCP config (set during discovery).",
            "enum": [
              "TOOL_VISIBILITY_UNSPECIFIED",
              "TOOL_VISIBILITY_FEATURED",
              "TOOL_VISIBILITY_AVAILABLE",
              "TOOL_VISIBILITY_BYPASSED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "deletedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "Admin-editable description.",
            "type": "string"
          },
          "discoveryHash": {
            "description": "Hash of tool definition for change detection.",
            "type": "string"
          },
          "displayName": {
            "description": "Admin-editable display name (overrides default_display_name when set).",
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for this MCP tool record.",
            "type": "string"
          },
          "inputSchemaJson": {
            "description": "JSON-encoded input schema from MCP discovery.",
            "type": "string"
          },
          "lastCalledAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "requestable": {
            "description": "Whether this tool's backing entitlement is exposed in at least one request\n catalog directly (i.e. can be requested on its own). Computed read-only;\n populated on Search.",
            "readOnly": true,
            "type": "boolean"
          },
          "requestableViaToolset": {
            "description": "Whether this tool is requestable indirectly — it belongs to at least one\n toolset (access profile) whose backing entitlement is exposed in a request\n catalog. Independent of `requestable`. Computed read-only; populated on Search.",
            "readOnly": true,
            "type": "boolean"
          },
          "state": {
            "description": "Tool approval/lifecycle state.",
            "enum": [
              "MCP_TOOL_STATE_UNSPECIFIED",
              "MCP_TOOL_STATE_PENDING_REVIEW",
              "MCP_TOOL_STATE_APPROVED",
              "MCP_TOOL_STATE_DISABLED",
              "MCP_TOOL_STATE_REMOVED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "toolName": {
            "description": "Native MCP tool name (unique within an MCP server).",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "visibility": {
            "description": "Admin-settable visibility override (how this tool is surfaced to users).",
            "enum": [
              "TOOL_VISIBILITY_UNSPECIFIED",
              "TOOL_VISIBILITY_FEATURED",
              "TOOL_VISIBILITY_AVAILABLE",
              "TOOL_VISIBILITY_BYPASSED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Mcp Tool",
        "type": "object",
        "x-speakeasy-name-override": "MCPTool"
      },
      "c1.api.ai_governance.v1.MCPToolHistoryEntry": {
        "description": "MCPToolHistoryEntry is one version of an MCP tool and its history metadata.",
        "properties": {
          "metadata": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.history.v1.HistoryEntryMetadata"
              },
              {
                "type": "null"
              }
            ]
          },
          "snapshot": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPTool"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Mcp Tool History Entry",
        "type": "object",
        "x-speakeasy-name-override": "MCPToolHistoryEntry"
      },
      "c1.api.ai_governance.v1.MCPToolRef": {
        "description": "MCPToolRef is a reference to a specific MCP tool.",
        "properties": {
          "appId": {
            "description": "The application the tool belongs to.",
            "type": "string"
          },
          "connectorId": {
            "description": "The connector the tool was discovered through.",
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for the MCP tool.",
            "type": "string"
          }
        },
        "title": "Mcp Tool Ref",
        "type": "object",
        "x-speakeasy-name-override": "MCPToolRef"
      },
      "c1.api.ai_governance.v1.MCPToolServiceDeleteRequestInput": {
        "description": "MCPToolServiceDeleteRequest deletes an MCP tool (soft delete).",
        "title": "Mcp Tool Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "MCPToolServiceDeleteRequest"
      },
      "c1.api.ai_governance.v1.MCPToolServiceDeleteResponse": {
        "description": "MCPToolServiceDeleteResponse confirms deletion.",
        "title": "Mcp Tool Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPToolServiceDeleteResponse"
      },
      "c1.api.ai_governance.v1.MCPToolServiceGetResponse": {
        "description": "MCPToolServiceGetResponse returns a single MCP tool.",
        "properties": {
          "tool": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPTool"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Mcp Tool Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPToolServiceGetResponse"
      },
      "c1.api.ai_governance.v1.MCPToolServiceListHistoryResponse": {
        "description": "MCPToolServiceListHistoryResponse returns MCP tool history entries.",
        "properties": {
          "list": {
            "description": "The page of history entries, newest first.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPToolHistoryEntry"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Pagination token for the next page, or empty if there are no more results.",
            "type": "string"
          }
        },
        "title": "Mcp Tool Service List History Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPToolServiceListHistoryResponse"
      },
      "c1.api.ai_governance.v1.MCPToolServiceListResponse": {
        "description": "MCPToolServiceListResponse returns a list of MCP tools.",
        "properties": {
          "nextPageToken": {
            "description": "Token for next page.",
            "type": "string"
          },
          "tools": {
            "description": "List of MCP tools.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPTool"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Mcp Tool Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPToolServiceListResponse"
      },
      "c1.api.ai_governance.v1.MCPToolServiceSearchRequestInput": {
        "description": "MCPToolServiceSearchRequest searches MCP tools with filters.",
        "properties": {
          "accessProfileId": {
            "deprecated": true,
            "description": "Deprecated: use access_profile_ids instead.",
            "type": "string"
          },
          "accessProfileIds": {
            "description": "Optional: only return tools that are bound to at least one of these access profiles.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "classificationFilter": {
            "description": "Optional filter by classification. An empty list means no filter.\n Including TOOL_CLASSIFICATION_UNSPECIFIED matches unclassified tools.",
            "items": {
              "enum": [
                "TOOL_CLASSIFICATION_UNSPECIFIED",
                "TOOL_CLASSIFICATION_READ",
                "TOOL_CLASSIFICATION_WRITE",
                "TOOL_CLASSIFICATION_DESTRUCTIVE",
                "TOOL_CLASSIFICATION_SENSITIVE",
                "TOOL_CLASSIFICATION_DANGEROUS"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "excludeAccessProfileId": {
            "deprecated": true,
            "description": "Deprecated: use exclude_access_profile_ids instead.",
            "type": "string"
          },
          "excludeAccessProfileIds": {
            "description": "Optional: exclude tools that are bound to any of these access profiles.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "includeLastCalledAt": {
            "description": "When true, the server populates MCPTool.last_called_at on each\n returned row by querying TSDB for the most recent `mcp_tool_calls`\n raw emit time per tool. Costs one Dynamo Limit(1) read per row;\n callers that don't render the \"Last used\" column should leave false.",
            "type": "boolean"
          },
          "includeRequestable": {
            "description": "When true, populate the computed `requestable` / `requestable_via_toolset`\n fields on each tool (an extra catalog-membership lookup). Off by default so\n callers that don't render requestability — e.g. tool-picker and\n tools-by-toolset views — don't pay for it.",
            "type": "boolean"
          },
          "pageSize": {
            "description": "Page size (max 100).",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "Page token for pagination.",
            "type": "string"
          },
          "query": {
            "description": "Optional text query matched against tool_name and display_name",
            "type": "string"
          },
          "refs": {
            "description": "Optional: filter by specific tool refs (used by websocket notify to re-fetch individual tools).",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPToolRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "sortBy": {
            "description": "Sort order for results. UNSPECIFIED sorts by tool name ascending.",
            "enum": [
              "MCP_TOOL_SORT_BY_UNSPECIFIED",
              "MCP_TOOL_SORT_BY_TOOL_NAME",
              "MCP_TOOL_SORT_BY_VISIBILITY",
              "MCP_TOOL_SORT_BY_CLASSIFICATION",
              "MCP_TOOL_SORT_BY_STATE",
              "MCP_TOOL_SORT_BY_UPDATED_AT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "sortDirection": {
            "description": "Direction for sort_by. UNSPECIFIED means ascending.",
            "enum": [
              "SORT_DIRECTION_UNSPECIFIED",
              "SORT_DIRECTION_ASC",
              "SORT_DIRECTION_DESC"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "stateFilter": {
            "description": "Optional filter by tool state. 0 (UNSPECIFIED) means no filter.",
            "items": {
              "enum": [
                "MCP_TOOL_STATE_UNSPECIFIED",
                "MCP_TOOL_STATE_PENDING_REVIEW",
                "MCP_TOOL_STATE_APPROVED",
                "MCP_TOOL_STATE_DISABLED",
                "MCP_TOOL_STATE_REMOVED"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "visibilityFilter": {
            "description": "Optional filter by visibility. 0 (UNSPECIFIED) means no filter.",
            "items": {
              "enum": [
                "TOOL_VISIBILITY_UNSPECIFIED",
                "TOOL_VISIBILITY_FEATURED",
                "TOOL_VISIBILITY_AVAILABLE",
                "TOOL_VISIBILITY_BYPASSED"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Mcp Tool Service Search Request",
        "type": "object",
        "x-speakeasy-name-override": "MCPToolServiceSearchRequest"
      },
      "c1.api.ai_governance.v1.MCPToolServiceSearchResponse": {
        "description": "MCPToolServiceSearchResponse returns matching MCP tools.",
        "properties": {
          "list": {
            "description": "Matching MCP tools.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPTool"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token for next page.",
            "type": "string"
          }
        },
        "title": "Mcp Tool Service Search Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPToolServiceSearchResponse"
      },
      "c1.api.ai_governance.v1.MCPToolServiceUpdateRequestInput": {
        "description": "MCPToolServiceUpdateRequest updates an existing MCP tool.",
        "properties": {
          "tool": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPTool"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Mcp Tool Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "MCPToolServiceUpdateRequest"
      },
      "c1.api.ai_governance.v1.MCPToolServiceUpdateResponse": {
        "description": "MCPToolServiceUpdateResponse returns the updated MCP tool.",
        "properties": {
          "tool": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPTool"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Mcp Tool Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "MCPToolServiceUpdateResponse"
      },
      "c1.api.ai_governance.v1.MyVirtualMCPServer": {
        "description": "MyVirtualMCPServer is a non-administrative view of a live Virtual MCP\n Server the caller's own principal is authorized to connect to.",
        "properties": {
          "displayName": {
            "description": "Human-readable server name.",
            "type": "string"
          },
          "id": {
            "description": "Immutable unique identifier for this Virtual MCP Server.",
            "type": "string"
          },
          "presentation": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPPresentation"
              },
              {
                "type": "null"
              }
            ]
          },
          "requireDeviceTrust": {
            "description": "Whether every request also requires an active ConductorOne-managed device.",
            "type": "boolean"
          },
          "requireDpop": {
            "description": "Whether every request requires a proof-bound DPoP access token.",
            "type": "boolean"
          },
          "slug": {
            "description": "Current canonical lowercase route segment. Renaming preserves the previous\n slug as a deprecated alias until it is reused.",
            "type": "string"
          },
          "url": {
            "description": "Exact MCP-host URL an agent connects to.",
            "type": "string"
          }
        },
        "title": "My Virtual Mcp Server",
        "type": "object",
        "x-speakeasy-name-override": "MyVirtualMCPServer"
      },
      "c1.api.ai_governance.v1.RequestableConnector": {
        "description": "RequestableConnector identifies a connector that has requestable MCP access profiles.",
        "properties": {
          "appId": {
            "description": "App identifier.",
            "type": "string"
          },
          "connectorId": {
            "description": "Connector identifier.",
            "type": "string"
          }
        },
        "title": "Requestable Connector",
        "type": "object",
        "x-speakeasy-name-override": "RequestableConnector"
      },
      "c1.api.ai_governance.v1.RequestableConnectorView": {
        "description": "RequestableConnectorView is a card-ready MCP connector entry.",
        "properties": {
          "appId": {
            "description": "App identifier.",
            "type": "string"
          },
          "connectorId": {
            "description": "Connector identifier.",
            "type": "string"
          },
          "description": {
            "description": "Connector description.",
            "type": "string"
          },
          "displayName": {
            "description": "Connector display name (falls back to the owning app's display name).",
            "type": "string"
          },
          "granted": {
            "description": "True when the user actively holds a grant on at least one of this\n connector's MCP entitlements.",
            "type": "boolean"
          },
          "toolCount": {
            "description": "Count of ALL approved tools bound under this connector (connector-wide),\n NOT scoped to the tools this user can request. 0 when unknown.",
            "format": "int32",
            "type": "integer"
          }
        },
        "title": "Requestable Connector View",
        "type": "object",
        "x-speakeasy-name-override": "RequestableConnectorView"
      },
      "c1.api.ai_governance.v1.TemplateParam": {
        "description": "TemplateParam declares a value supplied at instantiation. The UI renders one\n form field per param.",
        "properties": {
          "description": {
            "description": "The description field.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "key": {
            "description": "The key field.",
            "type": "string"
          },
          "required": {
            "description": "The required field.",
            "type": "boolean"
          },
          "type": {
            "description": "The type field.",
            "enum": [
              "TEMPLATE_PARAM_TYPE_UNSPECIFIED",
              "TEMPLATE_PARAM_TYPE_GRANT_POLICY",
              "TEMPLATE_PARAM_TYPE_HOOK_FUNCTION",
              "TEMPLATE_PARAM_TYPE_STRING"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Template Param",
        "type": "object",
        "x-speakeasy-name-override": "TemplateParam"
      },
      "c1.api.ai_governance.v1.TemplateRef": {
        "description": "TemplateRef links an instantiated guardrail to the template it was stamped\n from, for an optional \"update available\" affordance.",
        "properties": {
          "templateId": {
            "description": "The templateId field.",
            "type": "string"
          },
          "version": {
            "description": "The version field.",
            "type": "string"
          }
        },
        "title": "Template Ref",
        "type": "object",
        "x-speakeasy-name-override": "TemplateRef"
      },
      "c1.api.ai_governance.v1.ToolGate": {
        "description": "The ToolGate message.",
        "properties": {
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "The description field.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "enabled": {
            "description": "The enabled field.",
            "type": "boolean"
          },
          "filter": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.ToolGateFilter"
              },
              {
                "type": "null"
              }
            ]
          },
          "grantPolicyId": {
            "description": "The grantPolicyId field.",
            "type": "string"
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "managedByGuardrails": {
            "description": "The managedByGuardrails field.",
            "type": "boolean"
          },
          "priority": {
            "description": "The priority field.",
            "format": "int32",
            "type": "integer"
          },
          "tenantId": {
            "description": "The tenantId field.",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Tool Gate",
        "type": "object",
        "x-speakeasy-name-override": "ToolGate"
      },
      "c1.api.ai_governance.v1.ToolGateFilter": {
        "description": "The ToolGateFilter message.",
        "properties": {
          "builtInPattern": {
            "description": "Built-in pattern selector: a named canned CEL filter maintained by\n ConductorOne. When set, cel_expression must be empty and is resolved from\n the registry at create time; the kind is retained for provenance.",
            "enum": [
              "TOOL_GATE_BUILT_IN_PATTERN_UNSPECIFIED",
              "TOOL_GATE_BUILT_IN_PATTERN_DESTRUCTIVE_ACTION",
              "TOOL_GATE_BUILT_IN_PATTERN_EXTERNAL_SEND",
              "TOOL_GATE_BUILT_IN_PATTERN_THIRD_PARTY_CONNECTOR",
              "TOOL_GATE_BUILT_IN_PATTERN_FINANCE_ACTION",
              "TOOL_GATE_BUILT_IN_PATTERN_INFRA_MUTATION",
              "TOOL_GATE_BUILT_IN_PATTERN_DB_WRITE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "celExpression": {
            "description": "The celExpression field.",
            "type": "string"
          }
        },
        "title": "Tool Gate Filter",
        "type": "object",
        "x-speakeasy-name-override": "ToolGateFilter"
      },
      "c1.api.ai_governance.v1.ToolGateSpec": {
        "description": "ToolGateSpec is the instantiable body of a tool gate inside a template.",
        "properties": {
          "builtInPattern": {
            "description": "Built-in pattern selector; when set, cel_expression is resolved from the\n registry at instantiation.",
            "enum": [
              "TOOL_GATE_BUILT_IN_PATTERN_UNSPECIFIED",
              "TOOL_GATE_BUILT_IN_PATTERN_DESTRUCTIVE_ACTION",
              "TOOL_GATE_BUILT_IN_PATTERN_EXTERNAL_SEND",
              "TOOL_GATE_BUILT_IN_PATTERN_THIRD_PARTY_CONNECTOR",
              "TOOL_GATE_BUILT_IN_PATTERN_FINANCE_ACTION",
              "TOOL_GATE_BUILT_IN_PATTERN_INFRA_MUTATION",
              "TOOL_GATE_BUILT_IN_PATTERN_DB_WRITE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "celExpression": {
            "description": "The celExpression field.",
            "type": "string"
          },
          "description": {
            "description": "The description field.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "enabled": {
            "description": "The enabled field.",
            "type": "boolean"
          },
          "grantPolicyParamKey": {
            "description": "The grantPolicyParamKey field.",
            "type": "string"
          },
          "key": {
            "description": "The key field.",
            "type": "string"
          },
          "priority": {
            "description": "The priority field.",
            "format": "int32",
            "type": "integer"
          }
        },
        "title": "Tool Gate Spec",
        "type": "object",
        "x-speakeasy-name-override": "ToolGateSpec"
      },
      "c1.api.ai_governance.v1.ToolGatesSearchRequest": {
        "description": "The ToolGatesSearchRequest message.",
        "properties": {
          "pageSize": {
            "description": "The pageSize field.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          },
          "query": {
            "description": "The query field.",
            "type": "string"
          }
        },
        "title": "Tool Gates Search Request",
        "type": "object",
        "x-speakeasy-name-override": "ToolGatesSearchRequest"
      },
      "c1.api.ai_governance.v1.ToolGatesSearchResponse": {
        "description": "The ToolGatesSearchResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.ToolGate"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Tool Gates Search Response",
        "type": "object",
        "x-speakeasy-name-override": "ToolGatesSearchResponse"
      },
      "c1.api.ai_governance.v1.ToolGatesServiceCreateRequest": {
        "description": "The ToolGatesServiceCreateRequest message.",
        "properties": {
          "description": {
            "description": "The description field.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "enabled": {
            "description": "The enabled field.",
            "type": "boolean"
          },
          "filter": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.ToolGateFilter"
              },
              {
                "type": "null"
              }
            ]
          },
          "grantPolicyId": {
            "description": "The grantPolicyId field.",
            "type": "string"
          },
          "managedByGuardrails": {
            "description": "The managedByGuardrails field.",
            "type": "boolean"
          },
          "priority": {
            "description": "The priority field.",
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "displayName",
          "grantPolicyId"
        ],
        "title": "Tool Gates Service Create Request",
        "type": "object",
        "x-speakeasy-name-override": "ToolGatesServiceCreateRequest"
      },
      "c1.api.ai_governance.v1.ToolGatesServiceCreateResponse": {
        "description": "The ToolGatesServiceCreateResponse message.",
        "properties": {
          "toolGate": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.ToolGate"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Tool Gates Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "ToolGatesServiceCreateResponse"
      },
      "c1.api.ai_governance.v1.ToolGatesServiceDeleteRequestInput": {
        "description": "The ToolGatesServiceDeleteRequest message.",
        "title": "Tool Gates Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "ToolGatesServiceDeleteRequest"
      },
      "c1.api.ai_governance.v1.ToolGatesServiceDeleteResponse": {
        "description": "The ToolGatesServiceDeleteResponse message.",
        "title": "Tool Gates Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "ToolGatesServiceDeleteResponse"
      },
      "c1.api.ai_governance.v1.ToolGatesServiceGetResponse": {
        "description": "The ToolGatesServiceGetResponse message.",
        "properties": {
          "toolGate": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.ToolGate"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Tool Gates Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "ToolGatesServiceGetResponse"
      },
      "c1.api.ai_governance.v1.ToolGatesServiceListResponse": {
        "description": "The ToolGatesServiceListResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.ToolGate"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Tool Gates Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "ToolGatesServiceListResponse"
      },
      "c1.api.ai_governance.v1.ToolGatesServiceUpdateRequestInput": {
        "description": "The ToolGatesServiceUpdateRequest message.",
        "properties": {
          "toolGate": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.ToolGate"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "toolGate",
          "updateMask"
        ],
        "title": "Tool Gates Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "ToolGatesServiceUpdateRequest"
      },
      "c1.api.ai_governance.v1.ToolGatesServiceUpdateResponse": {
        "description": "The ToolGatesServiceUpdateResponse message.",
        "properties": {
          "toolGate": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.ToolGate"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Tool Gates Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "ToolGatesServiceUpdateResponse"
      },
      "c1.api.ai_governance.v1.UpdateAIGovernanceSettingsRequest": {
        "description": "UpdateAIGovernanceSettingsRequest is the request to update the tenant's AI\n governance settings.",
        "properties": {
          "aiGovernanceSettings": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.AIGovernanceSettings"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Update Ai Governance Settings Request",
        "type": "object",
        "x-speakeasy-name-override": "UpdateAIGovernanceSettingsRequest"
      },
      "c1.api.ai_governance.v1.UpdateAIGovernanceSettingsResponse": {
        "description": "UpdateAIGovernanceSettingsResponse contains the updated AI governance settings.",
        "properties": {
          "aiGovernanceSettings": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.AIGovernanceSettings"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Update Ai Governance Settings Response",
        "type": "object",
        "x-speakeasy-name-override": "UpdateAIGovernanceSettingsResponse"
      },
      "c1.api.ai_governance.v1.UpdateAgentClassifierPolicyRequest": {
        "description": "The UpdateAgentClassifierPolicyRequest message.",
        "properties": {
          "policy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.AgentClassifierPolicy"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "policy",
          "updateMask"
        ],
        "title": "Update Agent Classifier Policy Request",
        "type": "object",
        "x-speakeasy-name-override": "UpdateAgentClassifierPolicyRequest"
      },
      "c1.api.ai_governance.v1.UpdateAgentClassifierPolicyResponse": {
        "description": "The UpdateAgentClassifierPolicyResponse message.",
        "properties": {
          "policy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.AgentClassifierPolicy"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Update Agent Classifier Policy Response",
        "type": "object",
        "x-speakeasy-name-override": "UpdateAgentClassifierPolicyResponse"
      },
      "c1.api.ai_governance.v1.UpdateClassifierRequestInput": {
        "description": "The UpdateClassifierRequest message.",
        "properties": {
          "classifier": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.Classifier"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "classifier"
        ],
        "title": "Update Classifier Request",
        "type": "object",
        "x-speakeasy-name-override": "UpdateClassifierRequest"
      },
      "c1.api.ai_governance.v1.UpdateClassifierResponse": {
        "description": "The UpdateClassifierResponse message.",
        "properties": {
          "classifier": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.Classifier"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Update Classifier Response",
        "type": "object",
        "x-speakeasy-name-override": "UpdateClassifierResponse"
      },
      "c1.api.ai_governance.v1.VirtualMCPAssignedTools": {
        "description": "VirtualMCPAssignedTools marks a Virtual MCP Server composed from selected\n Toolsets and individual tools.",
        "title": "Virtual Mcp Assigned Tools",
        "type": "object",
        "x-speakeasy-name-override": "VirtualMCPAssignedTools"
      },
      "c1.api.ai_governance.v1.VirtualMCPCodeModePresentation": {
        "description": "VirtualMCPCodeModePresentation configures code-execution presentation.",
        "title": "Virtual Mcp Code Mode Presentation",
        "type": "object",
        "x-speakeasy-name-override": "VirtualMCPCodeModePresentation"
      },
      "c1.api.ai_governance.v1.VirtualMCPDynamicToolsPresentation": {
        "description": "VirtualMCPDynamicToolsPresentation configures a session-specific tool registry.",
        "title": "Virtual Mcp Dynamic Tools Presentation",
        "type": "object",
        "x-speakeasy-name-override": "VirtualMCPDynamicToolsPresentation"
      },
      "c1.api.ai_governance.v1.VirtualMCPMappedSource": {
        "description": "VirtualMCPMappedSource identifies one app-scoped MCP source.",
        "properties": {
          "appId": {
            "description": "Application that owns the MCP source.",
            "type": "string"
          },
          "connectorId": {
            "description": "Connector that provides the MCP source within the application.",
            "type": "string"
          }
        },
        "title": "Virtual Mcp Mapped Source",
        "type": "object",
        "x-speakeasy-name-override": "VirtualMCPMappedSource"
      },
      "c1.api.ai_governance.v1.VirtualMCPPresentation": {
        "description": "VirtualMCPPresentation selects one presentation mode and provides a stable\n location for mode-specific settings.\n\nThis message contains a oneof named mode. Only a single field of the following list may be set at a time:\n  - rawTools\n  - codeMode\n  - dynamicTools\n",
        "properties": {
          "codeMode": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPCodeModePresentation"
              },
              {
                "type": "null"
              }
            ]
          },
          "dynamicTools": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPDynamicToolsPresentation"
              },
              {
                "type": "null"
              }
            ]
          },
          "rawTools": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPRawToolsPresentation"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Virtual Mcp Presentation",
        "type": "object",
        "x-speakeasy-name-override": "VirtualMCPPresentation"
      },
      "c1.api.ai_governance.v1.VirtualMCPRawToolsPresentation": {
        "description": "VirtualMCPRawToolsPresentation configures direct tool presentation.",
        "title": "Virtual Mcp Raw Tools Presentation",
        "type": "object",
        "x-speakeasy-name-override": "VirtualMCPRawToolsPresentation"
      },
      "c1.api.ai_governance.v1.VirtualMCPServer": {
        "description": "VirtualMCPServer is a tenant-managed MCP endpoint backed by one composition.\n\nThis message contains a oneof named composition. Only a single field of the following list may be set at a time:\n  - mappedSource\n  - assignedTools\n",
        "properties": {
          "allowPersonalSources": {
            "description": "Permit owner-scoped personal MCP sources on supported compositions.",
            "type": "boolean"
          },
          "assignedTools": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPAssignedTools"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "displayName": {
            "description": "Human-readable name shown to administrators and users.",
            "type": "string"
          },
          "id": {
            "description": "Immutable unique identifier for this Virtual MCP Server.",
            "type": "string"
          },
          "mappedSource": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPMappedSource"
              },
              {
                "type": "null"
              }
            ]
          },
          "presentation": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPPresentation"
              },
              {
                "type": "null"
              }
            ]
          },
          "requireDeviceTrust": {
            "description": "When true, require an active ConductorOne-managed device in addition to\n DPoP. require_device_trust=true requires require_dpop=true.",
            "type": "boolean"
          },
          "requireDpop": {
            "description": "When true, require DPoP proof-of-possession for OAuth access tokens.",
            "type": "boolean"
          },
          "slug": {
            "description": "Current canonical lowercase route segment, unique for the tenant. Renaming\n preserves the previous slug as a deprecated alias until it is reused.",
            "type": "string"
          },
          "state": {
            "description": "Current lifecycle state.",
            "enum": [
              "VIRTUAL_MCP_SERVER_STATE_UNSPECIFIED",
              "VIRTUAL_MCP_SERVER_STATE_ACTIVE",
              "VIRTUAL_MCP_SERVER_STATE_DISABLED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "useEntitlementId": {
            "description": "Identifier of the governed `use` entitlement for this server. This is the\n same immutable identifier as id and is returned for access-profile setup.",
            "type": "string"
          }
        },
        "title": "Virtual Mcp Server",
        "type": "object",
        "x-speakeasy-name-override": "VirtualMCPServer"
      },
      "c1.api.ai_governance.v1.VirtualMCPServerMySearchServiceSearchRequest": {
        "description": "VirtualMCPServerMySearchServiceSearchRequest searches Virtual MCP Servers\n the caller's own principal has a live `use` grant for. Only user principals\n may call this API.",
        "properties": {
          "pageSize": {
            "description": "Maximum number of matching servers to return. The maximum is 100.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "Opaque token that continues the PostgreSQL-backed search.",
            "type": "string"
          }
        },
        "title": "Virtual Mcp Server My Search Service Search Request",
        "type": "object",
        "x-speakeasy-name-override": "VirtualMCPServerMySearchServiceSearchRequest"
      },
      "c1.api.ai_governance.v1.VirtualMCPServerMySearchServiceSearchResponse": {
        "description": "VirtualMCPServerMySearchServiceSearchResponse contains one page of the\n caller's currently available Virtual MCP Servers.",
        "properties": {
          "list": {
            "description": "Available Virtual MCP Servers in this page.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.MyVirtualMCPServer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Opaque token that continues the PostgreSQL-backed search.",
            "type": "string"
          }
        },
        "title": "Virtual Mcp Server My Search Service Search Response",
        "type": "object",
        "x-speakeasy-name-override": "VirtualMCPServerMySearchServiceSearchResponse"
      },
      "c1.api.ai_governance.v1.VirtualMCPServerServiceCreateRequest": {
        "description": "VirtualMCPServerServiceCreateRequest creates an active Virtual MCP Server\n with Raw tool presentation and either a mapped source or explicit tool\n assignments.\n\nThis message contains a oneof named composition. Only a single field of the following list may be set at a time:\n  - mappedSource\n  - assignedTools\n",
        "properties": {
          "allowPersonalSources": {
            "description": "Permit owner-scoped personal MCP sources on supported compositions.",
            "type": "boolean"
          },
          "assignedTools": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPAssignedTools"
              },
              {
                "type": "null"
              }
            ]
          },
          "displayName": {
            "description": "Human-readable name shown to administrators and users.",
            "type": "string"
          },
          "mappedSource": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPMappedSource"
              },
              {
                "type": "null"
              }
            ]
          },
          "presentation": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPPresentation"
              },
              {
                "type": "null"
              }
            ]
          },
          "requireDeviceTrust": {
            "description": "When true, require an active ConductorOne-managed device in addition to\n DPoP. require_device_trust=true requires require_dpop=true.",
            "type": "boolean"
          },
          "requireDpop": {
            "description": "When true, require DPoP proof-of-possession for OAuth access tokens.",
            "type": "boolean"
          },
          "slug": {
            "description": "Initial canonical lowercase route segment, unique for the tenant.",
            "type": "string"
          }
        },
        "title": "Virtual Mcp Server Service Create Request",
        "type": "object",
        "x-speakeasy-name-override": "VirtualMCPServerServiceCreateRequest"
      },
      "c1.api.ai_governance.v1.VirtualMCPServerServiceCreateResponse": {
        "description": "VirtualMCPServerServiceCreateResponse contains the created Virtual MCP Server.",
        "properties": {
          "virtualMcpServer": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPServer"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Virtual Mcp Server Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "VirtualMCPServerServiceCreateResponse"
      },
      "c1.api.ai_governance.v1.VirtualMCPServerServiceDeleteRequestInput": {
        "description": "VirtualMCPServerServiceDeleteRequest deletes one Virtual MCP Server by ID.",
        "title": "Virtual Mcp Server Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "VirtualMCPServerServiceDeleteRequest"
      },
      "c1.api.ai_governance.v1.VirtualMCPServerServiceDeleteResponse": {
        "description": "VirtualMCPServerServiceDeleteResponse confirms deletion.",
        "title": "Virtual Mcp Server Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "VirtualMCPServerServiceDeleteResponse"
      },
      "c1.api.ai_governance.v1.VirtualMCPServerServiceGetResponse": {
        "description": "VirtualMCPServerServiceGetResponse contains the requested Virtual MCP Server.",
        "properties": {
          "virtualMcpServer": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPServer"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Virtual Mcp Server Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "VirtualMCPServerServiceGetResponse"
      },
      "c1.api.ai_governance.v1.VirtualMCPServerServiceListResponse": {
        "description": "VirtualMCPServerServiceListResponse contains one page of Virtual MCP Servers.",
        "properties": {
          "list": {
            "description": "Virtual MCP Servers in this page.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPServer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token to retrieve the next page. Empty when there are no more results.",
            "type": "string"
          }
        },
        "title": "Virtual Mcp Server Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "VirtualMCPServerServiceListResponse"
      },
      "c1.api.ai_governance.v1.VirtualMCPServerServiceUpdateRequestInput": {
        "description": "VirtualMCPServerServiceUpdateRequest updates mutable Virtual MCP Server fields.",
        "properties": {
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          },
          "virtualMcpServer": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPServer"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Virtual Mcp Server Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "VirtualMCPServerServiceUpdateRequest"
      },
      "c1.api.ai_governance.v1.VirtualMCPServerServiceUpdateResponse": {
        "description": "VirtualMCPServerServiceUpdateResponse contains the updated Virtual MCP Server.",
        "properties": {
          "virtualMcpServer": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPServer"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Virtual Mcp Server Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "VirtualMCPServerServiceUpdateResponse"
      },
      "c1.api.ai_governance.v1.VirtualMCPToolBinding": {
        "description": "VirtualMCPToolBinding represents one individual tool assigned to a Virtual MCP Server.",
        "properties": {
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "mcpTool": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPToolRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "virtualMcpServerId": {
            "description": "Immutable identifier of the Virtual MCP Server.",
            "type": "string"
          }
        },
        "title": "Virtual Mcp Tool Binding",
        "type": "object",
        "x-speakeasy-name-override": "VirtualMCPToolBinding"
      },
      "c1.api.ai_governance.v1.VirtualMCPToolBindingServiceCreateBindingsRequestInput": {
        "description": "VirtualMCPToolBindingServiceCreateBindingsRequest assigns individual tools to one Virtual MCP Server.",
        "properties": {
          "mcpTools": {
            "description": "Complete MCP tool references to assign. Duplicate tuples are ignored.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPToolRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Virtual Mcp Tool Binding Service Create Bindings Request",
        "type": "object",
        "x-speakeasy-name-override": "VirtualMCPToolBindingServiceCreateBindingsRequest"
      },
      "c1.api.ai_governance.v1.VirtualMCPToolBindingServiceCreateBindingsResponse": {
        "description": "VirtualMCPToolBindingServiceCreateBindingsResponse contains the resulting assignments.",
        "properties": {
          "bindings": {
            "description": "Created, existing, or restored individual tool assignments.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPToolBinding"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Virtual Mcp Tool Binding Service Create Bindings Response",
        "type": "object",
        "x-speakeasy-name-override": "VirtualMCPToolBindingServiceCreateBindingsResponse"
      },
      "c1.api.ai_governance.v1.VirtualMCPToolBindingServiceDeleteBindingsRequestInput": {
        "description": "VirtualMCPToolBindingServiceDeleteBindingsRequest removes individual tools from one Virtual MCP Server.",
        "properties": {
          "mcpTools": {
            "description": "Complete MCP tool references to unassign. Duplicate tuples are ignored.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPToolRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Virtual Mcp Tool Binding Service Delete Bindings Request",
        "type": "object",
        "x-speakeasy-name-override": "VirtualMCPToolBindingServiceDeleteBindingsRequest"
      },
      "c1.api.ai_governance.v1.VirtualMCPToolBindingServiceDeleteBindingsResponse": {
        "description": "VirtualMCPToolBindingServiceDeleteBindingsResponse confirms the assignments were deleted.",
        "title": "Virtual Mcp Tool Binding Service Delete Bindings Response",
        "type": "object",
        "x-speakeasy-name-override": "VirtualMCPToolBindingServiceDeleteBindingsResponse"
      },
      "c1.api.ai_governance.v1.VirtualMCPToolBindingServiceListResponse": {
        "description": "VirtualMCPToolBindingServiceListResponse contains one page of tool assignments.",
        "properties": {
          "bindings": {
            "description": "Individual tool assignments on the Virtual MCP Server.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPToolBinding"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token to retrieve the next page. Empty when there are no more results.",
            "type": "string"
          }
        },
        "title": "Virtual Mcp Tool Binding Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "VirtualMCPToolBindingServiceListResponse"
      },
      "c1.api.ai_governance.v1.VirtualMCPToolsetBinding": {
        "description": "VirtualMCPToolsetBinding represents one Toolset assigned to a Virtual MCP Server.",
        "properties": {
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "mcpAccessProfile": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfileRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "virtualMcpServerId": {
            "description": "Immutable identifier of the Virtual MCP Server.",
            "type": "string"
          }
        },
        "title": "Virtual Mcp Toolset Binding",
        "type": "object",
        "x-speakeasy-name-override": "VirtualMCPToolsetBinding"
      },
      "c1.api.ai_governance.v1.VirtualMCPToolsetBindingServiceCreateBindingsRequestInput": {
        "description": "VirtualMCPToolsetBindingServiceCreateBindingsRequest assigns Toolsets to one Virtual MCP Server.",
        "properties": {
          "mcpAccessProfiles": {
            "description": "Complete Toolset references to assign. Duplicate tuples are ignored.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfileRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Virtual Mcp Toolset Binding Service Create Bindings Request",
        "type": "object",
        "x-speakeasy-name-override": "VirtualMCPToolsetBindingServiceCreateBindingsRequest"
      },
      "c1.api.ai_governance.v1.VirtualMCPToolsetBindingServiceCreateBindingsResponse": {
        "description": "VirtualMCPToolsetBindingServiceCreateBindingsResponse contains the resulting assignments.",
        "properties": {
          "bindings": {
            "description": "Created, existing, or restored Toolset assignments.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPToolsetBinding"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Virtual Mcp Toolset Binding Service Create Bindings Response",
        "type": "object",
        "x-speakeasy-name-override": "VirtualMCPToolsetBindingServiceCreateBindingsResponse"
      },
      "c1.api.ai_governance.v1.VirtualMCPToolsetBindingServiceDeleteBindingsRequestInput": {
        "description": "VirtualMCPToolsetBindingServiceDeleteBindingsRequest removes Toolsets from one Virtual MCP Server.",
        "properties": {
          "mcpAccessProfiles": {
            "description": "Complete Toolset references to unassign. Duplicate tuples are ignored.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfileRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Virtual Mcp Toolset Binding Service Delete Bindings Request",
        "type": "object",
        "x-speakeasy-name-override": "VirtualMCPToolsetBindingServiceDeleteBindingsRequest"
      },
      "c1.api.ai_governance.v1.VirtualMCPToolsetBindingServiceDeleteBindingsResponse": {
        "description": "VirtualMCPToolsetBindingServiceDeleteBindingsResponse confirms the assignments were deleted.",
        "title": "Virtual Mcp Toolset Binding Service Delete Bindings Response",
        "type": "object",
        "x-speakeasy-name-override": "VirtualMCPToolsetBindingServiceDeleteBindingsResponse"
      },
      "c1.api.ai_governance.v1.VirtualMCPToolsetBindingServiceListResponse": {
        "description": "VirtualMCPToolsetBindingServiceListResponse contains one page of Toolset assignments.",
        "properties": {
          "bindings": {
            "description": "Toolset assignments on the Virtual MCP Server.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPToolsetBinding"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token to retrieve the next page. Empty when there are no more results.",
            "type": "string"
          }
        },
        "title": "Virtual Mcp Toolset Binding Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "VirtualMCPToolsetBindingServiceListResponse"
      },
      "c1.api.api_key.v1.APIKey": {
        "description": "APIKey is one API key search result: a personal client or a service principal key.\n\nThis message contains a oneof named key. Only a single field of the following list may be set at a time:\n  - personalClient\n  - servicePrincipalKey\n",
        "properties": {
          "personalClient": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.iam.v1.PersonalClient"
              },
              {
                "type": "null"
              }
            ]
          },
          "servicePrincipalKey": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.api_key.v1.ServicePrincipalAPIKey"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Api Key",
        "type": "object",
        "x-speakeasy-name-override": "APIKey"
      },
      "c1.api.api_key.v1.APIKeySearchServiceSearchRequest": {
        "description": "The APIKeySearchServiceSearchRequest message.",
        "properties": {
          "pageSize": {
            "description": "The maximum number of results to return per page.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "A pagination token returned from a previous Search call.",
            "type": "string"
          },
          "query": {
            "description": "A text query to filter API keys by display name.",
            "type": "string"
          },
          "types": {
            "description": "The key types to return. When empty, both types are returned.",
            "items": {
              "enum": [
                "API_KEY_TYPE_UNSPECIFIED",
                "API_KEY_TYPE_PERSONAL",
                "API_KEY_TYPE_SERVICE_PRINCIPAL"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Api Key Search Service Search Request",
        "type": "object",
        "x-speakeasy-name-override": "APIKeySearchServiceSearchRequest"
      },
      "c1.api.api_key.v1.APIKeySearchServiceSearchResponse": {
        "description": "The APIKeySearchServiceSearchResponse message.",
        "properties": {
          "list": {
            "description": "The list of API keys matching the search criteria.",
            "items": {
              "$ref": "#/components/schemas/c1.api.api_key.v1.APIKey"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "A token to retrieve the next page of results, or empty if there are no more results.",
            "type": "string"
          }
        },
        "title": "Api Key Search Service Search Response",
        "type": "object",
        "x-speakeasy-name-override": "APIKeySearchServiceSearchResponse"
      },
      "c1.api.api_key.v1.ServicePrincipalAPIKey": {
        "description": "ServicePrincipalAPIKey is a service principal credential with the caller's permissions on its service principal.",
        "properties": {
          "credential": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipalCredential"
              },
              {
                "type": "null"
              }
            ]
          },
          "objectPermissions": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.authorization.v1.ActorObjectPermissions"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Service Principal Api Key",
        "type": "object",
        "x-speakeasy-name-override": "ServicePrincipalAPIKey"
      },
      "c1.api.app.v1.AddAppEntitlementOwnerRequestInput": {
        "description": "The request message for adding an app entitlement owner.",
        "properties": {
          "userId": {
            "description": "The user_id field for the user to add as an owner of the app entitlement.",
            "type": "string"
          }
        },
        "title": "Add App Entitlement Owner Request",
        "type": "object",
        "x-speakeasy-name-override": "AddAppEntitlementOwnerRequest"
      },
      "c1.api.app.v1.AddAppEntitlementOwnerResponse": {
        "description": "The empty response message for adding an app entitlement owner.",
        "title": "Add App Entitlement Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "AddAppEntitlementOwnerResponse"
      },
      "c1.api.app.v1.AddAppOwnerRequestInput": {
        "description": "Empty request body. Just placeholder for the add app owner request which uses URL values for input.",
        "title": "Add App Owner Request",
        "type": "object",
        "x-speakeasy-name-override": "AddAppOwnerRequest"
      },
      "c1.api.app.v1.AddAppOwnerResponse": {
        "description": "Empty response with a status code indicating success",
        "title": "Add App Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "AddAppOwnerResponse"
      },
      "c1.api.app.v1.AddAppResourceOwnerRequestInput": {
        "description": "The request message for adding an owner to an app resource.",
        "properties": {
          "userId": {
            "description": "The C1 user ID to add as an owner.",
            "type": "string"
          }
        },
        "title": "Add App Resource Owner Request",
        "type": "object",
        "x-speakeasy-name-override": "AddAppResourceOwnerRequest"
      },
      "c1.api.app.v1.AddAppResourceOwnerResponse": {
        "description": "The empty response message for adding an owner to an app resource.",
        "title": "Add App Resource Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "AddAppResourceOwnerResponse"
      },
      "c1.api.app.v1.AddAutomationExclusionRequestInput": {
        "description": "The AddAutomationExclusionRequest message.",
        "properties": {
          "userIds": {
            "description": "The IDs of users to add to the automation exclusion list.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Add Automation Exclusion Request",
        "type": "object",
        "x-speakeasy-name-override": "AddAutomationExclusionRequest"
      },
      "c1.api.app.v1.AddAutomationExclusionResponse": {
        "description": "Empty response with a status code indicating success.",
        "title": "Add Automation Exclusion Response",
        "type": "object",
        "x-speakeasy-name-override": "AddAutomationExclusionResponse"
      },
      "c1.api.app.v1.AddManuallyManagedUsersRequestInput": {
        "description": "The AddManuallyManagedUsersRequest message.",
        "properties": {
          "userIds": {
            "description": "The IDs of users to add as manually managed members.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Add Manually Managed Users Request",
        "type": "object",
        "x-speakeasy-name-override": "AddManuallyManagedUsersRequest"
      },
      "c1.api.app.v1.AgentTrait": {
        "description": "AgentTrait carries metadata for AI-agent resources surfaced in the Inventory.",
        "properties": {
          "identityAppUserId": {
            "description": "The C1 app user ID of the service-account identity this agent authenticates as.\n Empty if the backing identity has not yet been resolved.",
            "type": "string"
          },
          "status": {
            "description": "The agent's lifecycle status (READY, DISABLED, DELETED).",
            "enum": [
              "AGENT_STATUS_UNSPECIFIED",
              "AGENT_STATUS_READY",
              "AGENT_STATUS_DISABLED",
              "AGENT_STATUS_DELETED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Agent Trait",
        "type": "object",
        "x-speakeasy-name-override": "AgentTrait"
      },
      "c1.api.app.v1.AnnotationMatch": {
        "description": "Matches entitlements whose annotations contain `key` with exactly `value`.",
        "properties": {
          "key": {
            "description": "The key field.",
            "type": "string"
          },
          "value": {
            "description": "The full value pattern is enforced server-side by pkg/annotations where criteria are saved.",
            "type": "string"
          }
        },
        "title": "Annotation Match",
        "type": "object",
        "x-speakeasy-name-override": "AnnotationMatch"
      },
      "c1.api.app.v1.App": {
        "description": "The App object provides all of the details for an app, as well as some configuration.",
        "properties": {
          "accessModel": {
            "description": "How this app models access. Derived during uplift from the app's resource type traits.\n Sparse ACL feature.",
            "enum": [
              "APP_ACCESS_MODEL_UNSPECIFIED",
              "APP_ACCESS_MODEL_CLASSIC",
              "APP_ACCESS_MODEL_HYBRID",
              "APP_ACCESS_MODEL_SPARSE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "annotations": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Key/value metadata. Up to 16 entries; keys 1-128 chars; values 0-256\n chars; URL-safe ASCII. Keys starting with `c1/` are reserved.\n\n Updates have PATCH semantics: keys absent from the request are\n preserved; an empty value deletes the key.\n\n Well-known keys: `managed_by`, `iac_workspace`,\n `iac_resource_address`, `iac_tool_version`.",
            "type": "object",
            "x-speakeasy-terraform-plan-modifier": {
              "imports": [
                "github.com/conductorone/terraform-provider-conductorone/internal/annotations"
              ],
              "schemaDefinition": "annotations.PlanModifier()"
            }
          },
          "appAccountId": {
            "description": "The ID of the Account named by AccountName.",
            "readOnly": true,
            "type": "string"
          },
          "appAccountName": {
            "description": "The AccountName of the app. For example, AWS is AccountID, Github is Org Name, and Okta is Okta Subdomain.",
            "readOnly": true,
            "type": "string"
          },
          "appOwners": {
            "description": "The owners of the app.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.User"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "appUserMapper": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppUserMapper"
              },
              {
                "type": "null"
              }
            ]
          },
          "certifyPolicyId": {
            "description": "The ID of the Certify Policy associated with this App.",
            "type": "string"
          },
          "connectorVersion": {
            "description": "The connectorVersion field.",
            "format": "uint32",
            "type": "integer"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "defaultRequestCatalogId": {
            "description": "The ID for the default request catalog for this app.",
            "type": "string"
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "The app's description.",
            "type": "string"
          },
          "displayName": {
            "description": "The app's display name.",
            "type": "string"
          },
          "enableConnectorSourcedOwnership": {
            "description": "When enabled, resource ownership is sourced from the connector.",
            "type": "boolean"
          },
          "entitlementsUseResourceDescription": {
            "description": "When true, entitlements in this app default their description to their resource's description from the\n connector. Entitlements whose description was manually edited keep that text.",
            "type": "boolean"
          },
          "fieldMask": {
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "grantPolicyId": {
            "description": "The ID of the Grant Policy associated with this App.",
            "type": "string"
          },
          "iconUrl": {
            "description": "The URL of an icon to display for the app.",
            "type": "string"
          },
          "id": {
            "description": "The ID of the app.",
            "readOnly": true,
            "type": "string"
          },
          "identityMatching": {
            "description": "The identityMatching field.",
            "enum": [
              "APP_USER_IDENTITY_MATCHING_UNSPECIFIED",
              "APP_USER_IDENTITY_MATCHING_STRICT",
              "APP_USER_IDENTITY_MATCHING_DISPLAY_NAME",
              "APP_USER_IDENTITY_MATCHING_CUSTOM"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "instructions": {
            "description": "If you add instructions here, they will be shown to users in the access request form when requesting access for this app.",
            "type": "string"
          },
          "isDirectory": {
            "description": "Specifies if the app is a directory.",
            "readOnly": true,
            "type": "boolean"
          },
          "isManuallyManaged": {
            "description": "The isManuallyManaged field.",
            "type": "boolean"
          },
          "logoUri": {
            "description": "The URL of a logo to display for the app.",
            "readOnly": true,
            "type": "string"
          },
          "matchBatonRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppMatchBatonRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "monthlyCostUsd": {
            "description": "The cost of an app per-seat, so that total cost can be calculated by the grant count.",
            "format": "int32",
            "type": "integer"
          },
          "parentAppId": {
            "description": "The ID of the app that created this app, if any.",
            "readOnly": true,
            "type": "string"
          },
          "revokeGrantSources": {
            "description": "When enabled, revoking a grant also revokes the grants that source it.",
            "type": "boolean"
          },
          "revokePolicyId": {
            "description": "The ID of the Revoke Policy associated with this App.",
            "type": "string"
          },
          "strictAccessEntitlementProvisioning": {
            "description": "The strictAccessEntitlementProvisioning field.",
            "type": "boolean"
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "userCount": {
            "description": "The number of users with grants to this app.",
            "format": "int64",
            "readOnly": true,
            "type": "string"
          }
        },
        "title": "App",
        "type": "object",
        "x-speakeasy-entity": "App",
        "x-speakeasy-name-override": "App"
      },
      "c1.api.app.v1.AppAccessRequestDefaults": {
        "description": "The AppAccessRequestDefaults message.\n\nThis message contains a oneof named max_grant_duration. Only a single field of the following list may be set at a time:\n  - durationUnset\n  - durationGrant\n",
        "properties": {
          "appId": {
            "description": "The app id for the app access request rule",
            "type": "string"
          },
          "catalogIds": {
            "description": "The request catalog ids for the app access request rule.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "catalogMode": {
            "description": "How the apply pass treats catalog (access profile) bindings on matched\n entitlements. UNSPECIFIED reads as legacy list management; UNMANAGED means\n the rule does not manage the list and only the app's default request\n catalog follows the self-service switch.",
            "enum": [
              "APP_ACCESS_REQUEST_DEFAULTS_CATALOG_MODE_UNSPECIFIED",
              "APP_ACCESS_REQUEST_DEFAULTS_CATALOG_MODE_MANAGED",
              "APP_ACCESS_REQUEST_DEFAULTS_CATALOG_MODE_UNMANAGED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "defaultsEnabled": {
            "description": "If true the app level request configuration will be applied to specified resource types.",
            "type": "boolean"
          },
          "durationGrant": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "durationUnset": {
            "type": [
              "object",
              "null"
            ]
          },
          "emergencyGrantEnabled": {
            "description": "If emergency grants are enabled for this app access request rule.",
            "type": "boolean"
          },
          "emergencyGrantPolicyId": {
            "description": "The policy id for the emergency grant policy.",
            "type": "string"
          },
          "requestPolicyId": {
            "description": "The ID of the request policy to apply to entitlements matching this rule.",
            "type": "string"
          },
          "requestSchemaId": {
            "description": "The ID of the request schema to apply to entitlements matching this rule.",
            "type": "string"
          },
          "resourceTypeIds": {
            "description": "The app resource type ids for which the app access request defaults are applied.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "state": {
            "description": "The last applied state of the app access request defaults.",
            "enum": [
              "APP_ACCESS_REQUEST_DEFAULTS_LAST_APPLY_STATE_UNSPECIFIED",
              "APP_ACCESS_REQUEST_DEFAULTS_LAST_APPLY_STATE_RUNNING",
              "APP_ACCESS_REQUEST_DEFAULTS_LAST_APPLY_STATE_SUCCESS",
              "APP_ACCESS_REQUEST_DEFAULTS_LAST_APPLY_STATE_FAILED",
              "APP_ACCESS_REQUEST_DEFAULTS_LAST_APPLY_STATE_CANCELING",
              "APP_ACCESS_REQUEST_DEFAULTS_LAST_APPLY_STATE_CANCEL_SUCCESS",
              "APP_ACCESS_REQUEST_DEFAULTS_LAST_APPLY_STATE_CANCEL_ERROR"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "App Access Request Defaults",
        "type": "object",
        "x-speakeasy-name-override": "AppAccessRequestDefaults"
      },
      "c1.api.app.v1.AppAccessRequestDefaultsInput": {
        "description": "The AppAccessRequestDefaults message.\n\nThis message contains a oneof named max_grant_duration. Only a single field of the following list may be set at a time:\n  - durationUnset\n  - durationGrant\n",
        "properties": {
          "catalogIds": {
            "description": "The request catalog ids for the app access request rule.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "catalogMode": {
            "description": "How the apply pass treats catalog (access profile) bindings on matched\n entitlements. UNSPECIFIED reads as legacy list management; UNMANAGED means\n the rule does not manage the list and only the app's default request\n catalog follows the self-service switch.",
            "enum": [
              "APP_ACCESS_REQUEST_DEFAULTS_CATALOG_MODE_UNSPECIFIED",
              "APP_ACCESS_REQUEST_DEFAULTS_CATALOG_MODE_MANAGED",
              "APP_ACCESS_REQUEST_DEFAULTS_CATALOG_MODE_UNMANAGED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "defaultsEnabled": {
            "description": "If true the app level request configuration will be applied to specified resource types.",
            "type": "boolean"
          },
          "durationGrant": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "durationUnset": {
            "type": [
              "object",
              "null"
            ]
          },
          "emergencyGrantEnabled": {
            "description": "If emergency grants are enabled for this app access request rule.",
            "type": "boolean"
          },
          "emergencyGrantPolicyId": {
            "description": "The policy id for the emergency grant policy.",
            "type": "string"
          },
          "requestPolicyId": {
            "description": "The ID of the request policy to apply to entitlements matching this rule.",
            "type": "string"
          },
          "requestSchemaId": {
            "description": "The ID of the request schema to apply to entitlements matching this rule.",
            "type": "string"
          },
          "resourceTypeIds": {
            "description": "The app resource type ids for which the app access request defaults are applied.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "state": {
            "description": "The last applied state of the app access request defaults.",
            "enum": [
              "APP_ACCESS_REQUEST_DEFAULTS_LAST_APPLY_STATE_UNSPECIFIED",
              "APP_ACCESS_REQUEST_DEFAULTS_LAST_APPLY_STATE_RUNNING",
              "APP_ACCESS_REQUEST_DEFAULTS_LAST_APPLY_STATE_SUCCESS",
              "APP_ACCESS_REQUEST_DEFAULTS_LAST_APPLY_STATE_FAILED",
              "APP_ACCESS_REQUEST_DEFAULTS_LAST_APPLY_STATE_CANCELING",
              "APP_ACCESS_REQUEST_DEFAULTS_LAST_APPLY_STATE_CANCEL_SUCCESS",
              "APP_ACCESS_REQUEST_DEFAULTS_LAST_APPLY_STATE_CANCEL_ERROR"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "App Access Request Defaults",
        "type": "object",
        "x-speakeasy-name-override": "AppAccessRequestDefaults"
      },
      "c1.api.app.v1.AppActionsServiceGenerateReportRequestInput": {
        "description": "Empty request body. Just placeholder for the generate app report request which uses URL values for input.",
        "title": "App Actions Service Generate Report Request",
        "type": "object",
        "x-speakeasy-name-override": "AppActionsServiceGenerateReportRequest"
      },
      "c1.api.app.v1.AppActionsServiceGenerateReportResponse": {
        "description": "Empty response body. Status code indicates success.",
        "title": "App Actions Service Generate Report Response",
        "type": "object",
        "x-speakeasy-name-override": "AppActionsServiceGenerateReportResponse"
      },
      "c1.api.app.v1.AppEntitlement": {
        "description": "The app entitlement represents one permission in a downstream App (SAAS) that can be granted. For example, GitHub Read vs GitHub Write.\n\nThis message contains a oneof named max_grant_duration. Only a single field of the following list may be set at a time:\n  - durationUnset\n  - durationGrant\n",
        "properties": {
          "alias": {
            "description": "The alias of the app entitlement used by Cone. Also exact-match queryable.",
            "type": "string"
          },
          "annotations": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Bounded key/value metadata bag for IaC marking and customer tags.\n See .rfcs/object-annotations.md §2. Limits: ≤16 entries; keys 1–128\n chars matching ^[A-Za-z][A-Za-z0-9._/-]{0,127}$; values 0–256 chars\n URL-safe ASCII; total serialized ≤ 4096 bytes. Keys matching ^c1/\n are reserved.\n\n Well-known keys: `managed_by`, `iac_workspace`,\n `iac_resource_address`, `iac_tool_version`.",
            "type": "object",
            "x-speakeasy-terraform-plan-modifier": {
              "imports": [
                "github.com/conductorone/terraform-provider-conductorone/internal/annotations"
              ],
              "schemaDefinition": "annotations.PlanModifier()"
            }
          },
          "appId": {
            "description": "The ID of the app that is associated with the app entitlement.",
            "type": "string"
          },
          "appResourceId": {
            "description": "The ID of the app resource that is associated with the app entitlement",
            "type": "string"
          },
          "appResourceTypeId": {
            "description": "The ID of the app resource type that is associated with the app entitlement",
            "type": "string"
          },
          "certifyPolicyId": {
            "description": "The ID of the policy that will be used for certify tickets related to the app entitlement.",
            "type": "string"
          },
          "complianceFrameworkValueIds": {
            "description": "The IDs of different compliance frameworks associated with this app entitlement ex (SOX, HIPAA, PCI, etc.)",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "defaultValuesApplied": {
            "description": "Flag to indicate if app-level access request defaults have been applied to the entitlement",
            "type": "boolean"
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "deprovisionerPolicy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ProvisionPolicy"
              },
              {
                "type": "null"
              }
            ]
          },
          "description": {
            "description": "The description of the app entitlement.",
            "type": "string"
          },
          "displayName": {
            "description": "The display name of the app entitlement.",
            "type": "string"
          },
          "durationGrant": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "durationUnset": {
            "type": [
              "object",
              "null"
            ]
          },
          "emergencyGrantEnabled": {
            "description": "This enables tasks to be created in an emergency and use a selected emergency access policy.",
            "type": "boolean"
          },
          "emergencyGrantPolicyId": {
            "description": "The ID of the policy that will be used for emergency access grant tasks.",
            "type": "string"
          },
          "externalId": {
            "description": "The upstream product's native external ID for this entitlement (e.g. an Okta group ID).\n Populated from the connector's external ID during sync.",
            "readOnly": true,
            "type": "string"
          },
          "grantCount": {
            "description": "The amount of grants open for this entitlement",
            "format": "int64",
            "readOnly": true,
            "type": "string"
          },
          "grantPolicyId": {
            "description": "The ID of the policy that will be used for grant tickets related to the app entitlement.",
            "type": "string"
          },
          "id": {
            "description": "The unique ID for the App Entitlement.",
            "readOnly": true,
            "type": "string"
          },
          "isAutomationEnabled": {
            "description": "Flag to indicate whether automation (for adding users to entitlement based on rules) has been enabled.",
            "readOnly": true,
            "type": "boolean"
          },
          "isManuallyManaged": {
            "description": "Flag to indicate if the app entitlement is manually managed.",
            "type": "boolean"
          },
          "matchBatonId": {
            "description": "An identifier used to match this entitlement to a connector-synced entitlement during sync.",
            "type": "string"
          },
          "overrideAccessRequestsDefaults": {
            "description": "Flag to indicate if the app-level access request settings have been overridden for the entitlement",
            "type": "boolean"
          },
          "provisionerPolicy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ProvisionPolicy"
              },
              {
                "type": "null"
              }
            ]
          },
          "purpose": {
            "description": "The purpose of this entitlement (e.g., assignment, permission, ownership).",
            "enum": [
              "APP_ENTITLEMENT_PURPOSE_VALUE_UNSPECIFIED",
              "APP_ENTITLEMENT_PURPOSE_VALUE_ASSIGNMENT",
              "APP_ENTITLEMENT_PURPOSE_VALUE_PERMISSION",
              "APP_ENTITLEMENT_PURPOSE_VALUE_OWNERSHIP"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "requestSchemaId": {
            "description": "The ID of the request schema associated with this app entitlement.",
            "type": "string"
          },
          "revokePolicyId": {
            "description": "The ID of the policy that will be used for revoke tickets related to the app entitlement",
            "type": "string"
          },
          "riskLevelValueId": {
            "description": "The ID of the risk level assigned to this entitlement.",
            "type": "string"
          },
          "slug": {
            "description": "The slug is displayed as an oval next to the name in the frontend of C1, it tells you what permission the entitlement grants. See https://www.conductorone.com/docs/product/admin/entitlements/",
            "type": "string"
          },
          "sourceConnectorIds": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map to tell us which connector the entitlement came from.",
            "type": "object"
          },
          "systemBuiltin": {
            "description": "This field indicates if this is a system builtin entitlement.",
            "readOnly": true,
            "type": "boolean"
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "userEditedMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "App Entitlement",
        "type": "object",
        "x-speakeasy-entity": "Custom App Entitlement",
        "x-speakeasy-name-override": "AppEntitlement"
      },
      "c1.api.app.v1.AppEntitlementAutomation": {
        "description": "The AppEntitlementAutomation message.\n\nThis message contains a oneof named conditions. Only a single field of the following list may be set at a time:\n  - none\n  - entitlements\n  - cel\n  - basic\n",
        "properties": {
          "appEntitlementId": {
            "description": "The unique ID for the App Entitlement.",
            "readOnly": true,
            "type": "string"
          },
          "appId": {
            "description": "The ID of the app that is associated with the app entitlement.",
            "readOnly": true,
            "type": "string"
          },
          "basic": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementAutomationRuleBasic"
              },
              {
                "type": "null"
              }
            ]
          },
          "cel": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementAutomationRuleCEL"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "The description of the app entitlement.",
            "type": "string"
          },
          "displayName": {
            "description": "The display name of the app entitlement.",
            "type": "string"
          },
          "entitlements": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementAutomationRuleEntitlement"
              },
              {
                "type": "null"
              }
            ]
          },
          "lastRunStatus": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementAutomationLastRunStatus"
              },
              {
                "type": "null"
              }
            ]
          },
          "managedByRequestCatalogId": {
            "description": "When set, this automation is managed by an access profile's bundle automation.\n Read-only. Not settable via this API.",
            "readOnly": true,
            "type": "string"
          },
          "none": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementAutomationRuleNone"
              },
              {
                "type": "null"
              }
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "App Entitlement Automation",
        "type": "object",
        "x-speakeasy-entity": "App Entitlement Automation",
        "x-speakeasy-name-override": "AppEntitlementAutomation"
      },
      "c1.api.app.v1.AppEntitlementAutomationLastRunStatus": {
        "description": "The AppEntitlementAutomationLastRunStatus message.",
        "properties": {
          "errorMessage": {
            "description": "The errorMessage field.",
            "readOnly": true,
            "type": "string"
          },
          "lastCompletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "description": "The status field.",
            "enum": [
              "APP_ENTITLEMENT_AUTOMATION_RUN_STATUS_UNSPECIFIED",
              "APP_ENTITLEMENT_AUTOMATION_RUN_STATUS_SUCCESS",
              "APP_ENTITLEMENT_AUTOMATION_RUN_STATUS_FAILED",
              "APP_ENTITLEMENT_AUTOMATION_RUN_STATUS_IN_PROGRESS"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "App Entitlement Automation Last Run Status",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementAutomationLastRunStatus"
      },
      "c1.api.app.v1.AppEntitlementAutomationRuleBasic": {
        "description": "The AppEntitlementAutomationRuleBasic message.",
        "properties": {
          "expression": {
            "description": "The expression field.",
            "type": "string"
          }
        },
        "title": "App Entitlement Automation Rule Basic",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementAutomationRuleBasic"
      },
      "c1.api.app.v1.AppEntitlementAutomationRuleCEL": {
        "description": "The AppEntitlementAutomationRuleCEL message.",
        "properties": {
          "expression": {
            "description": "The expression field.",
            "type": "string"
          }
        },
        "title": "App Entitlement Automation Rule Cel",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementAutomationRuleCEL"
      },
      "c1.api.app.v1.AppEntitlementAutomationRuleEntitlement": {
        "description": "The AppEntitlementAutomationRuleEntitlement message.",
        "properties": {
          "entitlementRefs": {
            "description": "The entitlementRefs field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "App Entitlement Automation Rule Entitlement",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementAutomationRuleEntitlement"
      },
      "c1.api.app.v1.AppEntitlementAutomationRuleNone": {
        "description": "The AppEntitlementAutomationRuleNone message.",
        "title": "App Entitlement Automation Rule None",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementAutomationRuleNone"
      },
      "c1.api.app.v1.AppEntitlementExpandMask": {
        "description": "The app entitlement expand mask allows the user to get additional information when getting responses containing app entitlement views.",
        "properties": {
          "paths": {
            "description": "Array of strings to describe which items to expand on the return value. Can be any combination of \"*\", \"app_id\", \"app_resource_type_id\", or \"app_resource_id\".",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "App Entitlement Expand Mask",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementExpandMask"
      },
      "c1.api.app.v1.AppEntitlementProxy": {
        "description": "An entitlement proxy binding that defines a hierarchical relationship between two entitlements.",
        "properties": {
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "disabledAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "dstAppEntitlementId": {
            "description": "The ID of the destination (child) entitlement.",
            "type": "string"
          },
          "dstAppId": {
            "description": "The ID of the app that owns the destination entitlement.",
            "type": "string"
          },
          "implicit": {
            "description": "If true, the binding does not exist yet and is inferred from the entitlements of the parent app.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "srcAppEntitlementId": {
            "description": "The ID of the source (parent) entitlement.",
            "type": "string"
          },
          "srcAppId": {
            "description": "The ID of the app that owns the source entitlement.",
            "type": "string"
          },
          "systemBuiltin": {
            "description": "If true, this binding was created by the system and cannot be removed by the user.",
            "type": "boolean"
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "App Entitlement Proxy",
        "type": "object",
        "x-speakeasy-entity": "App Entitlement Proxy Binding",
        "x-speakeasy-name-override": "AppEntitlementProxy"
      },
      "c1.api.app.v1.AppEntitlementProxyExpandMask": {
        "description": "The AppEntitlementProxyExpandMask message.",
        "properties": {
          "paths": {
            "description": "The paths field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "App Entitlement Proxy Expand Mask",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementProxyExpandMask"
      },
      "c1.api.app.v1.AppEntitlementProxyView": {
        "description": "The AppEntitlementProxyView message.",
        "properties": {
          "appProxyEntitlement": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementProxy"
              },
              {
                "type": "null"
              }
            ]
          },
          "dstAppEntitlementPath": {
            "description": "The dstAppEntitlementPath field.",
            "type": "string"
          },
          "dstAppPath": {
            "description": "The dstAppPath field.",
            "type": "string"
          },
          "srcAppEntitlementPath": {
            "description": "The srcAppEntitlementPath field.",
            "type": "string"
          },
          "srcAppPath": {
            "description": "The srcAppPath field.",
            "type": "string"
          }
        },
        "title": "App Entitlement Proxy View",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementProxyView"
      },
      "c1.api.app.v1.AppEntitlementRef": {
        "description": "The AppEntitlementRef message.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          }
        },
        "title": "App Entitlement Ref",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementRef"
      },
      "c1.api.app.v1.AppEntitlementRoutingRule": {
        "description": "The AppEntitlementRoutingRule message.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "readOnly": true,
            "type": "string"
          },
          "condition": {
            "description": "CEL expression evaluated against the entitlement routing rule context.\n Empty string is valid and matches every target not matched earlier.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "The description field.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "enabled": {
            "description": "The enabled field.",
            "type": "boolean"
          },
          "id": {
            "description": "The id field.",
            "readOnly": true,
            "type": "string"
          },
          "priority": {
            "description": "Evaluation order: lower numbers evaluate first; rules are sorted by\n (priority asc, id asc). On create, this is a 1-indexed insertion slot and\n the server re-packs siblings densely; omit it to append last. Ignored on\n update — use ReorderAppEntitlementRoutingRules (list order = priority order)\n to change an existing rule's position.",
            "format": "int32",
            "type": "integer"
          },
          "settings": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRoutingRuleSettings"
              },
              {
                "type": "null"
              }
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "App Entitlement Routing Rule",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementRoutingRule"
      },
      "c1.api.app.v1.AppEntitlementRoutingRuleSettings": {
        "description": "The AppEntitlementRoutingRuleSettings message.",
        "properties": {
          "emergencyGrantEnabled": {
            "description": "The emergencyGrantEnabled field.",
            "type": "boolean"
          },
          "emergencyGrantPolicyId": {
            "description": "The emergencyGrantPolicyId field.",
            "type": "string"
          },
          "maxGrantDuration": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "requestPolicyId": {
            "description": "The requestPolicyId field.",
            "type": "string"
          },
          "requestSchemaId": {
            "description": "The requestSchemaId field.",
            "type": "string"
          }
        },
        "title": "App Entitlement Routing Rule Settings",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementRoutingRuleSettings"
      },
      "c1.api.app.v1.AppEntitlementSearchServiceCountGrantsForUserByAppRequest": {
        "description": "CountGrantsForUserByApp request.",
        "properties": {
          "appIds": {
            "description": "Restrict the count to these applications. Empty counts grants across all\n applications the user has access to.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "userId": {
            "description": "The user whose grants to count.",
            "type": "string"
          }
        },
        "title": "App Entitlement Search Service Count Grants For User By App Request",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementSearchServiceCountGrantsForUserByAppRequest"
      },
      "c1.api.app.v1.AppEntitlementSearchServiceCountGrantsForUserByAppResponse": {
        "description": "CountGrantsForUserByApp response. Grant counts are computed directly from\n grant bindings and are an upper bound on what SearchGraph renders for the\n same user and app filter — SearchGraph applies additional filters that\n these counts do not.",
        "properties": {
          "appCount": {
            "description": "The number of applications represented in app_grant_counts.",
            "format": "int32",
            "type": "integer"
          },
          "appGrantCounts": {
            "description": "Grant counts, one entry per application the user has at least one grant\n in (or per requested app_id, if narrower).",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.GraphAppGrantCount"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appUsers": {
            "description": "The user's accounts, scoped by the app_ids filter when provided. Includes\n accounts with zero counted grants. Lets callers filter a subsequent access\n graph by account without a second lookup.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppUserRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "band": {
            "description": "Advisory size classification for the user's access graph. See\n GraphSizeBand.",
            "enum": [
              "GRAPH_SIZE_BAND_UNSPECIFIED",
              "GRAPH_SIZE_BAND_NORMAL",
              "GRAPH_SIZE_BAND_SUMMARIZED",
              "GRAPH_SIZE_BAND_TOO_LARGE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "totalGrants": {
            "description": "The sum of grant_count across all app_grant_counts.",
            "format": "int64",
            "type": "string"
          }
        },
        "title": "App Entitlement Search Service Count Grants For User By App Response",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementSearchServiceCountGrantsForUserByAppResponse"
      },
      "c1.api.app.v1.AppEntitlementSearchServiceSearchGrantsRequest": {
        "description": "The AppEntitlementSearchServiceSearchGrantsRequest message.",
        "properties": {
          "appIds": {
            "description": "Search for grants contained in any of these apps.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appUserIds": {
            "description": "Search for grants that are granted to any of these app user ids.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "entitlementRefs": {
            "description": "Search for grants of an entitlement",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "entitlementSlugs": {
            "description": "Filter for entitlements whose slug is in this list (e.g. \"enrollment\" for access profiles)",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "pageSize": {
            "description": "The pageSize where 0 \u003c= pageSize \u003c= 100. Values \u003c 10 will be set to 10. A value of 0 returns the default page size (currently 25)",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          },
          "purpose": {
            "description": "Filter for entitlements with these purposes (e.g., ASSIGNMENT for membership entitlements)",
            "items": {
              "enum": [
                "APP_ENTITLEMENT_PURPOSE_VALUE_UNSPECIFIED",
                "APP_ENTITLEMENT_PURPOSE_VALUE_ASSIGNMENT",
                "APP_ENTITLEMENT_PURPOSE_VALUE_PERMISSION",
                "APP_ENTITLEMENT_PURPOSE_VALUE_OWNERSHIP"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "resourceIds": {
            "description": "Search for grants within a resource.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "resourceTypeIds": {
            "description": "Search grants for given resource types.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "userId": {
            "description": "Search for grants of a user",
            "type": "string"
          }
        },
        "title": "App Entitlement Search Service Search Grants Request",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementSearchServiceSearchGrantsRequest"
      },
      "c1.api.app.v1.AppEntitlementSearchServiceSearchGrantsResponse": {
        "description": "The AppEntitlementSearchServiceSearchGrantsResponse message.",
        "properties": {
          "expanded": {
            "description": "The expanded field.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementWithUserBinding"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "App Entitlement Search Service Search Grants Response",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementSearchServiceSearchGrantsResponse"
      },
      "c1.api.app.v1.AppEntitlementSearchServiceSearchGraphRequest": {
        "description": "SearchGraph request. Builds a filtered access graph starting from a root entity.\n Exactly one of user_id, app_id, or resource_id must be set.\n Server validates this constraint and returns InvalidArgument if violated.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "appIds": {
            "description": "Filters — all optional, applied at every traversal hop",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "entitlementIds": {
            "description": "The entitlementIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "entitlementNameQuery": {
            "description": "The entitlementNameQuery field.",
            "type": "string"
          },
          "maxDepth": {
            "description": "Traversal controls",
            "format": "int32",
            "type": "integer"
          },
          "maxFanOut": {
            "description": "Legacy per-parent fan-out limit. Superseded by max_nodes and server-computed\n per-parent budgets, but still honored for callers that set it.",
            "format": "int32",
            "type": "integer"
          },
          "maxNodes": {
            "description": "Overall node budget for the returned subgraph. 0 uses the server default.",
            "format": "int32",
            "type": "integer"
          },
          "pageSize": {
            "description": "Legacy traversal page size. Superseded by max_nodes, but still honored for\n callers that set it.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "Legacy pagination token. Superseded by max_nodes-based traversal, but still\n honored for callers that set it.",
            "type": "string"
          },
          "resourceId": {
            "description": "The resourceId field.",
            "type": "string"
          },
          "resourceIds": {
            "description": "The resourceIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "resourceNameQuery": {
            "description": "The resourceNameQuery field.",
            "type": "string"
          },
          "resourceTypeIds": {
            "description": "The resourceTypeIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "userId": {
            "description": "Root entity — exactly one must be set",
            "type": "string"
          }
        },
        "title": "App Entitlement Search Service Search Graph Request",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementSearchServiceSearchGraphRequest"
      },
      "c1.api.app.v1.AppEntitlementSearchServiceSearchGraphResponse": {
        "description": "SearchGraph response. Contains a subgraph of nodes and edges.",
        "properties": {
          "edges": {
            "description": "The edges field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.GraphEdge"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "hasMore": {
            "description": "The hasMore field.",
            "type": "boolean"
          },
          "nodeCeilingHit": {
            "description": "True if the server-side node budget stopped the traversal before it\n finished walking the graph. Distinct from has_more, which can also be set\n by a request timeout or scan limit.",
            "type": "boolean"
          },
          "nodes": {
            "description": "The nodes field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.GraphNode"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          },
          "pathsReturned": {
            "description": "The pathsReturned field.",
            "format": "int32",
            "type": "integer"
          },
          "truncatedNodeIds": {
            "description": "The truncatedNodeIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "App Entitlement Search Service Search Graph Response",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementSearchServiceSearchGraphResponse"
      },
      "c1.api.app.v1.AppEntitlementSearchServiceSearchReachableResourcesForUserRequest": {
        "description": "SearchReachableResourcesForUser request.",
        "properties": {
          "appIds": {
            "description": "Restrict results to resources belonging to these applications. Empty\n searches across every application the user can reach.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pageSize": {
            "description": "Maximum number of results to return per page.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "Token for fetching the next page of results.",
            "type": "string"
          },
          "query": {
            "description": "Fuzzy search over the resource display name.",
            "type": "string"
          },
          "userId": {
            "description": "The user whose reachable resources to search.",
            "type": "string"
          }
        },
        "title": "App Entitlement Search Service Search Reachable Resources For User Request",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementSearchServiceSearchReachableResourcesForUserRequest"
      },
      "c1.api.app.v1.AppEntitlementSearchServiceSearchReachableResourcesForUserResponse": {
        "description": "SearchReachableResourcesForUser response. Resources are deduplicated: a\n resource reachable through more than one grant or entitlement appears once.",
        "properties": {
          "list": {
            "description": "The reachable resources, one GraphNode (type = GRAPH_NODE_TYPE_RESOURCE)\n per distinct resource. Uses the same node representation as SearchGraph.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.GraphNode"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token for fetching the next page of results.",
            "type": "string"
          }
        },
        "title": "App Entitlement Search Service Search Reachable Resources For User Response",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementSearchServiceSearchReachableResourcesForUserResponse"
      },
      "c1.api.app.v1.AppEntitlementSearchServiceSearchRequest": {
        "description": "Search app entitlements by a variety of filters.",
        "properties": {
          "accessReviewId": {
            "description": "Search for app entitlements that are being reviewed as part of this access review campaign.",
            "type": "string"
          },
          "alias": {
            "description": "Search for app entitlements that have this alias (exact match).",
            "type": "string"
          },
          "allowAutomationEnabledC1Groups": {
            "description": "With exclude_automation_enabled, keep ConductorOne group membership entitlements, which are always\n automation-enabled. Group exclusion entitlements stay excluded.",
            "type": "boolean"
          },
          "annotationMatches": {
            "description": "Return entitlements whose annotations match at least one entry (exact key and value).\n Honored by Search and SearchCount; ignored by GetSearchTerms and data export.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AnnotationMatch"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appIds": {
            "description": "Search for app entitlements contained in any of these apps.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appResourceTypeRefs": {
            "description": "Search for app entitlements whose resource type matches any of these real\n (app_id, id) AppResourceType pairs — unlike resource_type_ids, which\n matches by name and can't distinguish two apps' same-named or\n system-wide-shared-id resource types (e.g. Credential). Takes precedence\n over resource_type_ids when set.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.ResourceTypeRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appUserIds": {
            "description": "Search for app entitlements that are granted to any of these app user ids.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "complianceFrameworkIds": {
            "description": "Search for app entitlements that are part of these compliance frameworks.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "displayName": {
            "description": "Filter results to entitlements with this exact display name.",
            "type": "string"
          },
          "entitlementSlugs": {
            "description": "Filter for entitlements whose slug is in this list (e.g. \"read_only\")",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "excludeAppIds": {
            "description": "Exclude app entitlements from the results that are in these app IDs.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "excludeAppUserIds": {
            "description": "Exclude entitlements from results that are granted to any of these app users.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "excludeAutomationEnabled": {
            "description": "Exclude app entitlements that have automation enabled.",
            "type": "boolean"
          },
          "excludeImmutable": {
            "description": "If true, exclude immutable entitlements (e.g., system-managed entitlements that cannot be modified).",
            "type": "boolean"
          },
          "excludeNonRoleProfileMemberships": {
            "description": "Exclude access profile membership entitlements that cannot be added to a Catalog access profile\n (Catalog and Hybrid profile memberships). Role profile memberships and all other entitlements are kept.",
            "type": "boolean"
          },
          "excludeResourceTypeIds": {
            "description": "Exclude entitlements with any of these resource type IDs from results.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "excludedEntitlementRefs": {
            "description": "Exclude these specific entitlements from results.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "includeDeleted": {
            "description": "Include deleted app entitlements, this includes app entitlements that have a deleted parent object (app, app resource, app resource type)",
            "type": "boolean"
          },
          "isAutomated": {
            "description": "If true, restrict results to entitlements that have an automation rule configured.",
            "type": "boolean"
          },
          "membershipType": {
            "description": "Filter results to entitlements where the user has any of these membership types (e.g., member, owner, admin).",
            "items": {
              "enum": [
                "APP_ENTITLEMENT_MEMBERSHIP_TYPE_UNSPECIFIED",
                "APP_ENTITLEMENT_MEMBERSHIP_TYPE_MEMBER",
                "APP_ENTITLEMENT_MEMBERSHIP_TYPE_OWNER",
                "APP_ENTITLEMENT_MEMBERSHIP_TYPE_EXCLUSION",
                "APP_ENTITLEMENT_MEMBERSHIP_TYPE_ADMIN"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "onlyGetExpiring": {
            "description": "If true, restrict results to entitlements that have at least one expiring grant.",
            "type": "boolean"
          },
          "ownerUserIds": {
            "description": "Filter by users that have an explicit ownership binding to the entitlement.\n This filter applies to every caller, including administrators.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pageSize": {
            "description": "The pageSize where 0 \u003c= pageSize \u003c= 100. Values \u003c 10 will be set to 10. A value of 0 returns the default page size (currently 25)",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          },
          "policyRefs": {
            "description": "Search for app entitlements that use any of these policies.",
            "items": {
              "$ref": "#/components/schemas/c1.api.policy.v1.PolicyRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "query": {
            "description": "Query the app entitlements with a fuzzy search on display name and description.",
            "type": "string"
          },
          "refs": {
            "description": "Filter results to only these specific entitlements.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "requestSchemaIds": {
            "description": "Search for app entitlements that are bound to any of these request schemas.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "resourceIds": {
            "description": "Search for app entitlements that belongs to these resources.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "resourceProfileMatches": {
            "description": "Return entitlements whose resource profile matches at least one entry using ResourceProfileMatch semantics.\n Honored by Search and SearchCount; ignored by GetSearchTerms and data export.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.ResourceProfileMatch"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "resourceTraitIds": {
            "description": "Filter results to entitlements whose resource types have any of these trait IDs.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "resourceTypeIds": {
            "description": "Search for app entitlements that are for items with resources types that have matching names. Example names are \"group\", \"role\", and \"app\".",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "riskLevelIds": {
            "description": "Search for app entitlements with these risk levels.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "sourceConnectorId": {
            "description": "Filter results to entitlements synced from this connector.",
            "type": "string"
          }
        },
        "title": "App Entitlement Search Service Search Request",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementSearchServiceSearchRequest"
      },
      "c1.api.app.v1.AppEntitlementSearchServiceSearchResponse": {
        "description": "The AppEntitlementSearchServiceSearchResponse message.",
        "properties": {
          "expanded": {
            "description": "List of related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "facets": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.search.v1.Facets"
              },
              {
                "type": "null"
              }
            ]
          },
          "list": {
            "description": "List of app entitlement view objects.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken is shown for the next page if the number of results is larger than the max page size. The server returns one page of results and the nextPageToken until all results are retreived. To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page.",
            "type": "string"
          }
        },
        "title": "App Entitlement Search Service Search Response",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementSearchServiceSearchResponse"
      },
      "c1.api.app.v1.AppEntitlementServiceGetAutomationResponse": {
        "description": "The AppEntitlementServiceGetAutomationResponse message.",
        "properties": {
          "AppEntitlementAutomation": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementAutomation"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "App Entitlement Service Get Automation Response",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementServiceGetAutomationResponse"
      },
      "c1.api.app.v1.AppEntitlementServiceUpdateAutomationRequestInput": {
        "description": "The AppEntitlementServiceUpdateAutomationRequest message.\n\nThis message contains a oneof named conditions. Only a single field of the following list may be set at a time:\n  - none\n  - entitlements\n  - cel\n  - basic\n",
        "properties": {
          "basic": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementAutomationRuleBasic"
              },
              {
                "type": "null"
              }
            ]
          },
          "cel": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementAutomationRuleCEL"
              },
              {
                "type": "null"
              }
            ]
          },
          "description": {
            "description": "The description of the app entitlement.",
            "type": "string"
          },
          "displayName": {
            "description": "The display name of the app entitlement.",
            "type": "string"
          },
          "entitlements": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementAutomationRuleEntitlement"
              },
              {
                "type": "null"
              }
            ]
          },
          "none": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementAutomationRuleNone"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "App Entitlement Service Update Automation Request",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementServiceUpdateAutomationRequest"
      },
      "c1.api.app.v1.AppEntitlementServiceUpdateAutomationResponse": {
        "description": "The AppEntitlementServiceUpdateAutomationResponse message.",
        "properties": {
          "AppEntitlementAutomation": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementAutomation"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "App Entitlement Service Update Automation Response",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementServiceUpdateAutomationResponse"
      },
      "c1.api.app.v1.AppEntitlementUserBinding": {
        "description": "The AppEntitlementUserBinding represents the relationship that gives an app user access to an app entitlement",
        "properties": {
          "appEntitlementId": {
            "description": "The ID of the app entitlement that the app user has access to",
            "type": "string"
          },
          "appId": {
            "description": "The ID of the app associated with the app entitlement",
            "type": "string"
          },
          "appUserId": {
            "description": "The ID of the app user that has access to the app entitlement",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "deprovisionAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "grantSources": {
            "description": "The grantSources field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "App Entitlement User Binding",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementUserBinding"
      },
      "c1.api.app.v1.AppEntitlementUserBindingExpandHistoryMask": {
        "description": "The AppEntitlementUserBindingExpandHistoryMask message.",
        "properties": {
          "paths": {
            "description": "The paths field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "App Entitlement User Binding Expand History Mask",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementUserBindingExpandHistoryMask"
      },
      "c1.api.app.v1.AppEntitlementUserBindingFeed": {
        "description": "The AppEntitlementUserBindingFeed message.",
        "properties": {
          "appEntitlementId": {
            "description": "The ID of the app entitlement that the app user has access to",
            "type": "string"
          },
          "appId": {
            "description": "The ID of the app associated with the app entitlement",
            "type": "string"
          },
          "appUserId": {
            "description": "The ID of the app user that has access to the app entitlement",
            "type": "string"
          },
          "date": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "eventType": {
            "description": "The eventType field.",
            "enum": [
              "GRANT_EVENT_TYPE_UNSPECIFIED",
              "GRANT_EVENT_TYPE_ADDED",
              "GRANT_EVENT_TYPE_REMOVED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "ticketId": {
            "description": "The ticketId field.",
            "type": "string"
          }
        },
        "title": "App Entitlement User Binding Feed",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementUserBindingFeed"
      },
      "c1.api.app.v1.AppEntitlementUserBindingFeedView": {
        "description": "The AppEntitlementUserBindingFeedView message.",
        "properties": {
          "appPath": {
            "description": "The appPath field.",
            "type": "string"
          },
          "appUserPath": {
            "description": "The appUserPath field.",
            "type": "string"
          },
          "entitlementPath": {
            "description": "The entitlementPath field.",
            "type": "string"
          },
          "feed": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementUserBindingFeed"
              },
              {
                "type": "null"
              }
            ]
          },
          "ticketPath": {
            "description": "The ticketPath field.",
            "type": "string"
          }
        },
        "title": "App Entitlement User Binding Feed View",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementUserBindingFeedView"
      },
      "c1.api.app.v1.AppEntitlementUserBindingHistory": {
        "description": "The AppEntitlementUserBindingHistory message.",
        "properties": {
          "appEntitlementId": {
            "description": "The ID of the app entitlement that the app user has access to",
            "type": "string"
          },
          "appId": {
            "description": "The ID of the app associated with the app entitlement",
            "type": "string"
          },
          "appUserId": {
            "description": "The ID of the app user that has access to the app entitlement",
            "type": "string"
          },
          "grantedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "The unique ID of this grant history record",
            "readOnly": true,
            "type": "string"
          },
          "revokedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "App Entitlement User Binding History",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementUserBindingHistory"
      },
      "c1.api.app.v1.AppEntitlementUserBindingHistoryView": {
        "description": "The AppEntitlementUserBindingHistoryView message.",
        "properties": {
          "appPath": {
            "description": "The appPath field.",
            "type": "string"
          },
          "appUserPath": {
            "description": "The appUserPath field.",
            "type": "string"
          },
          "entitlementPath": {
            "description": "The entitlementPath field.",
            "type": "string"
          },
          "history": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementUserBindingHistory"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "App Entitlement User Binding History View",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementUserBindingHistoryView"
      },
      "c1.api.app.v1.AppEntitlementUserView": {
        "description": "The AppEntitlementUserView (aka grant view) describes the relationship between an app user and an entitlement. They have more recently been referred to as grants.",
        "properties": {
          "appEntitlementId": {
            "description": "The ID of the app entitlement that the app user has access to.",
            "type": "string"
          },
          "appEntitlementUserBindingCreatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "appEntitlementUserBindingDeprovisionAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "appId": {
            "description": "The ID of the app associated with the grant.",
            "type": "string"
          },
          "appUser": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppUserView"
              },
              {
                "type": "null"
              }
            ]
          },
          "appUserId": {
            "description": "The ID of the app user that has access to the app entitlement.",
            "type": "string"
          },
          "grantSources": {
            "description": "List of sources for the grant, ie. groups, roles, etc.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "originatingTicketId": {
            "description": "The originating ticket ID for the grant (e.g. from a request ticket).",
            "type": "string"
          }
        },
        "title": "App Entitlement User View",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementUserView"
      },
      "c1.api.app.v1.AppEntitlementView": {
        "description": "The app entitlement view contains the serialized app entitlement and paths to objects referenced by the app entitlement.",
        "properties": {
          "appEntitlement": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlement"
              },
              {
                "type": "null"
              }
            ]
          },
          "appPath": {
            "description": "JSONPATH expression indicating the location of the App object in the  array.",
            "type": "string"
          },
          "appResourcePath": {
            "description": "JSONPATH expression indicating the location of the App Resource Type object in the expanded array.",
            "type": "string"
          },
          "appResourceTypePath": {
            "description": "JSONPATH expression indicating the location of the App Resource object in the  array.",
            "type": "string"
          },
          "objectPermissions": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.iam.v1.ActorObjectPermissions"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "App Entitlement View",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementView"
      },
      "c1.api.app.v1.AppEntitlementWithExpired": {
        "description": "A grant with its expiry and discovery timestamps, along with the associated app user and ConductorOne user.",
        "properties": {
          "appEntitlementId": {
            "description": "The ID of the app entitlement.",
            "type": "string"
          },
          "appId": {
            "description": "The ID of the app that contains the entitlement.",
            "type": "string"
          },
          "appUser": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppUser"
              },
              {
                "type": "null"
              }
            ]
          },
          "appUserId": {
            "description": "The ID of the app user who holds the grant.",
            "type": "string"
          },
          "discovered": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "expired": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "grantReasons": {
            "description": "The reasons this grant was given (e.g., access request, automation).",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.GrantReason"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "grantSources": {
            "description": "Entitlements that are the source of this grant (e.g., a group membership that implies a role).",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "user": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.User"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "App Entitlement With Expired",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementWithExpired"
      },
      "c1.api.app.v1.AppEntitlementWithUserBinding": {
        "description": "The AppEntitlementWithUserBinding message.",
        "properties": {
          "appEntitlementUserBinding": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementUserView"
              },
              {
                "type": "null"
              }
            ]
          },
          "entitlement": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementView"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "App Entitlement With User Binding",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementWithUserBinding"
      },
      "c1.api.app.v1.AppManagedState": {
        "description": "AppManagedState identifies whether a discovered application is managed.\n\nThis message contains a oneof named state. Only a single field of the following list may be set at a time:\n  - unmanaged\n  - managed\n",
        "properties": {
          "managed": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppManagedState.AppManagedStateManaged"
              },
              {
                "type": "null"
              }
            ]
          },
          "unmanaged": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppManagedState.AppManagedStateUnmanaged"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "App Managed State",
        "type": "object",
        "x-speakeasy-name-override": "AppManagedState"
      },
      "c1.api.app.v1.AppManagedState.AppManagedStateManaged": {
        "description": "AppManagedStateManaged identifies the application created by promotion.",
        "properties": {
          "appId": {
            "description": "ID of the managed application.",
            "type": "string"
          }
        },
        "title": "App Managed State Managed",
        "type": "object",
        "x-speakeasy-name-override": "AppManagedStateManaged"
      },
      "c1.api.app.v1.AppManagedState.AppManagedStateUnmanaged": {
        "description": "AppManagedStateUnmanaged indicates that the discovered application has not been promoted.",
        "title": "App Managed State Unmanaged",
        "type": "object",
        "x-speakeasy-name-override": "AppManagedStateUnmanaged"
      },
      "c1.api.app.v1.AppManagedStateBinding": {
        "description": "AppManagedStateBinding records whether a connector-discovered application is managed in ConductorOne.",
        "properties": {
          "appId": {
            "description": "Application that owns the connector which discovered this application.",
            "readOnly": true,
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "displayName": {
            "description": "Display name of the discovered application.",
            "type": "string"
          },
          "resourceId": {
            "description": "Resource ID of the discovered application.",
            "readOnly": true,
            "type": "string"
          },
          "resourceTypeId": {
            "description": "Resource type used by the connector to represent discovered applications.",
            "readOnly": true,
            "type": "string"
          },
          "state": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppManagedState"
              },
              {
                "type": "null"
              }
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "App Managed State Binding",
        "type": "object",
        "x-speakeasy-name-override": "AppManagedStateBinding"
      },
      "c1.api.app.v1.AppManagedStateBindingExpandMask": {
        "description": "AppManagedStateBindingExpandMask controls which related objects are included in a response.",
        "properties": {
          "paths": {
            "description": "Related objects to include. Supported values are `app_id`, `resource_id`, and `*`.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "App Managed State Binding Expand Mask",
        "type": "object",
        "x-speakeasy-name-override": "AppManagedStateBindingExpandMask"
      },
      "c1.api.app.v1.AppManagedStateBindingRef": {
        "description": "AppManagedStateBindingRef identifies an application discovered by a connector.",
        "properties": {
          "appId": {
            "description": "ID of the application that owns the connector.",
            "type": "string"
          },
          "resourceId": {
            "description": "Resource ID of the discovered application.",
            "type": "string"
          },
          "resourceTypeId": {
            "description": "ID of the resource type used for discovered applications.",
            "type": "string"
          }
        },
        "title": "App Managed State Binding Ref",
        "type": "object",
        "x-speakeasy-name-override": "AppManagedStateBindingRef"
      },
      "c1.api.app.v1.AppManagedStateBindingView": {
        "description": "AppManagedStateBindingView contains a managed-state binding and paths to its related objects.",
        "properties": {
          "appManagementStateBinding": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppManagedStateBinding"
              },
              {
                "type": "null"
              }
            ]
          },
          "appPath": {
            "description": "Path of the application that owns the connector.",
            "type": "string"
          },
          "resourcePath": {
            "description": "Path of the connector resource representing the discovered application.",
            "type": "string"
          }
        },
        "title": "App Managed State Binding View",
        "type": "object",
        "x-speakeasy-name-override": "AppManagedStateBindingView"
      },
      "c1.api.app.v1.AppMatchBatonRef": {
        "description": "AppMatchBatonRef identifies the connector application that should adopt a manually-created application during uplift.",
        "properties": {
          "appId": {
            "description": "Application that owns the connector.",
            "type": "string"
          },
          "connectorId": {
            "description": "Connector that discovers the application.",
            "type": "string"
          },
          "externalId": {
            "description": "Canonical connector-v2 application resource ID in\n `\u003cresource_type\u003e::\u003cresource_id\u003e` form (for example, `app::0oa123`).",
            "type": "string"
          }
        },
        "required": [
          "appId",
          "connectorId",
          "externalId"
        ],
        "title": "App Match Baton Ref",
        "type": "object",
        "x-speakeasy-name-override": "AppMatchBatonRef"
      },
      "c1.api.app.v1.AppPopulationReport": {
        "description": "The AppPopulationReport is a generated report for a specific app that gives details about the app's users. These details include what groups, roles, and other entitlements the users have access to.",
        "properties": {
          "appId": {
            "description": "The appId is the Id of the app which the report is generated for.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "downloadUrl": {
            "description": "The downloadUrl is the url used for downloading the AppPopulationReport.",
            "type": "string"
          },
          "hashes": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "The hashes field contains the file hashes of the report.",
            "type": "object"
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "state": {
            "description": "The state field tracks the state of the AppPopulationReport. This state field can be one of REPORT_STATE_PENDING, REPORT_STATE_UNSPECIFIED, REPORT_STATE_OK, REPORT_STATE_ERROR.",
            "enum": [
              "REPORT_STATE_UNSPECIFIED",
              "REPORT_STATE_PENDING",
              "REPORT_STATE_OK",
              "REPORT_STATE_ERROR"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "App Population Report",
        "type": "object",
        "x-speakeasy-name-override": "AppPopulationReport"
      },
      "c1.api.app.v1.AppRef": {
        "description": "The AppRef message.",
        "properties": {
          "id": {
            "description": "The id field.",
            "type": "string"
          }
        },
        "title": "App Ref",
        "type": "object",
        "x-speakeasy-name-override": "AppRef"
      },
      "c1.api.app.v1.AppReportServiceListResponse": {
        "description": "The AppReportServiceListResponse message contains a list of results and a nextPageToken if applicable.",
        "properties": {
          "list": {
            "description": "The list of results containing up to X results, where X is the page size defined in the request.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppPopulationReport"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken is shown for the next page if the number of results is larger than the max page size.\n The server returns one page of results and the nextPageToken until all results are retreived.\n To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page.",
            "type": "string"
          }
        },
        "title": "App Report Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "AppReportServiceListResponse"
      },
      "c1.api.app.v1.AppResource": {
        "description": "The app resource message is a single resource that can have entitlements.\n\nThis message contains a oneof named metadata. Only a single field of the following list may be set at a time:\n  - secretTrait\n",
        "properties": {
          "accessConfigId": {
            "description": "The access config ID for this resource. May be empty.\n Must be one of the builtin access config IDs or empty.",
            "type": "string"
          },
          "agentTrait": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AgentTrait"
              },
              {
                "type": "null"
              }
            ]
          },
          "annotations": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Bounded key/value metadata bag for IaC marking and customer tags.\n See .rfcs/object-annotations.md §2. Limits: ≤16 entries; keys 1–128\n chars matching ^[A-Za-z][A-Za-z0-9._/-]{0,127}$; values 0–256 chars\n URL-safe ASCII; total serialized ≤ 4096 bytes. Keys matching ^c1/\n are reserved.\n\n Well-known keys: `managed_by`, `iac_workspace`,\n `iac_resource_address`, `iac_tool_version`.\n\n Most AppResources are connector-synced; user-supplied annotations on\n a synced resource will be overwritten by the next sync. The\n annotations bag is most useful on user-created groups (the\n `conductorone_app_resource` TF resource).",
            "type": "object",
            "x-speakeasy-terraform-plan-modifier": {
              "imports": [
                "github.com/conductorone/terraform-provider-conductorone/internal/annotations"
              ],
              "schemaDefinition": "annotations.PlanModifier()"
            }
          },
          "appId": {
            "description": "The app that this resource belongs to.",
            "type": "string"
          },
          "appResourceTypeId": {
            "description": "The resource type that this resource is.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "customDescription": {
            "description": "A custom description that can be set for a resource.",
            "type": "string"
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "The description set for the resource.",
            "type": "string"
          },
          "displayName": {
            "description": "The display name for this resource.",
            "type": "string"
          },
          "externalId": {
            "description": "The upstream product's native external ID for this resource (e.g. an Okta group ID).\n Populated from the connector's external ID during sync.",
            "readOnly": true,
            "type": "string"
          },
          "grantCount": {
            "description": "The number of grants to this resource.",
            "format": "int64",
            "type": "string"
          },
          "id": {
            "description": "The id of the resource.",
            "type": "string"
          },
          "isManuallyManaged": {
            "description": "Whether the resource was created manually in ConductorOne rather than synced from a connector.\n Only manually created resources can be deleted in ConductorOne.",
            "readOnly": true,
            "type": "boolean"
          },
          "matchBatonId": {
            "description": "The matchBatonId field.",
            "type": "string"
          },
          "nhiDetail": {
            "description": "Axis-2 detail refining nhi_type (e.g. \"aws.role.lambda\"). Read-only;\n translated from the model.",
            "readOnly": true,
            "type": "string"
          },
          "nhiType": {
            "description": "The NHI classification (K3 spine) for this resource. Populated for\n non-human-identity resources; UNSPECIFIED for everything else. Mirrors\n agent_trait: read-only and translated from the model enum at the API boundary.",
            "enum": [
              "NHI_TYPE_UNSPECIFIED",
              "NHI_TYPE_APP_REGISTRATION",
              "NHI_TYPE_ASSUMABLE_ROLE",
              "NHI_TYPE_MANAGED_IDENTITY"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "parentAppResourceId": {
            "description": "The parent resource id, if this resource is a child of another resource.",
            "type": "string"
          },
          "parentAppResourceTypeId": {
            "description": "The parent resource type id, if this resource is a child of another resource.",
            "type": "string"
          },
          "profile": {
            "additionalProperties": true,
            "readOnly": true,
            "type": [
              "object",
              "null"
            ]
          },
          "secretTrait": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.SecretTrait"
              },
              {
                "type": "null"
              }
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "App Resource",
        "type": "object",
        "x-speakeasy-entity": "App Resource",
        "x-speakeasy-name-override": "AppResource"
      },
      "c1.api.app.v1.AppResourceExpandMask": {
        "description": "The app resource expand mask lets you get information about related objects from the request.",
        "properties": {
          "paths": {
            "description": "The app resource expanded fields. Maybe be any combination of \"*\", \"app_id\", \"app_resource_type_id\".",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "App Resource Expand Mask",
        "type": "object",
        "x-speakeasy-name-override": "AppResourceExpandMask"
      },
      "c1.api.app.v1.AppResourceRef": {
        "description": "A reference to a specific app resource by its composite key.",
        "properties": {
          "appId": {
            "description": "The ID of the app that owns the resource.",
            "type": "string"
          },
          "appResourceTypeId": {
            "description": "The ID of the resource type that classifies this resource.",
            "type": "string"
          },
          "id": {
            "description": "The unique ID of the app resource.",
            "type": "string"
          }
        },
        "title": "App Resource Ref",
        "type": "object",
        "x-speakeasy-name-override": "AppResourceRef"
      },
      "c1.api.app.v1.AppResourceServiceGetResponse": {
        "description": "The app resource service get response contains the app resource view and array of expanded items indicated by the request's expand mask.",
        "properties": {
          "appResourceView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppResourceView"
              },
              {
                "type": "null"
              }
            ]
          },
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "App Resource Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "AppResourceServiceGetResponse"
      },
      "c1.api.app.v1.AppResourceServiceListResponse": {
        "description": "The AppResourceServiceListResponse message contains a list of results and a nextPageToken if applicable.",
        "properties": {
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "list": {
            "description": "The list of results containing up to X results, where X is the page size defined in the request.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppResourceView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken is shown for the next page if the number of results is larger than the max page size.\n The server returns one page of results and the nextPageToken until all results are retreived.\n To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page.",
            "type": "string"
          }
        },
        "title": "App Resource Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "AppResourceServiceListResponse"
      },
      "c1.api.app.v1.AppResourceServiceUpdateRequestInput": {
        "description": "The request message for updating an app resource.",
        "properties": {
          "appResource": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppResource"
              },
              {
                "type": "null"
              }
            ]
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppResourceExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "App Resource Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "AppResourceServiceUpdateRequest"
      },
      "c1.api.app.v1.AppResourceServiceUpdateResponse": {
        "description": "The response message for updating an app resource.",
        "properties": {
          "appResourceView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppResourceView"
              },
              {
                "type": "null"
              }
            ]
          },
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "App Resource Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "AppResourceServiceUpdateResponse"
      },
      "c1.api.app.v1.AppResourceType": {
        "description": "The AppResourceType is referenced by an app entitlement defining its resource types. Commonly things like Group or Role.",
        "properties": {
          "appId": {
            "description": "The ID of the app that is associated with the app resource type",
            "readOnly": true,
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "displayName": {
            "description": "The display name of the app resource type.",
            "type": "string"
          },
          "id": {
            "description": "The unique ID for the app resource type.",
            "readOnly": true,
            "type": "string"
          },
          "traitIds": {
            "description": "Associated trait ids",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "App Resource Type",
        "type": "object",
        "x-speakeasy-entity": "App Resource Type",
        "x-speakeasy-name-override": "AppResourceType"
      },
      "c1.api.app.v1.AppResourceTypeServiceGetResponse": {
        "description": "The AppResourceTypeServiceGetResponse contains an expanded array containing the expanded values indicated by the expand mask\n in the request and an app resource type view containing the resource type and JSONPATHs indicating which objects are where in the expand mask.",
        "properties": {
          "appResourceTypeView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppResourceTypeView"
              },
              {
                "type": "null"
              }
            ]
          },
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "App Resource Type Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "AppResourceTypeServiceGetResponse"
      },
      "c1.api.app.v1.AppResourceTypeServiceListResponse": {
        "description": "The AppResourceTypeServiceListResponse message contains a list of results and a nextPageToken if applicable.",
        "properties": {
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "list": {
            "description": "The list of results containing up to X results, where X is the page size defined in the request.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppResourceTypeView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken is shown for the next page if the number of results is larger than the max page size.\n The server returns one page of results and the nextPageToken until all results are retreived.\n To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page.",
            "type": "string"
          }
        },
        "title": "App Resource Type Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "AppResourceTypeServiceListResponse"
      },
      "c1.api.app.v1.AppResourceTypeView": {
        "description": "The AppResourceTypeView message.",
        "properties": {
          "appPath": {
            "description": "JSONPATH expression indicating the location of the App object in the  array",
            "type": "string"
          },
          "appResourceType": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppResourceType"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "App Resource Type View",
        "type": "object",
        "x-speakeasy-name-override": "AppResourceTypeView"
      },
      "c1.api.app.v1.AppResourceView": {
        "description": "The app resource view returns an app resource with paths for items in the expand mask filled in when this response is returned and a request expand mask has \"*\" or \"app_id\" or \"resource_type_id\".",
        "properties": {
          "appPath": {
            "description": "JSONPATH expression indicating the location of the App object in the array",
            "type": "string"
          },
          "appResource": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppResource"
              },
              {
                "type": "null"
              }
            ]
          },
          "objectPermissions": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.iam.v1.ActorObjectPermissions"
              },
              {
                "type": "null"
              }
            ]
          },
          "parentResourcePath": {
            "description": "JSONPATH expression indicating the location of the Parent Resource object in the array",
            "type": "string"
          },
          "parentResourceTypePath": {
            "description": "JSONPATH expression indicating the location of the Parent Resource Type object in the array",
            "type": "string"
          },
          "resourceTypePath": {
            "description": "JSONPATH expression indicating the location of the Resource Type object in the array",
            "type": "string"
          }
        },
        "title": "App Resource View",
        "type": "object",
        "x-speakeasy-name-override": "AppResourceView"
      },
      "c1.api.app.v1.AppSecretAdminServiceRevokeRequest": {
        "description": "The AppSecretAdminServiceRevokeRequest message.",
        "properties": {
          "ref": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppSecretRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "App Secret Admin Service Revoke Request",
        "type": "object",
        "x-speakeasy-name-override": "AppSecretAdminServiceRevokeRequest"
      },
      "c1.api.app.v1.AppSecretAdminServiceRevokeResponse": {
        "description": "The AppSecretAdminServiceRevokeResponse message.",
        "properties": {
          "credentialRevocation": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.CredentialRevocation"
              },
              {
                "type": "null"
              }
            ]
          },
          "revoked": {
            "description": "Successful calls queue a revoke and return true.",
            "type": "boolean"
          }
        },
        "title": "App Secret Admin Service Revoke Response",
        "type": "object",
        "x-speakeasy-name-override": "AppSecretAdminServiceRevokeResponse"
      },
      "c1.api.app.v1.AppSecretExpandMask": {
        "description": "The AppSecretExpandMask message.",
        "properties": {
          "paths": {
            "description": "The paths field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "App Secret Expand Mask",
        "type": "object",
        "x-speakeasy-name-override": "AppSecretExpandMask"
      },
      "c1.api.app.v1.AppSecretRef": {
        "description": "The AppSecretRef message.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "appResourceTypeId": {
            "description": "The appResourceTypeId field.",
            "type": "string"
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          }
        },
        "title": "App Secret Ref",
        "type": "object",
        "x-speakeasy-name-override": "AppSecretRef"
      },
      "c1.api.app.v1.AppSecretResource": {
        "description": "The AppSecretResource message.",
        "properties": {
          "appId": {
            "description": "The app that this secret belongs to.",
            "type": "string"
          },
          "appResourceTypeId": {
            "description": "The secret type that this secret is.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "createdByAppUserId": {
            "description": "The ID of the app user that created the AppSecret. Distinct from identity_app_user_id, the current holder.",
            "type": "string"
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "displayName": {
            "description": "The display name for this secret.",
            "type": "string"
          },
          "id": {
            "description": "The id of the secret.",
            "type": "string"
          },
          "identityAppUserId": {
            "description": "The ID of the user that is associated with the AppSecret.",
            "type": "string"
          },
          "lastUsedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "secretCreatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "secretExpiresAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "App Secret Resource",
        "type": "object",
        "x-speakeasy-name-override": "AppSecretResource"
      },
      "c1.api.app.v1.AppSecretResourceView": {
        "description": "The AppSecretResourceView message.\n\nThis message contains a oneof named destination. Only a single field of the following list may be set at a time:\n  - paperVaultId\n  - fullKnowledgeVaultId\n",
        "properties": {
          "alertCount": {
            "description": "The alertCount field.",
            "format": "int32",
            "type": "integer"
          },
          "appPath": {
            "description": "The appPath field.",
            "type": "string"
          },
          "appSecret": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppSecretResource"
              },
              {
                "type": "null"
              }
            ]
          },
          "credentialRevocation": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.CredentialRevocation"
              },
              {
                "type": "null"
              }
            ]
          },
          "fullKnowledgeVaultId": {
            "description": "The fullKnowledgeVaultId field.\nThis field is part of the `destination` oneof.\nSee the documentation for `c1.api.app.v1.AppSecretResourceView` for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "paperVaultId": {
            "description": "The paperVaultId field.\nThis field is part of the `destination` oneof.\nSee the documentation for `c1.api.app.v1.AppSecretResourceView` for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "resourceTypePath": {
            "description": "The resourceTypePath field.",
            "type": "string"
          }
        },
        "title": "App Secret Resource View",
        "type": "object",
        "x-speakeasy-name-override": "AppSecretResourceView"
      },
      "c1.api.app.v1.AppUsageControls": {
        "description": "The AppUsageControls object describes some peripheral configuration for an app.",
        "properties": {
          "appId": {
            "description": "The app that this object belongs to.",
            "type": "string"
          },
          "notify": {
            "description": "Whether or not to notify some if they have access to the app, but has not used it within a configurable amount of time.",
            "type": "boolean"
          },
          "notifyAfterDays": {
            "description": "The duration in days after which we notify users of nonusage.",
            "format": "uint32",
            "type": "integer"
          },
          "revoke": {
            "description": "Whether or not to revoke a grant if they have access to the app, but has not used it within a configurable amount of time.",
            "type": "boolean"
          },
          "revokeAfterDays": {
            "description": "The duration in days after which we revoke users that have not used that grant.",
            "format": "uint32",
            "type": "integer"
          }
        },
        "title": "App Usage Controls",
        "type": "object",
        "x-speakeasy-name-override": "AppUsageControls"
      },
      "c1.api.app.v1.AppUser": {
        "description": "Application User that represents an account in the application.",
        "properties": {
          "agentStatus": {
            "description": "AI-agent lifecycle status when this app user carries the agent trait.\n UNSPECIFIED marks a non-agent account. Read-only; translated from the\n model's agent_trait at the API boundary.",
            "enum": [
              "APP_USER_AGENT_STATUS_UNSPECIFIED",
              "APP_USER_AGENT_STATUS_READY",
              "APP_USER_AGENT_STATUS_DISABLED",
              "APP_USER_AGENT_STATUS_DELETED"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "appId": {
            "description": "The ID of the application.",
            "readOnly": true,
            "type": "string"
          },
          "appUserType": {
            "description": "The appplication user type. Type can be user, system or service.",
            "enum": [
              "APP_USER_TYPE_UNSPECIFIED",
              "APP_USER_TYPE_USER",
              "APP_USER_TYPE_SERVICE_ACCOUNT",
              "APP_USER_TYPE_SYSTEM_ACCOUNT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "displayName": {
            "description": "The display name of the application user.",
            "readOnly": true,
            "type": "string"
          },
          "email": {
            "description": "The email field of the application user.",
            "readOnly": true,
            "type": "string"
          },
          "emails": {
            "description": "The emails field of the application user.",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "employeeIds": {
            "description": "The employee IDs field of the application user.",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "id": {
            "description": "A unique idenditfier of the application user.",
            "readOnly": true,
            "type": "string"
          },
          "identityUserId": {
            "description": "The conductor one user ID of the account owner.",
            "readOnly": true,
            "type": "string"
          },
          "isExternal": {
            "description": "The isExternal field.",
            "readOnly": true,
            "type": "boolean"
          },
          "nhiDetail": {
            "description": "Axis-2 detail refining nhi_type (e.g. \"aws.role.lambda\"). Read-only.",
            "readOnly": true,
            "type": "string"
          },
          "nhiType": {
            "description": "NHI classification when this app user carries the non-human-identity trait.\n Read-only; translated from the model's nhi_trait at the API boundary.",
            "enum": [
              "APP_USER_NHI_TYPE_UNSPECIFIED",
              "APP_USER_NHI_TYPE_APP_REGISTRATION",
              "APP_USER_NHI_TYPE_ASSUMABLE_ROLE",
              "APP_USER_NHI_TYPE_MANAGED_IDENTITY"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "profile": {
            "additionalProperties": true,
            "readOnly": true,
            "type": [
              "object",
              "null"
            ]
          },
          "status": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppUserStatus"
              },
              {
                "type": "null"
              }
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "username": {
            "description": "The username field of the application user.",
            "readOnly": true,
            "type": "string"
          },
          "usernames": {
            "description": "The usernames field of the application user.",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "App User",
        "type": "object",
        "x-speakeasy-name-override": "AppUser"
      },
      "c1.api.app.v1.AppUserCredential": {
        "description": "A credentials for the Application User that represents an account in the application.\n\nThis message contains a oneof named credential. Only a single field of the following list may be set at a time:\n  - encryptedData\n",
        "properties": {
          "appId": {
            "description": "The ID of the application.",
            "readOnly": true,
            "type": "string"
          },
          "appUserId": {
            "description": "A unique identifier of the application user.",
            "readOnly": true,
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "encryptedData": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.EncryptedData"
              },
              {
                "type": "null"
              }
            ]
          },
          "expiresAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "A unique identifier of the credential.",
            "readOnly": true,
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "App User Credential",
        "type": "object",
        "x-speakeasy-name-override": "AppUserCredential"
      },
      "c1.api.app.v1.AppUserExpandMask": {
        "description": "The AppUserExpandMask message contains a list of paths to expand in the response.",
        "properties": {
          "paths": {
            "description": "The paths to expand in the response. May be any combination of \"*\", \"identity_user_id\", \"app_id\", and \"last_usage\".",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "App User Expand Mask",
        "type": "object",
        "x-speakeasy-name-override": "AppUserExpandMask"
      },
      "c1.api.app.v1.AppUserMapper": {
        "description": "AppUserMapper configures custom account mapping for uplift.",
        "properties": {
          "appId": {
            "description": "The app this mapper belongs to.",
            "readOnly": true,
            "type": "string"
          },
          "mappingCases": {
            "description": "Ordered list of match cases. Each case defines a pair of CEL key extractors.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppUserMapperMatchCase"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "App User Mapper",
        "type": "object",
        "x-speakeasy-name-override": "AppUserMapper"
      },
      "c1.api.app.v1.AppUserMapperMatchCase": {
        "description": "AppUserMapperMatchCase defines a single matching rule for uplift account mapping.",
        "properties": {
          "appId": {
            "description": "The app this match case belongs to.",
            "readOnly": true,
            "type": "string"
          },
          "appUserKeyCel": {
            "description": "CEL expression evaluated against an AppUser to produce match key(s).",
            "type": "string"
          },
          "caseIndex": {
            "description": "The ordered index of this match case within the mapper.",
            "format": "uint32",
            "readOnly": true,
            "type": "integer"
          },
          "userKeyCel": {
            "description": "CEL expression evaluated against a User to produce match key(s).",
            "type": "string"
          }
        },
        "title": "App User Mapper Match Case",
        "type": "object",
        "x-speakeasy-name-override": "AppUserMapperMatchCase"
      },
      "c1.api.app.v1.AppUserRef": {
        "description": "The AppUserRef message.",
        "properties": {
          "appId": {
            "description": "The ID of the application.",
            "type": "string"
          },
          "id": {
            "description": "The ID of the app user.",
            "type": "string"
          }
        },
        "title": "App User Ref",
        "type": "object",
        "x-speakeasy-name-override": "AppUserRef"
      },
      "c1.api.app.v1.AppUserServiceListCredentialsResponse": {
        "description": "The response message for listing credentials of an app user.",
        "properties": {
          "list": {
            "description": "The list of credential results.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppUserCredential"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The token for fetching the next page of results.",
            "type": "string"
          }
        },
        "title": "App User Service List Credentials Response",
        "type": "object",
        "x-speakeasy-name-override": "AppUserServiceListCredentialsResponse"
      },
      "c1.api.app.v1.AppUserServiceListResponse": {
        "description": "The response message for listing app users.",
        "properties": {
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "list": {
            "description": "The list of app user results.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppUserView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The token for fetching the next page of results.",
            "type": "string"
          }
        },
        "title": "App User Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "AppUserServiceListResponse"
      },
      "c1.api.app.v1.AppUserServiceSearchRequest": {
        "description": "Search App users based on filters specified in the request body",
        "properties": {
          "agentStatuses": {
            "description": "Restrict to app users whose agent trait lifecycle status (agent_status)\n matches one of these values. When empty, agent_status is not used as a filter.",
            "items": {
              "enum": [
                "APP_USER_AGENT_STATUS_UNSPECIFIED",
                "APP_USER_AGENT_STATUS_READY",
                "APP_USER_AGENT_STATUS_DISABLED",
                "APP_USER_AGENT_STATUS_DELETED"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appId": {
            "description": "The app ID to restrict the search to.",
            "type": "string"
          },
          "appIds": {
            "description": "A list of app IDs to restrict the search to.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appUserDomains": {
            "description": "A list of account domains to restrict the search to.",
            "items": {
              "enum": [
                "APP_USER_DOMAIN_UNSPECIFIED",
                "APP_USER_DOMAIN_EXTERNAL",
                "APP_USER_DOMAIN_TRUSTED"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appUserIds": {
            "description": "A list of app user IDs to restrict the search to.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appUserStatusDetails": {
            "description": "A list of app user status details to restrict the search to.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appUserStatuses": {
            "description": "A list of app user statuses to restrict the search to.",
            "items": {
              "enum": [
                "STATUS_UNSPECIFIED",
                "STATUS_ENABLED",
                "STATUS_DISABLED",
                "STATUS_DELETED"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appUserTypes": {
            "description": "A list of app user types to restrict the search to.",
            "items": {
              "enum": [
                "APP_USER_TYPE_UNSPECIFIED",
                "APP_USER_TYPE_USER",
                "APP_USER_TYPE_SERVICE_ACCOUNT",
                "APP_USER_TYPE_SYSTEM_ACCOUNT"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "excludeAppUserIds": {
            "description": "A list of app user IDs to remove from the results.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "excludeDeletedApps": {
            "description": "When true, excludes app users belonging to soft-deleted apps.",
            "type": "boolean"
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppUserExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "nhiTypes": {
            "description": "Restrict to app users whose NHI trait classification (nhi_type) matches one of\n these values. When empty, nhi_type is not used as a filter.",
            "items": {
              "enum": [
                "APP_USER_NHI_TYPE_UNSPECIFIED",
                "APP_USER_NHI_TYPE_APP_REGISTRATION",
                "APP_USER_NHI_TYPE_ASSUMABLE_ROLE",
                "APP_USER_NHI_TYPE_MANAGED_IDENTITY"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pageSize": {
            "description": "The pageSize where 0 \u003c= pageSize \u003c= 100. Values \u003c 10 will be set to 10. A value of 0 returns the default page size (currently 25)",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          },
          "query": {
            "description": "Query the apps with a fuzzy search on display name and description.",
            "type": "string"
          },
          "refs": {
            "description": "A list of app users to limit the search to.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppUserRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "sortBy": {
            "description": "Ordering of the results. Defaults to display-name ordering.",
            "enum": [
              "APP_USER_SEARCH_SORT_BY_UNSPECIFIED",
              "APP_USER_SEARCH_SORT_BY_APP"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "userIds": {
            "description": "A list of user IDs to restrict the search by.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "withOpenFindings": {
            "description": "When true, restrict results to app users that have at least one open finding\n (index-backed EXISTS semi-join). When false/unset, results are unfiltered.",
            "type": "boolean"
          },
          "withoutResponsibleParty": {
            "description": "When true, restrict results to app users with no responsible party\n (identity_user_id empty) — i.e. unowned, for any app-user type.",
            "type": "boolean"
          }
        },
        "title": "App User Service Search Request",
        "type": "object",
        "x-speakeasy-name-override": "AppUserServiceSearchRequest"
      },
      "c1.api.app.v1.AppUserServiceSearchResponse": {
        "description": "The AppUserServiceSearchResponse message.",
        "properties": {
          "expanded": {
            "description": "List of related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "list": {
            "description": "The list of results containing up to X results, where X is the page size defined in the request.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppUserView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken is shown for the next page if the number of results is larger than the max page size.\n The server returns one page of results and the nextPageToken until all results are retrieved.\n To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page.",
            "type": "string"
          }
        },
        "title": "App User Service Search Response",
        "type": "object",
        "x-speakeasy-name-override": "AppUserServiceSearchResponse"
      },
      "c1.api.app.v1.AppUserServiceUpdateRequestInput": {
        "description": "The AppUserServiceUpdateRequest message contains the app user and the fields to be updated.",
        "properties": {
          "appUser": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppUser"
              },
              {
                "type": "null"
              }
            ]
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppUserExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "App User Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "AppUserServiceUpdateRequest"
      },
      "c1.api.app.v1.AppUserServiceUpdateResponse": {
        "description": "The AppUserServiceUpdateResponse message.",
        "properties": {
          "appUserView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppUserView"
              },
              {
                "type": "null"
              }
            ]
          },
          "expanded": {
            "description": "The expanded field.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "App User Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "AppUserServiceUpdateResponse"
      },
      "c1.api.app.v1.AppUserStatus": {
        "description": "The satus of the applicaiton user.",
        "properties": {
          "details": {
            "description": "The details of applicaiton user status.",
            "readOnly": true,
            "type": "string"
          },
          "status": {
            "description": "The application user status field.",
            "enum": [
              "STATUS_UNSPECIFIED",
              "STATUS_ENABLED",
              "STATUS_DISABLED",
              "STATUS_DELETED"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "App User Status",
        "type": "object",
        "x-speakeasy-name-override": "AppUserStatus"
      },
      "c1.api.app.v1.AppUserView": {
        "description": "The AppUserView contains an app user as well as paths for apps, identity users, and last usage in expanded arrays.",
        "properties": {
          "appPath": {
            "description": "JSONPATH expression indicating where the app is expanded in expanded arrays indicated in the request.",
            "type": "string"
          },
          "appUser": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppUser"
              },
              {
                "type": "null"
              }
            ]
          },
          "identityUserPath": {
            "description": "JSONPATH expression indicating where the identity user is expanded in expanded arrays indicated in the request.",
            "type": "string"
          },
          "lastUsagePath": {
            "description": "JSONPATH expression indicating where the last usage information is expanded in expanded arrays indicated in the request.",
            "type": "string"
          }
        },
        "title": "App User View",
        "type": "object",
        "x-speakeasy-name-override": "AppUserView"
      },
      "c1.api.app.v1.AppUsersForUserServiceListResponse": {
        "description": "The response message for listing app users correlated to a specific C1 user.",
        "properties": {
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "list": {
            "description": "The list of app user results.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppUserView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The token for fetching the next page of results.",
            "type": "string"
          }
        },
        "title": "App Users For User Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "AppUsersForUserServiceListResponse"
      },
      "c1.api.app.v1.CancelAccessRequestDefaultsRequestInput": {
        "description": "The CancelAccessRequestDefaultsRequest message.",
        "title": "Cancel Access Request Defaults Request",
        "type": "object",
        "x-speakeasy-name-override": "CancelAccessRequestDefaultsRequest"
      },
      "c1.api.app.v1.ChangeJustification": {
        "description": "The ChangeJustification message.",
        "properties": {
          "reason": {
            "description": "The operator's reason for changing connector configuration. Change control currently applies to\n Update, UpdateAllowIgnoreList, UpdateSyncResourceTypesConfig, UpdateAdvancedConfig, and UpdateConnectorSchedule only.",
            "type": "string"
          }
        },
        "title": "Change Justification",
        "type": "object",
        "x-speakeasy-name-override": "ChangeJustification"
      },
      "c1.api.app.v1.ConfirmSyncValidRequestInput": {
        "description": "The ConfirmSyncValidRequest message contains the fields required to confirm a sync as valid.",
        "title": "Confirm Sync Valid Request",
        "type": "object",
        "x-speakeasy-name-override": "ConfirmSyncValidRequest"
      },
      "c1.api.app.v1.ConfirmSyncValidResponse": {
        "description": "Empty response body. Status code indicates success.",
        "title": "Confirm Sync Valid Response",
        "type": "object",
        "x-speakeasy-name-override": "ConfirmSyncValidResponse"
      },
      "c1.api.app.v1.Connector": {
        "description": "A Connector is used to sync objects into Apps",
        "properties": {
          "appId": {
            "description": "The id of the app the connector is associated with.",
            "type": "string"
          },
          "canResumeSync": {
            "description": "The canResumeSync field.",
            "type": "boolean"
          },
          "catalogId": {
            "description": "The catalogId describes which catalog entry this connector is an instance of. For example, every Okta connector will have the same catalogId indicating it is an Okta connector.",
            "type": "string"
          },
          "config": {
            "additionalProperties": true,
            "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
            "properties": {
              "@type": {
                "description": "The type of the serialized message.",
                "type": "string"
              }
            },
            "type": [
              "object",
              "null"
            ]
          },
          "configUpdatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "connectorApiVersion": {
            "description": "The connectorApiVersion field.",
            "format": "uint32",
            "readOnly": true,
            "type": "integer"
          },
          "connectorSyncCronSchedule": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.ConnectorSyncCronSchedule"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "The description of the connector.",
            "type": "string"
          },
          "disableCheckBadSync": {
            "description": "The disableCheckBadSync field.",
            "type": "boolean"
          },
          "displayName": {
            "description": "The display name of the connector.",
            "type": "string"
          },
          "downloadUrl": {
            "description": "The downloadUrl for a spreadsheet if the connector was created from uploading a file.",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "description": "The id of the connector.",
            "type": "string"
          },
          "oauthAuthorizedAs": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.OAuth2AuthorizedAs"
              },
              {
                "type": "null"
              }
            ]
          },
          "parallelSyncWorkerCount": {
            "description": "Number of sync workers to use for parallel sync, when the PARALLEL_SYNC feature is enabled. Zero disables parallel sync. Optional on write: omit the field in UpdateAdvancedConfig to leave the stored value unchanged. The public API allows setting up to 4.",
            "format": "int32",
            "type": [
              "integer",
              "null"
            ]
          },
          "profileAllowList": {
            "description": "List of profile attributes to sync, when set only these attributes will be synced",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "profileIgnoreList": {
            "description": "List of profile attributes to ignore (not sync), when set other attributes will be synced, but these will not.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "status": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.ConnectorStatus"
              },
              {
                "type": "null"
              }
            ]
          },
          "syncConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.SyncConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "syncDisabledAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "syncDisabledCategory": {
            "description": "The category of the connector sync that was disabled.",
            "type": "string"
          },
          "syncDisabledReason": {
            "description": "The reason the connector sync was disabled.",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "userIds": {
            "description": "The userIds field is used to define the integration owners of the connector.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Connector",
        "type": "object",
        "x-speakeasy-name-override": "Connector"
      },
      "c1.api.app.v1.ConnectorActionEffect": {
        "description": "The ConnectorActionEffect message.",
        "properties": {
          "appEntitlementId": {
            "description": "The appEntitlementId field.",
            "type": "string"
          },
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "appUserId": {
            "description": "The appUserId field.",
            "type": "string"
          },
          "connectorActionId": {
            "description": "The connectorActionId field.",
            "type": "string"
          },
          "connectorEntitlementId": {
            "description": "The connectorEntitlementId field.",
            "type": "string"
          },
          "connectorGrantId": {
            "description": "The connectorGrantId field.",
            "type": "string"
          },
          "connectorId": {
            "description": "The connectorId field.",
            "type": "string"
          },
          "effectSource": {
            "description": "The effectSource field.",
            "enum": [
              "CONNECTOR_ACTION_EFFECT_SOURCE_UNSPECIFIED",
              "CONNECTOR_ACTION_EFFECT_SOURCE_ACTION_TARGET",
              "CONNECTOR_ACTION_EFFECT_SOURCE_CONNECTOR_RESPONSE",
              "CONNECTOR_ACTION_EFFECT_SOURCE_GRANT_REPLACED",
              "CONNECTOR_ACTION_EFFECT_SOURCE_DEFAULT_REPLACEMENT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "effectType": {
            "description": "The effectType field.",
            "enum": [
              "CONNECTOR_ACTION_EFFECT_TYPE_UNSPECIFIED",
              "CONNECTOR_ACTION_EFFECT_TYPE_GRANT",
              "CONNECTOR_ACTION_EFFECT_TYPE_REVOKE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "exclusionGroupId": {
            "description": "The exclusionGroupId field.",
            "type": "string"
          },
          "replacedConnectorGrantId": {
            "description": "The replacedConnectorGrantId field.",
            "type": "string"
          },
          "unresolvedReason": {
            "description": "The unresolvedReason field.",
            "type": "string"
          }
        },
        "title": "Connector Action Effect",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorActionEffect"
      },
      "c1.api.app.v1.ConnectorCredential": {
        "description": "ConnectorCredential is used by a connector to authenticate with conductor one.",
        "properties": {
          "appId": {
            "description": "The appId of the app the connector is attached to.",
            "type": "string"
          },
          "clientId": {
            "description": "The client id of the ConnectorCredential.",
            "type": "string"
          },
          "clientSecret": {
            "description": "The client secret of the ConnectorCredential. It's only returned on creation.",
            "type": "string"
          },
          "connectorId": {
            "description": "The connectorId of the connector the credential is associated with.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "displayName": {
            "description": "The display name of the ConnectorCredential.",
            "type": "string"
          },
          "expiresTime": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "The id of the ConnectorCredential.",
            "type": "string"
          },
          "lastUsedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Connector Credential",
        "type": "object",
        "x-speakeasy-entity": "ConnectorCredential",
        "x-speakeasy-name-override": "ConnectorCredential"
      },
      "c1.api.app.v1.ConnectorExpandMask": {
        "description": "The ConnectorExpandMask is used to expand related objects on a connector.",
        "properties": {
          "paths": {
            "description": "Paths that you want expanded in the response. Possible values are \"app_id\",\n \"user_ids\", \"capabilities\" and \"*\".",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Connector Expand Mask",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorExpandMask"
      },
      "c1.api.app.v1.ConnectorRef": {
        "description": "The ConnectorRef message.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          }
        },
        "title": "Connector Ref",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorRef"
      },
      "c1.api.app.v1.ConnectorScheduleCron": {
        "description": "A cron-based schedule definition for connector syncs.",
        "properties": {
          "cronSpec": {
            "description": "The cron expression defining the sync schedule.",
            "type": "string"
          },
          "timezone": {
            "description": "The IANA timezone name for the cron schedule (e.g., \"America/Los_Angeles\").",
            "type": "string"
          }
        },
        "title": "Connector Schedule Cron",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorScheduleCron"
      },
      "c1.api.app.v1.ConnectorServiceCreateDelegatedRequestInput": {
        "description": "The ConnectorServiceCreateDelegatedRequest message contains the fields required to create a connector.",
        "properties": {
          "appEntitlementOwnerRefs": {
            "description": "Sets entitlement owners on the app.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appManagedStateBindingRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppManagedStateBindingRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "catalogId": {
            "description": "The catalogId describes which catalog entry this connector is an instance of. For example, every Okta connector will have the same catalogId indicating it is an Okta connector.",
            "type": "string"
          },
          "description": {
            "description": "The description of the connector.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName of the connector.",
            "type": "string"
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.ConnectorExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "userIds": {
            "description": "The userIds field is used to define the integration owners of the connector.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Connector Service Create Delegated Request",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorServiceCreateDelegatedRequest"
      },
      "c1.api.app.v1.ConnectorServiceCreateRequestInput": {
        "description": "The ConnectorServiceCreateRequest message.",
        "properties": {
          "catalogId": {
            "description": "The catalogId field.",
            "type": "string"
          },
          "config": {
            "additionalProperties": true,
            "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
            "properties": {
              "@type": {
                "description": "The type of the serialized message.",
                "type": "string"
              }
            },
            "type": [
              "object",
              "null"
            ]
          },
          "description": {
            "description": "The description field.",
            "type": "string"
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.ConnectorExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "userIds": {
            "description": "The userIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Connector Service Create Request",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorServiceCreateRequest"
      },
      "c1.api.app.v1.ConnectorServiceCreateResponse": {
        "description": "The ConnectorServiceCreateResponse is the response returned from creating a connector.",
        "properties": {
          "connectorView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.ConnectorView"
              },
              {
                "type": "null"
              }
            ]
          },
          "expanded": {
            "description": "The array of expanded items indicated by the request.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Connector Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorServiceCreateResponse"
      },
      "c1.api.app.v1.ConnectorServiceDeleteRequestInput": {
        "description": "ConnectorServiceDeleteRequest is a request for deleting a connector. It uses URL values for input.",
        "title": "Connector Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorServiceDeleteRequest"
      },
      "c1.api.app.v1.ConnectorServiceDeleteResponse": {
        "description": "Empty response body. Status code indicates success.",
        "title": "Connector Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorServiceDeleteResponse"
      },
      "c1.api.app.v1.ConnectorServiceGetCredentialsResponse": {
        "description": "ConnectorServiceGetCredentialsResponse is the response returned by the get method.",
        "properties": {
          "credential": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.ConnectorCredential"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Connector Service Get Credentials Response",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorServiceGetCredentialsResponse"
      },
      "c1.api.app.v1.ConnectorServiceGetResponse": {
        "description": "The ConnectorServiceGetResponse message contains the connectorView, and an expand mask.",
        "properties": {
          "connectorView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.ConnectorView"
              },
              {
                "type": "null"
              }
            ]
          },
          "expanded": {
            "description": "The array of expanded items indicated by the request.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Connector Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorServiceGetResponse"
      },
      "c1.api.app.v1.ConnectorServiceListResponse": {
        "description": "The ConnectorServiceListResponse message contains a list of results and a nextPageToken if applicable",
        "properties": {
          "expanded": {
            "description": "List of serialized related objects",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "list": {
            "description": "The list of results containing up to X results, where X is the page size defined in the request",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.ConnectorView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken is shown for the next page if the number of results is larger than the max page size. The server returns one page of results and the nextPageToken until all results are retreived. To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page.",
            "type": "string"
          }
        },
        "title": "Connector Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorServiceListResponse"
      },
      "c1.api.app.v1.ConnectorServiceRevokeCredentialRequestInput": {
        "description": "ConnectorServiceRevokeCredentialRequest is a request for revoking connector credentials. It uses URL values for input.",
        "title": "Connector Service Revoke Credential Request",
        "type": "object",
        "x-speakeasy-entity": "ConnectorCredential",
        "x-speakeasy-name-override": "ConnectorServiceRevokeCredentialRequest"
      },
      "c1.api.app.v1.ConnectorServiceRevokeCredentialResponse": {
        "description": "Empty response body. Status code indicates success.",
        "title": "Connector Service Revoke Credential Response",
        "type": "object",
        "x-speakeasy-entity": "ConnectorCredential",
        "x-speakeasy-name-override": "ConnectorServiceRevokeCredentialResponse"
      },
      "c1.api.app.v1.ConnectorServiceRotateCredentialRequest": {
        "description": "ConnectorServiceRotateCredentialRequest is a request for rotating connector credentials. It uses URL values for input.",
        "properties": {
          "appId": {
            "description": "The appId of the app the connector is attached to.",
            "type": "string"
          },
          "connectorId": {
            "description": "The connectorId of the connector that we are rotating the credentials for.",
            "type": "string"
          }
        },
        "title": "Connector Service Rotate Credential Request",
        "type": "object",
        "x-speakeasy-entity": "ConnectorCredential",
        "x-speakeasy-name-override": "ConnectorServiceRotateCredentialRequest"
      },
      "c1.api.app.v1.ConnectorServiceRotateCredentialResponse": {
        "description": "ConnectorServiceRotateCredentialResponse is the response returned by the rotate method.",
        "properties": {
          "credential": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.ConnectorCredential"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Connector Service Rotate Credential Response",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorServiceRotateCredentialResponse"
      },
      "c1.api.app.v1.ConnectorServiceUpdateDelegatedRequestInput": {
        "description": "The ConnectorServiceUpdateDelegatedRequest message contains the fields required to update a connector.",
        "properties": {
          "connector": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.Connector"
              },
              {
                "type": "null"
              }
            ]
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.ConnectorExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Connector Service Update Delegated Request",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorServiceUpdateDelegatedRequest"
      },
      "c1.api.app.v1.ConnectorServiceUpdateRequestInput": {
        "description": "The ConnectorServiceUpdateRequest message contains the fields required to update a connector.",
        "properties": {
          "connector": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.Connector"
              },
              {
                "type": "null"
              }
            ]
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.ConnectorExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "justification": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.ChangeJustification"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Connector Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorServiceUpdateRequest"
      },
      "c1.api.app.v1.ConnectorServiceUpdateResponse": {
        "description": "ConnectorServiceUpdateResponse is the response returned by the update method.",
        "properties": {
          "connectorView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.ConnectorView"
              },
              {
                "type": "null"
              }
            ]
          },
          "expanded": {
            "description": "The array of expanded items indicated by the request.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Connector Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorServiceUpdateResponse"
      },
      "c1.api.app.v1.ConnectorStatus": {
        "description": "The status field on the connector is used to track the status of the connectors sync, and when syncing last started, completed, or caused the connector to update.",
        "properties": {
          "completedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "errorKind": {
            "description": "Classification of last_error. Unspecified when no classified error is present.",
            "enum": [
              "ERROR_KIND_UNSPECIFIED",
              "ERROR_KIND_AUTHORED_RUNTIME_SERVE_REFUSED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "lastError": {
            "description": "The last error encountered by the connector.",
            "type": "string"
          },
          "startedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "description": "The status of the connector sync.",
            "enum": [
              "SYNC_STATUS_UNSPECIFIED",
              "SYNC_STATUS_RUNNING",
              "SYNC_STATUS_DONE",
              "SYNC_STATUS_ERROR",
              "SYNC_STATUS_DISABLED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Connector Status",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorStatus"
      },
      "c1.api.app.v1.ConnectorSyncCronSchedule": {
        "description": "The ConnectorSyncCronSchedule message.",
        "properties": {
          "cronSpec": {
            "description": "The cronSpec field.",
            "type": "string"
          },
          "start": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "timezone": {
            "description": "The timezone field.",
            "type": "string"
          }
        },
        "title": "Connector Sync Cron Schedule",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorSyncCronSchedule"
      },
      "c1.api.app.v1.ConnectorView": {
        "description": "The ConnectorView object provides a connector response object, as well as JSONPATHs to related objects provided by expanders.",
        "properties": {
          "appPath": {
            "description": "JSONPATH expression indicating the location of the App object in the expanded array.",
            "type": "string"
          },
          "capabilitiesPath": {
            "description": "JSONPATH expression indicating the location of the ConnectorCapabilities object in the expanded array.",
            "type": "string"
          },
          "connector": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.Connector"
              },
              {
                "type": "null"
              }
            ]
          },
          "usersPath": {
            "description": "JSONPATH expression indicating the location of the User object in the expanded array. This is the user that is a direct target of the ticket without a specific relationship to a potentially non-existent app user.",
            "type": "string"
          }
        },
        "title": "Connector View",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorView"
      },
      "c1.api.app.v1.CreateAppEntitlementProxyRequestInput": {
        "description": "The request message for creating an entitlement proxy binding.",
        "properties": {
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementProxyExpandMask"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create App Entitlement Proxy Request",
        "type": "object",
        "x-speakeasy-name-override": "CreateAppEntitlementProxyRequest"
      },
      "c1.api.app.v1.CreateAppEntitlementProxyResponse": {
        "description": "The response message for creating an entitlement proxy binding.",
        "properties": {
          "appProxyEntitlementView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementProxyView"
              },
              {
                "type": "null"
              }
            ]
          },
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Create App Entitlement Proxy Response",
        "type": "object",
        "x-speakeasy-name-override": "CreateAppEntitlementProxyResponse"
      },
      "c1.api.app.v1.CreateAppEntitlementRequestInput": {
        "description": "The CreateAppEntitlementRequest message.\n\nThis message contains a oneof named max_grant_duration. Only a single field of the following list may be set at a time:\n  - durationUnset\n  - durationGrant\n",
        "properties": {
          "alias": {
            "description": "A unique alias for the entitlement, used for programmatic lookups and Cone.",
            "type": "string"
          },
          "annotations": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Bounded key/value metadata bag for IaC marking and customer tags.\n See .rfcs/object-annotations.md §2. Limits: ≤16 entries; keys 1–128\n chars matching ^[A-Za-z][A-Za-z0-9._/-]{0,127}$; values 0–256 chars\n matching URL-safe ASCII; total serialized ≤4096 bytes. Keys starting\n with `c1/` are reserved for server-managed use and rejected on write.\n\n Well-known keys: `managed_by`, `iac_workspace`,\n `iac_resource_address`, `iac_tool_version`.",
            "type": "object",
            "x-speakeasy-terraform-plan-modifier": {
              "imports": [
                "github.com/conductorone/terraform-provider-conductorone/internal/annotations"
              ],
              "schemaDefinition": "annotations.PlanModifier()"
            }
          },
          "appEntitlementOwnerIds": {
            "description": "The IDs of users to set as owners of this entitlement.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appResourceId": {
            "description": "The ID of the resource that this entitlement belongs to.",
            "type": "string"
          },
          "appResourceTypeId": {
            "description": "The ID of the resource type that this entitlement belongs to.",
            "type": "string"
          },
          "certifyPolicyId": {
            "description": "The ID of the policy to use for certification tasks.",
            "type": "string"
          },
          "complianceFrameworkValueIds": {
            "description": "The IDs of compliance frameworks to associate with this entitlement (e.g., SOX, HIPAA).",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "deprovisionerPolicy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ProvisionPolicy"
              },
              {
                "type": "null"
              }
            ]
          },
          "description": {
            "description": "The description of the new entitlement.",
            "type": "string"
          },
          "displayName": {
            "description": "The display name of the new entitlement.",
            "type": "string"
          },
          "durationGrant": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "durationUnset": {
            "type": [
              "object",
              "null"
            ]
          },
          "emergencyGrantEnabled": {
            "description": "Whether emergency grant requests are enabled for this entitlement.",
            "type": "boolean"
          },
          "emergencyGrantPolicyId": {
            "description": "The ID of the policy to use for emergency grant tasks. Required if emergency_grant_enabled is true.",
            "type": "string"
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "grantPolicyId": {
            "description": "The ID of the policy to use for grant request tasks.",
            "type": "string"
          },
          "matchBatonId": {
            "description": "If supplied, it's implied that the entitlement is created before sync and needs to be merged with connector entitlement.",
            "type": "string"
          },
          "overrideAccessRequestsDefaults": {
            "description": "Whether to override the app-level access request defaults for this entitlement.",
            "type": "boolean"
          },
          "provisionPolicy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ProvisionPolicy"
              },
              {
                "type": "null"
              }
            ]
          },
          "purpose": {
            "description": "The purpose of the entitlement (e.g., assignment, permission, ownership).",
            "enum": [
              "APP_ENTITLEMENT_PURPOSE_VALUE_UNSPECIFIED",
              "APP_ENTITLEMENT_PURPOSE_VALUE_ASSIGNMENT",
              "APP_ENTITLEMENT_PURPOSE_VALUE_PERMISSION",
              "APP_ENTITLEMENT_PURPOSE_VALUE_OWNERSHIP"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "revokePolicyId": {
            "description": "The ID of the policy to use for revoke request tasks.",
            "type": "string"
          },
          "riskLevelValueId": {
            "description": "The ID of the risk level to assign to this entitlement.",
            "type": "string"
          },
          "slug": {
            "description": "A short label describing the permission the entitlement grants (e.g., \"Admin\", \"Read\").",
            "type": "string"
          }
        },
        "required": [
          "displayName"
        ],
        "title": "Create App Entitlement Request",
        "type": "object",
        "x-speakeasy-name-override": "CreateAppEntitlementRequest"
      },
      "c1.api.app.v1.CreateAppEntitlementResponse": {
        "description": "The CreateAppEntitlementResponse message.",
        "properties": {
          "appEntitlementView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementView"
              },
              {
                "type": "null"
              }
            ]
          },
          "expanded": {
            "description": "The expanded field.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Create App Entitlement Response",
        "type": "object",
        "x-speakeasy-name-override": "CreateAppEntitlementResponse"
      },
      "c1.api.app.v1.CreateAppEntitlementRoutingRuleRequestInput": {
        "description": "The CreateAppEntitlementRoutingRuleRequest message.",
        "properties": {
          "condition": {
            "description": "CEL expression evaluated against the entitlement routing rule context.\n Empty string is valid and matches every target not matched earlier.",
            "type": "string"
          },
          "description": {
            "description": "The description field.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "enabled": {
            "description": "The enabled field.",
            "type": "boolean"
          },
          "priority": {
            "description": "A 1-indexed insertion slot; the server clamps it into [1, N+1] and re-packs\n siblings densely. Omit (or 0) to append the rule last.",
            "format": "int32",
            "type": "integer"
          },
          "settings": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRoutingRuleSettings"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create App Entitlement Routing Rule Request",
        "type": "object",
        "x-speakeasy-name-override": "CreateAppEntitlementRoutingRuleRequest"
      },
      "c1.api.app.v1.CreateAppEntitlementRoutingRuleResponse": {
        "description": "The CreateAppEntitlementRoutingRuleResponse message.",
        "properties": {
          "routingRule": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRoutingRule"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create App Entitlement Routing Rule Response",
        "type": "object",
        "x-speakeasy-name-override": "CreateAppEntitlementRoutingRuleResponse"
      },
      "c1.api.app.v1.CreateAppRequest": {
        "description": "The CreateAppRequest message is used to create a new app.",
        "properties": {
          "annotations": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Bounded key/value metadata bag for IaC marking and customer tags.\n See .rfcs/object-annotations.md §2. Limits: ≤16 entries; keys 1–128\n chars matching ^[A-Za-z][A-Za-z0-9._/-]{0,127}$; values 0–256 chars\n matching URL-safe ASCII; total serialized ≤4096 bytes. Keys starting\n with `c1/` are reserved for server-managed use and rejected on write.\n\n Well-known keys: `managed_by`, `iac_workspace`,\n `iac_resource_address`, `iac_tool_version`.",
            "type": "object",
            "x-speakeasy-terraform-plan-modifier": {
              "imports": [
                "github.com/conductorone/terraform-provider-conductorone/internal/annotations"
              ],
              "schemaDefinition": "annotations.PlanModifier()"
            }
          },
          "appEntitlementOwnerRefs": {
            "description": "Initial entitlement owners for ordinary API creation. Requests with `match_baton_ref` must leave this empty; Terraform manages owners with `conductorone_app_owner_entitlement`.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "certifyPolicyId": {
            "description": "Creates the app with this certify policy.",
            "type": "string"
          },
          "description": {
            "description": "Creates the app with this description.",
            "type": "string"
          },
          "displayName": {
            "description": "Creates the app with this display name.",
            "type": "string"
          },
          "grantPolicyId": {
            "description": "Creates the app with this grant policy.",
            "type": "string"
          },
          "identityMatching": {
            "description": "Define the app user identity matching strategy for this app.",
            "enum": [
              "APP_USER_IDENTITY_MATCHING_UNSPECIFIED",
              "APP_USER_IDENTITY_MATCHING_STRICT",
              "APP_USER_IDENTITY_MATCHING_DISPLAY_NAME",
              "APP_USER_IDENTITY_MATCHING_CUSTOM"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "instructions": {
            "description": "Instructions shown to users in the access request form when requesting access for this app.",
            "type": "string"
          },
          "matchBatonRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppMatchBatonRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "monthlyCostUsd": {
            "description": "Creates the app with this monthly cost per seat. Must be between 0 and 1,000,000 (USD).",
            "format": "int32",
            "type": "integer"
          },
          "owners": {
            "description": "Initial user owners for ordinary API creation. Requests with `match_baton_ref` must leave this empty; Terraform manages owners with `conductorone_app_owner_user`.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "revokePolicyId": {
            "description": "Creates the app with this revoke policy.",
            "type": "string"
          },
          "strictAccessEntitlementProvisioning": {
            "description": "This flag enforces a provisioning mode where the access entitlement is always included in the provisioning flow, if the app user doesn't exist",
            "type": "boolean"
          }
        },
        "required": [
          "displayName"
        ],
        "title": "Create App Request",
        "type": "object",
        "x-speakeasy-entity": "App",
        "x-speakeasy-name-override": "CreateAppRequest"
      },
      "c1.api.app.v1.CreateAppResponse": {
        "description": "CreateAppResponse contains the newly created application.",
        "properties": {
          "app": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.App"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create App Response",
        "type": "object",
        "x-speakeasy-name-override": "CreateAppResponse"
      },
      "c1.api.app.v1.CreateAutomationRequestInput": {
        "description": "The CreateAutomationRequest message.",
        "properties": {
          "automation": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementAutomation"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create Automation Request",
        "type": "object",
        "x-speakeasy-name-override": "CreateAutomationRequest"
      },
      "c1.api.app.v1.CreateAutomationResponse": {
        "description": "The CreateAutomationResponse message.",
        "properties": {
          "automation": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementAutomation"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create Automation Response",
        "type": "object",
        "x-speakeasy-name-override": "CreateAutomationResponse"
      },
      "c1.api.app.v1.CreateManuallyManagedAppResourceRequestInput": {
        "description": "The request message for creating a manually managed app resource.",
        "properties": {
          "annotations": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Bounded key/value metadata bag for IaC marking and customer tags.\n See .rfcs/object-annotations.md §2. Limits: ≤16 entries; keys 1–128\n chars matching ^[A-Za-z][A-Za-z0-9._/-]{0,127}$; values 0–256 chars\n matching URL-safe ASCII; total serialized ≤4096 bytes. Keys starting\n with `c1/` are reserved for server-managed use and rejected on write.\n\n Well-known keys: `managed_by`, `iac_workspace`,\n `iac_resource_address`, `iac_tool_version`.",
            "type": "object",
            "x-speakeasy-terraform-plan-modifier": {
              "imports": [
                "github.com/conductorone/terraform-provider-conductorone/internal/annotations"
              ],
              "schemaDefinition": "annotations.PlanModifier()"
            }
          },
          "description": {
            "description": "An optional description for the new resource.",
            "type": "string"
          },
          "displayName": {
            "description": "The display name for the new resource.",
            "type": "string"
          },
          "matchBatonId": {
            "description": "If supplied, it's implied that the resource is created before sync and needs to be merged with connector resource.",
            "type": "string"
          },
          "resourceOwnerUserIds": {
            "description": "C1 user IDs to assign as owners of this resource.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "displayName"
        ],
        "title": "Create Manually Managed App Resource Request",
        "type": "object",
        "x-speakeasy-name-override": "CreateManuallyManagedAppResourceRequest"
      },
      "c1.api.app.v1.CreateManuallyManagedAppResourceResponse": {
        "description": "The response message for creating a manually managed app resource.",
        "properties": {
          "appResource": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppResource"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create Manually Managed App Resource Response",
        "type": "object",
        "x-speakeasy-name-override": "CreateManuallyManagedAppResourceResponse"
      },
      "c1.api.app.v1.CreateManuallyManagedResourceTypeRequestInput": {
        "description": "The request message for creating a manually managed resource type.",
        "properties": {
          "displayName": {
            "description": "The display name for the new resource type.",
            "type": "string"
          },
          "resourceType": {
            "description": "The category of the resource type (e.g., ROLE, GROUP, LICENSE).",
            "enum": [
              "ROLE",
              "GROUP",
              "LICENSE",
              "PROJECT",
              "CATALOG",
              "CUSTOM",
              "VAULT",
              "PROFILE_TYPE",
              "SESSION_POLICY",
              "CLAW_AGENT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "required": [
          "resourceType",
          "displayName"
        ],
        "title": "Create Manually Managed Resource Type Request",
        "type": "object",
        "x-speakeasy-name-override": "CreateManuallyManagedResourceTypeRequest"
      },
      "c1.api.app.v1.CreateManuallyManagedResourceTypeResponse": {
        "description": "The response message for creating a manually managed resource type.",
        "properties": {
          "appResourceType": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppResourceType"
              },
              {
                "type": "null"
              }
            ]
          },
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Create Manually Managed Resource Type Response",
        "type": "object",
        "x-speakeasy-name-override": "CreateManuallyManagedResourceTypeResponse"
      },
      "c1.api.app.v1.CredentialRevocation": {
        "description": "CredentialRevocation describes the current revoke eligibility of a\n credential C1 issued through credential vending.",
        "properties": {
          "state": {
            "description": "The state field.",
            "enum": [
              "CREDENTIAL_REVOCATION_STATE_UNSPECIFIED",
              "CREDENTIAL_REVOCATION_STATE_READY",
              "CREDENTIAL_REVOCATION_STATE_REVOKING",
              "CREDENTIAL_REVOCATION_STATE_REVOKE_FAILED",
              "CREDENTIAL_REVOCATION_STATE_UNAVAILABLE",
              "CREDENTIAL_REVOCATION_STATE_REVOKED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Credential Revocation",
        "type": "object",
        "x-speakeasy-name-override": "CredentialRevocation"
      },
      "c1.api.app.v1.DeleteAppEntitlementOwnersRequestInput": {
        "description": "The request message for deleting app entitlement owners.",
        "title": "Delete App Entitlement Owners Request",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAppEntitlementOwnersRequest"
      },
      "c1.api.app.v1.DeleteAppEntitlementOwnersResponse": {
        "description": "the empty response message for deleting app entitlement owners.",
        "title": "Delete App Entitlement Owners Response",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAppEntitlementOwnersResponse"
      },
      "c1.api.app.v1.DeleteAppEntitlementProxyRequestInput": {
        "description": "The request message for deleting an entitlement proxy binding.",
        "title": "Delete App Entitlement Proxy Request",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAppEntitlementProxyRequest"
      },
      "c1.api.app.v1.DeleteAppEntitlementProxyResponse": {
        "description": "The empty response message for deleting an entitlement proxy binding.",
        "title": "Delete App Entitlement Proxy Response",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAppEntitlementProxyResponse"
      },
      "c1.api.app.v1.DeleteAppEntitlementRequestInput": {
        "description": "The DeleteAppEntitlementRequest message.",
        "title": "Delete App Entitlement Request",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAppEntitlementRequest"
      },
      "c1.api.app.v1.DeleteAppEntitlementResponse": {
        "description": "The DeleteAppEntitlementResponse message.",
        "title": "Delete App Entitlement Response",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAppEntitlementResponse"
      },
      "c1.api.app.v1.DeleteAppEntitlementRoutingRuleRequestInput": {
        "description": "The DeleteAppEntitlementRoutingRuleRequest message.",
        "title": "Delete App Entitlement Routing Rule Request",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAppEntitlementRoutingRuleRequest"
      },
      "c1.api.app.v1.DeleteAppEntitlementRoutingRuleResponse": {
        "description": "The DeleteAppEntitlementRoutingRuleResponse message.",
        "title": "Delete App Entitlement Routing Rule Response",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAppEntitlementRoutingRuleResponse"
      },
      "c1.api.app.v1.DeleteAppOwnersRequestInput": {
        "description": "The request message for deleting app owners.",
        "properties": {
          "userIds": {
            "description": "The user_ids field for the users to set as an owner of the app.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Delete App Owners Request",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAppOwnersRequest"
      },
      "c1.api.app.v1.DeleteAppOwnersResponse": {
        "description": "the empty response message for deleting app owners.",
        "title": "Delete App Owners Response",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAppOwnersResponse"
      },
      "c1.api.app.v1.DeleteAppRequestInput": {
        "description": "Empty request body",
        "title": "Delete App Request",
        "type": "object",
        "x-speakeasy-entity": "App",
        "x-speakeasy-name-override": "DeleteAppRequest"
      },
      "c1.api.app.v1.DeleteAppResourceOwnersRequestInput": {
        "description": "The request message for deleting app resource owners.",
        "title": "Delete App Resource Owners Request",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAppResourceOwnersRequest"
      },
      "c1.api.app.v1.DeleteAppResourceOwnersResponse": {
        "description": "the empty response message for deleting app resource owners.",
        "title": "Delete App Resource Owners Response",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAppResourceOwnersResponse"
      },
      "c1.api.app.v1.DeleteAppResponse": {
        "description": "Empty response body. Status code indicates success.",
        "title": "Delete App Response",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAppResponse"
      },
      "c1.api.app.v1.DeleteAutomationRequestInput": {
        "description": "The DeleteAutomationRequest message.",
        "title": "Delete Automation Request",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAutomationRequest"
      },
      "c1.api.app.v1.DeleteAutomationResponse": {
        "description": "The DeleteAutomationResponse message.",
        "title": "Delete Automation Response",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAutomationResponse"
      },
      "c1.api.app.v1.DeleteManuallyManagedAppResourceRequestInput": {
        "description": "The request message for deleting a manually managed app resource.",
        "title": "Delete Manually Managed App Resource Request",
        "type": "object",
        "x-speakeasy-name-override": "DeleteManuallyManagedAppResourceRequest"
      },
      "c1.api.app.v1.DeleteManuallyManagedAppResourceResponse": {
        "description": "The empty response message for deleting a manually managed app resource.",
        "title": "Delete Manually Managed App Resource Response",
        "type": "object",
        "x-speakeasy-name-override": "DeleteManuallyManagedAppResourceResponse"
      },
      "c1.api.app.v1.DeleteManuallyManagedResourceTypeRequestInput": {
        "description": "The request message for deleting a manually managed resource type.",
        "title": "Delete Manually Managed Resource Type Request",
        "type": "object",
        "x-speakeasy-name-override": "DeleteManuallyManagedResourceTypeRequest"
      },
      "c1.api.app.v1.DeleteManuallyManagedResourceTypeResponse": {
        "description": "The empty response message for deleting a manually managed resource type.",
        "title": "Delete Manually Managed Resource Type Response",
        "type": "object",
        "x-speakeasy-name-override": "DeleteManuallyManagedResourceTypeResponse"
      },
      "c1.api.app.v1.EditorValidateRequest": {
        "description": "The EditorValidateRequest message contains the configuration text to validate.",
        "properties": {
          "text": {
            "description": "The configuration text to validate.",
            "type": "string"
          }
        },
        "title": "Editor Validate Request",
        "type": "object",
        "x-speakeasy-name-override": "EditorValidateRequest"
      },
      "c1.api.app.v1.EditorValidateResponse": {
        "description": "The EditorValidateResponse message contains validation results.",
        "properties": {
          "markers": {
            "description": "The list of diagnostic markers found during validation.",
            "items": {
              "$ref": "#/components/schemas/c1.api.editor.v1.EditorMarker"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Editor Validate Response",
        "type": "object",
        "x-speakeasy-name-override": "EditorValidateResponse"
      },
      "c1.api.app.v1.EncryptedData": {
        "description": "EncryptedData is a message that contains encrypted bytes and metadata.",
        "properties": {
          "description": {
            "description": "The human-readable description of the encrypted data.",
            "readOnly": true,
            "type": "string"
          },
          "encryptedBytes": {
            "description": "The encrypted bytes.",
            "format": "base64",
            "readOnly": true,
            "type": "string"
          },
          "keyId": {
            "description": "The key ID used to encrypt the data.",
            "readOnly": true,
            "type": "string"
          },
          "name": {
            "description": "The human-readable name of the encrypted data.",
            "readOnly": true,
            "type": "string"
          },
          "provider": {
            "description": "The encryption provider used to encrypt the data.",
            "readOnly": true,
            "type": "string"
          },
          "schema": {
            "description": "The (optional) JSON schema of the encrypted data.",
            "readOnly": true,
            "type": "string"
          }
        },
        "title": "Encrypted Data",
        "type": "object",
        "x-speakeasy-name-override": "EncryptedData"
      },
      "c1.api.app.v1.ForceSyncRequestInput": {
        "description": "Signal the connector to start syncing. This puts the sync on the queue. It does not guarantee immediate sync. Long syncs still take minutes to hours.",
        "title": "Force Sync Request",
        "type": "object",
        "x-speakeasy-name-override": "ForceSyncRequest"
      },
      "c1.api.app.v1.ForceSyncResponse": {
        "description": "Empty response body. Status code indicates success. Poll the connector sync status\n for progress after ForceSync accepts the request.",
        "title": "Force Sync Response",
        "type": "object",
        "x-speakeasy-name-override": "ForceSyncResponse"
      },
      "c1.api.app.v1.GetAppEntitlementProxyResponse": {
        "description": "The response message for getting a specific entitlement proxy binding.",
        "properties": {
          "appProxyEntitlementView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementProxyView"
              },
              {
                "type": "null"
              }
            ]
          },
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Get App Entitlement Proxy Response",
        "type": "object",
        "x-speakeasy-name-override": "GetAppEntitlementProxyResponse"
      },
      "c1.api.app.v1.GetAppEntitlementResponse": {
        "description": "The get app entitlement response returns an entitlement view containing paths in the expanded array for the objects expanded as indicated by the expand mask in the request.",
        "properties": {
          "appEntitlementView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementView"
              },
              {
                "type": "null"
              }
            ]
          },
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Get App Entitlement Response",
        "type": "object",
        "x-speakeasy-name-override": "GetAppEntitlementResponse"
      },
      "c1.api.app.v1.GetAppEntitlementRoutingRuleResponse": {
        "description": "The GetAppEntitlementRoutingRuleResponse message.",
        "properties": {
          "routingRule": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRoutingRule"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get App Entitlement Routing Rule Response",
        "type": "object",
        "x-speakeasy-name-override": "GetAppEntitlementRoutingRuleResponse"
      },
      "c1.api.app.v1.GetAppManagedStateBindingResponse": {
        "description": "GetAppManagedStateBindingResponse contains the managed state of a discovered application.",
        "properties": {
          "appManagementState": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppManagedStateBindingView"
              },
              {
                "type": "null"
              }
            ]
          },
          "expanded": {
            "description": "Related objects requested through expand_mask. REST Get requests do not support expansions; REST Promote requests do.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Get App Managed State Binding Response",
        "type": "object",
        "x-speakeasy-name-override": "GetAppManagedStateBindingResponse"
      },
      "c1.api.app.v1.GetAppResponse": {
        "description": "The GetAppResponse message contains the details of the requested app in the app field.",
        "properties": {
          "app": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.App"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get App Response",
        "type": "object",
        "x-speakeasy-name-override": "GetAppResponse"
      },
      "c1.api.app.v1.GetAppUsageControlsResponse": {
        "description": "The GetAppUsageControlsResponse message contains the retrieved AppUsageControls object.",
        "properties": {
          "appUsageControls": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppUsageControls"
              },
              {
                "type": "null"
              }
            ]
          },
          "hasUsageData": {
            "description": "HasUsageData is false if the access entitlement for this app has no usage data.",
            "type": "boolean"
          }
        },
        "title": "Get App Usage Controls Response",
        "type": "object",
        "x-speakeasy-name-override": "GetAppUsageControlsResponse"
      },
      "c1.api.app.v1.GetConnectorSyncDownloadURLResponse": {
        "description": "The GetConnectorSyncDownloadURLResponse message.",
        "properties": {
          "downloadUrl": {
            "description": "Short-lived download URL for the connector sync artifact",
            "type": "string"
          }
        },
        "title": "Get Connector Sync Download Url Response",
        "type": "object",
        "x-speakeasy-name-override": "GetConnectorSyncDownloadURLResponse"
      },
      "c1.api.app.v1.GrantReason": {
        "description": "The GrantReason message.",
        "properties": {
          "appEntitlementId": {
            "description": "The ID of the app entitlement that is associated with the grant reason.",
            "type": "string"
          },
          "appId": {
            "description": "The ID of the app that is associated with the grant reason.",
            "type": "string"
          },
          "appUserId": {
            "description": "The ID of the app user that is associated with the grant reason.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "derivedIdData": {
            "description": "This is the other part of the derived ID which include the details like ticket_id, group_id, etc. This provides the uniqueness.",
            "type": "string"
          },
          "derivedIdType": {
            "description": "This is one part of the derived ID, indicating the type, like \"ticket\" or \"group\"",
            "type": "string"
          },
          "reasonExpiresAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "referenceStrength": {
            "description": "GrantReasonReferenceStrength is used to indicate the strength of the reference to the reason.\n This is used to determine if a grant should be removed when all strong reasons are removed.",
            "enum": [
              "GRANT_REASON_REFERENCE_STRENGTH_UNSPECIFIED",
              "GRANT_REASON_REFERENCE_STRENGTH_WEAK",
              "GRANT_REASON_REFERENCE_STRENGTH_STRONG"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Grant Reason",
        "type": "object",
        "x-speakeasy-name-override": "GrantReason"
      },
      "c1.api.app.v1.GraphAppGrantCount": {
        "description": "The number of grants a user holds in a single application.",
        "properties": {
          "appId": {
            "description": "The ID of the application.",
            "type": "string"
          },
          "grantCount": {
            "description": "The number of grants the user holds in this application.",
            "format": "int64",
            "type": "string"
          }
        },
        "title": "Graph App Grant Count",
        "type": "object",
        "x-speakeasy-name-override": "GraphAppGrantCount"
      },
      "c1.api.app.v1.GraphEdge": {
        "description": "An edge in the access graph.",
        "properties": {
          "hiddenChildren": {
            "description": "The hiddenChildren field.",
            "format": "int32",
            "type": "integer"
          },
          "isTruncated": {
            "description": "The isTruncated field.",
            "type": "boolean"
          },
          "sourceId": {
            "description": "The sourceId field.",
            "type": "string"
          },
          "targetId": {
            "description": "The targetId field.",
            "type": "string"
          },
          "type": {
            "description": "The type field.",
            "enum": [
              "GRAPH_EDGE_TYPE_UNSPECIFIED",
              "GRAPH_EDGE_TYPE_IDENTITY_LINK",
              "GRAPH_EDGE_TYPE_DIRECT_GRANT",
              "GRAPH_EDGE_TYPE_APP_HIERARCHY",
              "GRAPH_EDGE_TYPE_RESOURCE_HIERARCHY",
              "GRAPH_EDGE_TYPE_PROXY_BINDING"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Graph Edge",
        "type": "object",
        "x-speakeasy-name-override": "GraphEdge"
      },
      "c1.api.app.v1.GraphNode": {
        "description": "A node in the access graph.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "resourceTypeId": {
            "description": "The resourceTypeId field.",
            "type": "string"
          },
          "secondaryText": {
            "description": "Optional secondary line shown under the display name (e.g. an account's\n email/username, or an identity's email).",
            "type": "string"
          },
          "type": {
            "description": "The type field.",
            "enum": [
              "GRAPH_NODE_TYPE_UNSPECIFIED",
              "GRAPH_NODE_TYPE_USER",
              "GRAPH_NODE_TYPE_APP_USER",
              "GRAPH_NODE_TYPE_APP",
              "GRAPH_NODE_TYPE_RESOURCE_TYPE",
              "GRAPH_NODE_TYPE_RESOURCE",
              "GRAPH_NODE_TYPE_ENTITLEMENT",
              "GRAPH_NODE_TYPE_GRANT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Graph Node",
        "type": "object",
        "x-speakeasy-name-override": "GraphNode"
      },
      "c1.api.app.v1.ListAppEntitlementOwnerIDsResponse": {
        "description": "The response message for listing app entitlement owners IDs.",
        "properties": {
          "userIds": {
            "description": "The list of owner IDs for the app entitlement.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "List App Entitlement Owner I Ds Response",
        "type": "object",
        "x-speakeasy-name-override": "ListAppEntitlementOwnerIDsResponse"
      },
      "c1.api.app.v1.ListAppEntitlementOwnersResponse": {
        "description": "The response message for listing app entitlement owners.",
        "properties": {
          "list": {
            "description": "The list of owners for the app entitlement.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.User"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken is shown for the next page if the number of results is larger than the max page size.\n The server returns one page of results and the nextPageToken until all results are retreived.\n To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page.",
            "type": "string"
          }
        },
        "title": "List App Entitlement Owners Response",
        "type": "object",
        "x-speakeasy-name-override": "ListAppEntitlementOwnersResponse"
      },
      "c1.api.app.v1.ListAppEntitlementRoutingRulesResponse": {
        "description": "The ListAppEntitlementRoutingRulesResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRoutingRule"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "maxRulesPerApp": {
            "description": "The maximum number of routing rules this app may hold. Creating a rule\n fails once the app reaches this limit.",
            "format": "int32",
            "type": "integer"
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "List App Entitlement Routing Rules Response",
        "type": "object",
        "x-speakeasy-name-override": "ListAppEntitlementRoutingRulesResponse"
      },
      "c1.api.app.v1.ListAppEntitlementUsersResponse": {
        "description": "The ListAppEntitlementUsersResponse message contains a list of results and a nextPageToken if applicable.",
        "properties": {
          "expanded": {
            "description": "List of related objects",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "list": {
            "description": "The list of results containing up to X results, where X is the page size defined in the request.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementUserView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken is shown for the next page if the number of results is larger than the max page size. The server returns one page of results and the nextPageToken until all results are retreived. To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page.",
            "type": "string"
          }
        },
        "title": "List App Entitlement Users Response",
        "type": "object",
        "x-speakeasy-name-override": "ListAppEntitlementUsersResponse"
      },
      "c1.api.app.v1.ListAppEntitlementsResponse": {
        "description": "The ListAppEntitlementsResponse message contains a list of results and a nextPageToken if applicable.",
        "properties": {
          "expanded": {
            "description": "List of related objects",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "list": {
            "description": "The list of results containing up to X results, where X is the page size defined in the request.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken is shown for the next page if the number of results is larger than the max page size. The server returns one page of results and the nextPageToken until all results are retreived. To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page.",
            "type": "string"
          }
        },
        "title": "List App Entitlements Response",
        "type": "object",
        "x-speakeasy-name-override": "ListAppEntitlementsResponse"
      },
      "c1.api.app.v1.ListAppManagedStateBindingsResponse": {
        "description": "ListAppManagedStateBindingsResponse contains one page of discovered application managed states.",
        "properties": {
          "expanded": {
            "description": "Related objects included for gRPC requests that set expand_mask.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "list": {
            "description": "Managed states of the discovered applications.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppManagedStateBindingView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Pagination token for the next page. Empty when there are no more results.",
            "type": "string"
          }
        },
        "title": "List App Managed State Bindings Response",
        "type": "object",
        "x-speakeasy-name-override": "ListAppManagedStateBindingsResponse"
      },
      "c1.api.app.v1.ListAppOwnerIDsResponse": {
        "description": "The response message for listing app owners IDs.",
        "properties": {
          "userIds": {
            "description": "The list of owner IDs for the app.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "List App Owner I Ds Response",
        "type": "object",
        "x-speakeasy-name-override": "ListAppOwnerIDsResponse"
      },
      "c1.api.app.v1.ListAppOwnersResponse": {
        "description": "The ListAppOwnersResponse message.",
        "properties": {
          "list": {
            "description": "The list of results containing up to X results, where X is the page size defined in the request",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.User"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken is shown for the next page if the number of results is larger than the max page size. The server returns one page of results and the nextPageToken until all results are retreived. To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page.",
            "type": "string"
          }
        },
        "title": "List App Owners Response",
        "type": "object",
        "x-speakeasy-name-override": "ListAppOwnersResponse"
      },
      "c1.api.app.v1.ListAppResourceOwnerIDsResponse": {
        "description": "The response message for listing app resource owners IDs.",
        "properties": {
          "userIds": {
            "description": "The list of owner IDs for the app resource.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "List App Resource Owner I Ds Response",
        "type": "object",
        "x-speakeasy-name-override": "ListAppResourceOwnerIDsResponse"
      },
      "c1.api.app.v1.ListAppResourceOwnersResponse": {
        "description": "The ListAppResourceOwnersResponse message contains a list of results and a nextPageToken if applicable",
        "properties": {
          "immutableUserIds": {
            "description": "User IDs of owners that are immutable and cannot be removed by the user.\n These owners are managed by the system (e.g., connector-sourced) and will be updated automatically.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "list": {
            "description": "The list of results containing up to X results, where X is the page size defined in the request.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.User"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken is shown for the next page if the number of results is larger than the max page size.\n The server returns one page of results and the nextPageToken until all results are retreived.\n To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page.",
            "type": "string"
          }
        },
        "title": "List App Resource Owners Response",
        "type": "object",
        "x-speakeasy-name-override": "ListAppResourceOwnersResponse"
      },
      "c1.api.app.v1.ListAppUsersForIdentityWithGrantResponse": {
        "description": "The ListAppUsersForIdentityWithGrantResponse message.",
        "properties": {
          "bindings": {
            "description": "The list of app users that may also have grant information.\n Without a grant, only the tenant, app, and app user ID will be set. With a grant, the whole struct is populated",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementUserBinding"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "List App Users For Identity With Grant Response",
        "type": "object",
        "x-speakeasy-name-override": "ListAppUsersForIdentityWithGrantResponse"
      },
      "c1.api.app.v1.ListAppsResponse": {
        "description": "The ListAppsResponse message contains a list of results and a nextPageToken if applicable.",
        "properties": {
          "list": {
            "description": "The list of results containing up to X results, where X is the page size defined in the request.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.App"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken is shown for the next page if the number of results is larger than the max page size.\n The server returns one page of results and the nextPageToken until all results are retreived.\n To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page.",
            "type": "string"
          }
        },
        "title": "List Apps Response",
        "type": "object",
        "x-speakeasy-name-override": "ListAppsResponse"
      },
      "c1.api.app.v1.ListAutomationExclusionsResponse": {
        "description": "The ListAutomationExclusionsResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.UserWithAppEntitlementUserBindingView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "List Automation Exclusions Response",
        "type": "object",
        "x-speakeasy-name-override": "ListAutomationExclusionsResponse"
      },
      "c1.api.app.v1.ListOwnedServiceAccountsRequest": {
        "description": "The ListOwnedServiceAccountsRequest message.",
        "properties": {
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppUserExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "pageSize": {
            "description": "The maximum number of results to return per page.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The token for fetching the next page of results.",
            "type": "string"
          }
        },
        "title": "List Owned Service Accounts Request",
        "type": "object",
        "x-speakeasy-name-override": "ListOwnedServiceAccountsRequest"
      },
      "c1.api.app.v1.ListOwnedServiceAccountsResponse": {
        "description": "The ListOwnedServiceAccountsResponse message.",
        "properties": {
          "expanded": {
            "description": "List of related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "list": {
            "description": "The service accounts owned by the calling user, up to one page of results.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppUserView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The token for fetching the next page of results, empty when there are no more pages.",
            "type": "string"
          }
        },
        "title": "List Owned Service Accounts Response",
        "type": "object",
        "x-speakeasy-name-override": "ListOwnedServiceAccountsResponse"
      },
      "c1.api.app.v1.ManuallyManagedUsersResponse": {
        "description": "The ManuallyManagedUsersResponse message.",
        "properties": {
          "bulkActionId": {
            "description": "The ID of the bulk action created to process the membership additions.",
            "type": "string"
          },
          "failedUsersErrorMap": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A map of user IDs to error messages for users that could not be added.",
            "type": "object"
          }
        },
        "title": "Manually Managed Users Response",
        "type": "object",
        "x-speakeasy-name-override": "ManuallyManagedUsersResponse"
      },
      "c1.api.app.v1.OAuth2AuthorizedAs": {
        "description": "OAuth2AuthorizedAs tracks the user that OAuthed with the connector.",
        "properties": {
          "authEmail": {
            "description": "authEmail is the email of the user that authorized the connector using OAuth.",
            "readOnly": true,
            "type": "string"
          },
          "authorizedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "O Auth 2 Authorized As",
        "type": "object",
        "x-speakeasy-name-override": "OAuth2AuthorizedAs"
      },
      "c1.api.app.v1.PauseSyncRequestInput": {
        "description": "The PauseSyncRequest message contains the fields required to pause syncing for a connector.",
        "title": "Pause Sync Request",
        "type": "object",
        "x-speakeasy-name-override": "PauseSyncRequest"
      },
      "c1.api.app.v1.PauseSyncResponse": {
        "description": "Empty response body. Status code indicates success.",
        "title": "Pause Sync Response",
        "type": "object",
        "x-speakeasy-name-override": "PauseSyncResponse"
      },
      "c1.api.app.v1.PromoteAppManagedStateBindingRequestInput": {
        "description": "PromoteAppManagedStateBindingRequest identifies an unmanaged application and configures its owners.",
        "properties": {
          "appEntitlementOwnerRefs": {
            "description": "Entitlements to assign as owners of the new application.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppManagedStateBindingExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "userIds": {
            "description": "User IDs to assign as owners of the new application. If both user and entitlement owners are omitted,\n the application inherits the direct user and entitlement owners of the source connector application.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Promote App Managed State Binding Request",
        "type": "object",
        "x-speakeasy-name-override": "PromoteAppManagedStateBindingRequest"
      },
      "c1.api.app.v1.RemoveAppEntitlementOwnerRequestInput": {
        "description": "The request message for removing an app entitlement owner.",
        "title": "Remove App Entitlement Owner Request",
        "type": "object",
        "x-speakeasy-name-override": "RemoveAppEntitlementOwnerRequest"
      },
      "c1.api.app.v1.RemoveAppEntitlementOwnerResponse": {
        "description": "The empty response message for removing an app entitlement owner.",
        "title": "Remove App Entitlement Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "RemoveAppEntitlementOwnerResponse"
      },
      "c1.api.app.v1.RemoveAppOwnerRequestInput": {
        "description": "RemoveAppOwnerRequest is the request body for removing an app owner. It uses URL values for input.",
        "title": "Remove App Owner Request",
        "type": "object",
        "x-speakeasy-name-override": "RemoveAppOwnerRequest"
      },
      "c1.api.app.v1.RemoveAppOwnerResponse": {
        "description": "Empty response with a status code indicating success.",
        "title": "Remove App Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "RemoveAppOwnerResponse"
      },
      "c1.api.app.v1.RemoveAppResourceOwnerRequestInput": {
        "description": "The request message for removing an owner from an app resource.",
        "properties": {
          "userId": {
            "description": "The C1 user ID to remove as an owner.",
            "type": "string"
          }
        },
        "title": "Remove App Resource Owner Request",
        "type": "object",
        "x-speakeasy-name-override": "RemoveAppResourceOwnerRequest"
      },
      "c1.api.app.v1.RemoveAppResourceOwnerResponse": {
        "description": "The empty response message for removing an owner from an app resource.",
        "title": "Remove App Resource Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "RemoveAppResourceOwnerResponse"
      },
      "c1.api.app.v1.RemoveAutomationExclusionRequestInput": {
        "description": "The RemoveAutomationExclusionRequest message.",
        "properties": {
          "userIds": {
            "description": "The IDs of users to remove from the automation exclusion list.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Remove Automation Exclusion Request",
        "type": "object",
        "x-speakeasy-name-override": "RemoveAutomationExclusionRequest"
      },
      "c1.api.app.v1.RemoveAutomationExclusionResponse": {
        "description": "Empty response with a status code indicating success.",
        "title": "Remove Automation Exclusion Response",
        "type": "object",
        "x-speakeasy-name-override": "RemoveAutomationExclusionResponse"
      },
      "c1.api.app.v1.RemoveEntitlementMembershipRequestInput": {
        "description": "The RemoveEntitlementMembershipRequest message.",
        "properties": {
          "appUserId": {
            "description": "The ID of the app user whose membership to remove.",
            "type": "string"
          }
        },
        "title": "Remove Entitlement Membership Request",
        "type": "object",
        "x-speakeasy-name-override": "RemoveEntitlementMembershipRequest"
      },
      "c1.api.app.v1.RemoveEntitlementMembershipResponse": {
        "description": "The RemoveEntitlementMembershipResponse message.",
        "properties": {
          "revokeTaskId": {
            "description": "The ID of the revoke task created to remove the user from the entitlement, if the entitlement is an access profile (aka. catalog).\n It's aka. the JML task.",
            "type": "string"
          }
        },
        "title": "Remove Entitlement Membership Response",
        "type": "object",
        "x-speakeasy-name-override": "RemoveEntitlementMembershipResponse"
      },
      "c1.api.app.v1.RemoveGrantDurationRequestInput": {
        "description": "The request message for removing the expiration time from a grant.",
        "title": "Remove Grant Duration Request",
        "type": "object",
        "x-speakeasy-name-override": "RemoveGrantDurationRequest"
      },
      "c1.api.app.v1.RemoveGrantDurationResponse": {
        "description": "The response message for removing the expiration time from a grant.",
        "properties": {
          "binding": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementUserBinding"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Remove Grant Duration Response",
        "type": "object",
        "x-speakeasy-name-override": "RemoveGrantDurationResponse"
      },
      "c1.api.app.v1.ReorderAppEntitlementRoutingRulesRequestInput": {
        "description": "The ReorderAppEntitlementRoutingRulesRequest message.",
        "properties": {
          "ruleIds": {
            "description": "The full set of routing-rule IDs for the app, in the desired evaluation\n order. The first entry receives priority 1, the second priority 2, and so\n on. The list must be a permutation of every active rule in the app.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Reorder App Entitlement Routing Rules Request",
        "type": "object",
        "x-speakeasy-name-override": "ReorderAppEntitlementRoutingRulesRequest"
      },
      "c1.api.app.v1.ReorderAppEntitlementRoutingRulesResponse": {
        "description": "The ReorderAppEntitlementRoutingRulesResponse message.",
        "properties": {
          "list": {
            "description": "The rules in their new evaluation order, with priorities reassigned to 1..N.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRoutingRule"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Reorder App Entitlement Routing Rules Response",
        "type": "object",
        "x-speakeasy-name-override": "ReorderAppEntitlementRoutingRulesResponse"
      },
      "c1.api.app.v1.ResourceProfileMatch": {
        "description": "Matches a top-level resource profile key. Scalar text matches an equal scalar or list member;\n JSON numbers and booleans match their typed equivalents; JSON arrays require the stored list\n to contain every element.",
        "properties": {
          "key": {
            "description": "The key field.",
            "type": "string"
          },
          "value": {
            "description": "The value field.",
            "type": "string"
          }
        },
        "title": "Resource Profile Match",
        "type": "object",
        "x-speakeasy-name-override": "ResourceProfileMatch"
      },
      "c1.api.app.v1.ResourceTypeRef": {
        "description": "Pairs a resource type with the app that defines it. A resource type id (and\n even its display name) is only unique within its app -- some system-wide\n types like Credential reuse the same id across every app -- so this is the\n only way to select one unambiguously.\n\n Deliberately not c1.api.app.v1.AppResourceTypeRef (app_resource.proto):\n app_resource.proto can't be imported here without an import cycle through\n app_entitlement.proto. That other message is unrelated to this one --\n it's a distinct type kept only for its own (unrelated) callers -- so\n don't reuse it for entitlement/criteria resource-type scoping.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          }
        },
        "title": "Resource Type Ref",
        "type": "object",
        "x-speakeasy-name-override": "ResourceTypeRef"
      },
      "c1.api.app.v1.ResumeSyncRequestInput": {
        "description": "The ResumeSyncRequest message contains the fields required to resume syncing for a connector.",
        "title": "Resume Sync Request",
        "type": "object",
        "x-speakeasy-name-override": "ResumeSyncRequest"
      },
      "c1.api.app.v1.ResumeSyncResponse": {
        "description": "Empty response body. Status code indicates success.",
        "title": "Resume Sync Response",
        "type": "object",
        "x-speakeasy-name-override": "ResumeSyncResponse"
      },
      "c1.api.app.v1.SearchAppEntitlementsWithExpiredResponse": {
        "description": "The SearchAppEntitlementsWithExpiredResponse message contains a list of results and a nextPageToken if applicable.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementWithExpired"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Search App Entitlements With Expired Response",
        "type": "object",
        "x-speakeasy-name-override": "SearchAppEntitlementsWithExpiredResponse"
      },
      "c1.api.app.v1.SearchAppResourceTypesRequest": {
        "description": "Search for app resources based on some filters.",
        "properties": {
          "appIds": {
            "description": "A list of app IDs to restrict the search by.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appUserIds": {
            "description": "A list of app user IDs to restrict the search by.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "displayName": {
            "description": "Exact match on display name",
            "type": "string"
          },
          "excludeResourceTypeIds": {
            "description": "A list of resource type IDs to exclude from the search.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "excludeResourceTypeTraitIds": {
            "description": "A list of resource type trait IDs to exclude from the search.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pageSize": {
            "description": "The pageSize where 10 \u003c= pageSize \u003c= 100, default 25.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          },
          "query": {
            "description": "Fuzzy search the display name of resource types.",
            "type": "string"
          },
          "resourceTypeIds": {
            "description": "A list of resource type IDs to restrict the search by.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "resourceTypeTraitIds": {
            "description": "A list of resource type trait IDs to restrict the search by.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Search App Resource Types Request",
        "type": "object",
        "x-speakeasy-name-override": "SearchAppResourceTypesRequest"
      },
      "c1.api.app.v1.SearchAppResourceTypesResponse": {
        "description": "The SearchAppResourceTypesResponse message contains a list of results and a nextPageToken if applicable.",
        "properties": {
          "list": {
            "description": "The list of results containing up to X results, where X is the page size defined in the request.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppResourceType"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken is shown for the next page if the number of results is larger than the max page size.\n The server returns one page of results and the nextPageToken until all results are retreived.\n To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page.",
            "type": "string"
          }
        },
        "title": "Search App Resource Types Response",
        "type": "object",
        "x-speakeasy-name-override": "SearchAppResourceTypesResponse"
      },
      "c1.api.app.v1.SearchAppResourcesRequest": {
        "description": "Search app resources based on filters specified in the request body.",
        "properties": {
          "agentStatuses": {
            "description": "Restrict the search to AI-agent resources with one of the given agent\n lifecycle statuses (READY, DISABLED, DELETED). When empty, agent status is\n not used as a filter.",
            "items": {
              "enum": [
                "AGENT_STATUS_UNSPECIFIED",
                "AGENT_STATUS_READY",
                "AGENT_STATUS_DISABLED",
                "AGENT_STATUS_DELETED"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appId": {
            "description": "The app ID to restrict the search to.",
            "type": "string"
          },
          "appIds": {
            "description": "A list of app IDs to restrict the search to. Mirrors the singular app_id;\n both fold into the same filter, so callers may set either or both.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appUserIds": {
            "description": "A list of app user IDs to restrict the search by.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "credentialTypes": {
            "description": "Restrict the search to resources whose credential material spine (K1) matches\n one of the given CredentialType values. Applies to resources with a\n secret_trait. When empty, credential_type is not used as a filter.",
            "items": {
              "enum": [
                "CREDENTIAL_TYPE_UNSPECIFIED",
                "CREDENTIAL_TYPE_STATIC_SECRET",
                "CREDENTIAL_TYPE_ASYMMETRIC_KEY",
                "CREDENTIAL_TYPE_CERTIFICATE"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "direction": {
            "description": "Direction to sort in. Unspecified falls back to ASC when sort_field is set.",
            "enum": [
              "SORT_DIRECTION_UNSPECIFIED",
              "SORT_DIRECTION_ASC",
              "SORT_DIRECTION_DESC"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "excludeDeletedApps": {
            "description": "When true, excludes resources belonging to soft-deleted apps.",
            "type": "boolean"
          },
          "excludeDeletedResourceBindings": {
            "description": "If true, exclude resources whose bindings have been deleted.",
            "type": "boolean"
          },
          "excludeResourceIds": {
            "description": "A list of resource IDs to exclude from the search results.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "excludeResourceTypeTraitIds": {
            "description": "A list of resource type trait IDs to exclude from the search.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nhiTypes": {
            "description": "Restrict the search to resources whose NHI classification spine (K3) is one\n of the given NhiType values. When empty, nhi_type is not used as a filter.",
            "items": {
              "enum": [
                "NHI_TYPE_UNSPECIFIED",
                "NHI_TYPE_APP_REGISTRATION",
                "NHI_TYPE_ASSUMABLE_ROLE",
                "NHI_TYPE_MANAGED_IDENTITY"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "ownerUserIds": {
            "description": "A list of C1 user IDs to filter resources by ownership. The sentinel\n value \"none\" matches resources with no owner. Mutually exclusive with\n unowned_only — combine \"none\" with real owner IDs instead of setting\n unowned_only alongside them.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pageSize": {
            "description": "The maximum number of results to return per page.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The token for fetching the next page of results.",
            "type": "string"
          },
          "query": {
            "description": "Fuzzy search the display name of resources.",
            "type": "string"
          },
          "refs": {
            "description": "A list of specific app resource references to restrict the search to.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppResourceRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "resourceIds": {
            "description": "A list of resource IDs to restrict the search to.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "resourceTypeIds": {
            "description": "A list of resource type IDs to restrict the search by.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "resourceTypeTraitIds": {
            "description": "A list of resource type trait IDs to restrict the search by.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "secretAging": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.SecretAgingFilter"
              },
              {
                "type": "null"
              }
            ]
          },
          "sortField": {
            "description": "Column to sort by. Unspecified (0) keeps the server's default order (app, then display name).",
            "enum": [
              "APP_RESOURCE_SORT_FIELD_UNSPECIFIED",
              "APP_RESOURCE_SORT_FIELD_SECRET_CREATED_AT",
              "APP_RESOURCE_SORT_FIELD_SECRET_EXPIRES_AT",
              "APP_RESOURCE_SORT_FIELD_LAST_USED_AT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "unownedOnly": {
            "description": "When true, restrict results to resources with no ownership-v2 primary-role\n owner. Mutually exclusive with owner_user_ids — use owner_user_ids:\n [\"none\"] instead if you also need to combine it with real owner IDs.",
            "type": "boolean"
          },
          "withOpenFindings": {
            "description": "When true, restrict results to resources that have at least one open finding\n (index-backed EXISTS semi-join). When false/unset, results are unfiltered.",
            "type": "boolean"
          }
        },
        "title": "Search App Resources Request",
        "type": "object",
        "x-speakeasy-name-override": "SearchAppResourcesRequest"
      },
      "c1.api.app.v1.SearchAppResourcesResponse": {
        "description": "The SearchAppResourcesResponse message contains a list of results and a nextPageToken if applicable.",
        "properties": {
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "list": {
            "description": "The list of app resource results.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppResourceView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The token for fetching the next page of results.",
            "type": "string"
          }
        },
        "title": "Search App Resources Response",
        "type": "object",
        "x-speakeasy-name-override": "SearchAppResourcesResponse"
      },
      "c1.api.app.v1.SearchAppSecretsWithAlertCountResponse": {
        "description": "The SearchAppSecretsWithAlertCountResponse message.",
        "properties": {
          "expanded": {
            "description": "The expanded field.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppSecretResourceView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Search App Secrets With Alert Count Response",
        "type": "object",
        "x-speakeasy-name-override": "SearchAppSecretsWithAlertCountResponse"
      },
      "c1.api.app.v1.SearchAppsRequest": {
        "description": "Search Apps by a few properties.",
        "properties": {
          "appIds": {
            "description": "A list of app IDs to restrict the search to.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "displayName": {
            "description": "Search for apps with a case insensitive match on the display name.",
            "type": "string"
          },
          "excludeAppIds": {
            "description": "A list of app IDs to remove from the results.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "onlyDirectories": {
            "description": "Only return apps which are directories",
            "type": "boolean"
          },
          "pageSize": {
            "description": "The pageSize where 0 \u003c= pageSize \u003c= 100. Values \u003c 10 will be set to 10. A value of 0 returns the default page size (currently 25)",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          },
          "policyRefs": {
            "description": "Search for apps that use any of these policies.",
            "items": {
              "$ref": "#/components/schemas/c1.api.policy.v1.PolicyRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "query": {
            "description": "Query the apps with a fuzzy search on display name and description.",
            "type": "string"
          }
        },
        "title": "Search Apps Request",
        "type": "object",
        "x-speakeasy-name-override": "SearchAppsRequest"
      },
      "c1.api.app.v1.SearchAppsResponse": {
        "description": "The SearchAppsResponse message contains a list of results and a nextPageToken if applicable.",
        "properties": {
          "list": {
            "description": "The list of results containing up to X results, where X is the page size defined in the request.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.App"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken is shown for the next page if the number of results is larger than the max page size.\n The server returns one page of results and the nextPageToken until all results are retreived.\n To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page.",
            "type": "string"
          }
        },
        "title": "Search Apps Response",
        "type": "object",
        "x-speakeasy-name-override": "SearchAppsResponse"
      },
      "c1.api.app.v1.SearchGrantFeedRequest": {
        "description": "The SearchGrantFeedRequest message.",
        "properties": {
          "after": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "appEntitlementRefs": {
            "description": "The list of app entitlements to limit the search to.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appRefs": {
            "description": "The list of apps to limit the search to.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appUserRefs": {
            "description": "The list of app users to limit the search to.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppUserRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "before": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementUserBindingExpandHistoryMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "pageSize": {
            "description": "The pageSize where 10 \u003c= pageSize \u003c= 100, default 25.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The page_token field for pagination.",
            "type": "string"
          },
          "userRefs": {
            "description": "The list of C1 users to limit the search to.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Search Grant Feed Request",
        "type": "object",
        "x-speakeasy-name-override": "SearchGrantFeedRequest"
      },
      "c1.api.app.v1.SearchGrantFeedResponse": {
        "description": "The SearchGrantFeedResponse message contains a list of grant event results and a nextPageToken if applicable.",
        "properties": {
          "expanded": {
            "description": "The expanded field.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "list": {
            "description": "The list of results containing up to X results, where X is the page size defined in the request.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementUserBindingFeedView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken is shown for the next page if the number of results is larger than the max page size.\n The server returns one page of results and the nextPageToken until all results are retrieved.\n To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page.",
            "type": "string"
          }
        },
        "title": "Search Grant Feed Response",
        "type": "object",
        "x-speakeasy-name-override": "SearchGrantFeedResponse"
      },
      "c1.api.app.v1.SearchMyVendedCredentialsRequest": {
        "description": "SearchMyVendedCredentialsRequest has the same filters as the general\n inventory search, but its distinct type carries the self-only permission.\n The server always scopes results to the signed-in requester's issuance\n tickets; callers cannot provide an identity-user filter.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppSecretExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "pageSize": {
            "description": "The pageSize field.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          },
          "query": {
            "description": "The query field.",
            "type": "string"
          },
          "refs": {
            "description": "The refs field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppSecretRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "resourceTypeIds": {
            "description": "The resourceTypeIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Search My Vended Credentials Request",
        "type": "object",
        "x-speakeasy-name-override": "SearchMyVendedCredentialsRequest"
      },
      "c1.api.app.v1.SearchPastGrantsRequest": {
        "description": "The request message for searching historical grants.",
        "properties": {
          "appEntitlementRefs": {
            "description": "A list of entitlement references to restrict the search to.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appIds": {
            "description": "A list of app IDs to restrict the search to.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appUserRefs": {
            "description": "A list of app user references to restrict the search to.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppUserRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementUserBindingExpandHistoryMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "pageSize": {
            "description": "The maximum number of results to return per page.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The token for fetching the next page of results.",
            "type": "string"
          }
        },
        "title": "Search Past Grants Request",
        "type": "object",
        "x-speakeasy-name-override": "SearchPastGrantsRequest"
      },
      "c1.api.app.v1.SearchPastGrantsResponse": {
        "description": "The SearchPastGrantsResponse message contains a list of past grants and a nextPageToken if applicable.",
        "properties": {
          "expanded": {
            "description": "The expanded field.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "list": {
            "description": "The list of results containing up to X results, where X is the page size defined in the request.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementUserBindingHistoryView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken is shown for the next page if the number of results is larger than the max page size.\n The server returns one page of results and the nextPageToken until all results are retrieved.\n To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page.",
            "type": "string"
          }
        },
        "title": "Search Past Grants Response",
        "type": "object",
        "x-speakeasy-name-override": "SearchPastGrantsResponse"
      },
      "c1.api.app.v1.SearchUserOwnershipRequest": {
        "description": "Search for all ownership assignments for a given user. Returns apps, resources, and\n entitlements the user owns, each tagged with a UserOwnershipType discriminator.\n Filter by ownership_types to restrict results to specific kinds of ownership.",
        "properties": {
          "ownershipTypes": {
            "description": "Filter results to only include these ownership types. If empty, all types are returned.",
            "items": {
              "enum": [
                "USER_OWNERSHIP_TYPE_UNSPECIFIED",
                "USER_OWNERSHIP_TYPE_APP",
                "USER_OWNERSHIP_TYPE_RESOURCE",
                "USER_OWNERSHIP_TYPE_ENTITLEMENT"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pageSize": {
            "description": "Maximum number of results to return per page.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "Pagination token from a previous response.",
            "type": "string"
          },
          "userId": {
            "description": "The ID of the ConductorOne user whose ownership to search.",
            "type": "string"
          }
        },
        "title": "Search User Ownership Request",
        "type": "object",
        "x-speakeasy-name-override": "SearchUserOwnershipRequest"
      },
      "c1.api.app.v1.SearchUserOwnershipResponse": {
        "description": "The SearchUserOwnershipResponse message contains a paginated list of ownership entries.",
        "properties": {
          "list": {
            "description": "The list of ownership entries for the requested user.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.UserOwnershipEntry"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Pagination token for the next page of results. Empty when there are no more results.",
            "type": "string"
          }
        },
        "title": "Search User Ownership Response",
        "type": "object",
        "x-speakeasy-name-override": "SearchUserOwnershipResponse"
      },
      "c1.api.app.v1.SecretAgingFilter": {
        "description": "SecretAgingFilter restricts a resource search to secrets (credential_type != 0)\n whose secret-trait timestamps fall in the given half-open ranges. Each bound is\n optional; leave one unset for an open-ended range. All set bounds are ANDed.\n Callers pass absolute timestamps (computed against their reference \"now\").",
        "properties": {
          "lastUsedAfter": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "lastUsedBefore": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "secretCreatedAfter": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "secretCreatedBefore": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "secretExpiresAfter": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "secretExpiresBefore": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Secret Aging Filter",
        "type": "object",
        "x-speakeasy-name-override": "SecretAgingFilter"
      },
      "c1.api.app.v1.SecretTrait": {
        "description": "The SecretTrait message.",
        "properties": {
          "createdByAppUserId": {
            "description": "The AppUser id that created this credential. Read-only; resolved from\n the model during uplift. Distinct from identity_app_user_id (the\n holder) and from the resource's Owner (a separate assignment, not\n part of this message).",
            "type": "string"
          },
          "credentialDetail": {
            "description": "Platform-specific credential subtype detail, finer than credential_type\n (e.g. \"GCP service-account key\"). Read-only; translated from the model.",
            "type": "string"
          },
          "identityAppUserId": {
            "description": "The identityAppUserId field.",
            "type": "string"
          },
          "lastUsedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "secretCreatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "secretExpiresAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Secret Trait",
        "type": "object",
        "x-speakeasy-name-override": "SecretTrait"
      },
      "c1.api.app.v1.SetAppEntitlementOwnersRequestInput": {
        "description": "The request message for setting the app entitlement owners.",
        "properties": {
          "userIds": {
            "description": "The user_ids field for the users to set as an owner of the app entitlement.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Set App Entitlement Owners Request",
        "type": "object",
        "x-speakeasy-entity": "App_Entitlement_Owner",
        "x-speakeasy-name-override": "SetAppEntitlementOwnersRequest"
      },
      "c1.api.app.v1.SetAppEntitlementOwnersResponse": {
        "description": "The empty response message for setting the app entitlement owners.",
        "title": "Set App Entitlement Owners Response",
        "type": "object",
        "x-speakeasy-name-override": "SetAppEntitlementOwnersResponse"
      },
      "c1.api.app.v1.SetAppOwnersRequestInput": {
        "description": "The request message for setting the app owners.",
        "properties": {
          "userIds": {
            "description": "The user_ids field for the users to set as an owner of the app.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Set App Owners Request",
        "type": "object",
        "x-speakeasy-entity": "App_Owner",
        "x-speakeasy-name-override": "SetAppOwnersRequest"
      },
      "c1.api.app.v1.SetAppOwnersResponse": {
        "description": "The empty response message for setting the app owners.",
        "title": "Set App Owners Response",
        "type": "object",
        "x-speakeasy-name-override": "SetAppOwnersResponse"
      },
      "c1.api.app.v1.SetAppResourceOwnersRequestInput": {
        "description": "The SetAppResourceOwnersRequest message.",
        "properties": {
          "userIds": {
            "description": "The userIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Set App Resource Owners Request",
        "type": "object",
        "x-speakeasy-entity": "App_Resource_Owner",
        "x-speakeasy-name-override": "SetAppResourceOwnersRequest"
      },
      "c1.api.app.v1.SetAppResourceOwnersResponse": {
        "description": "The empty response message for setting the app resource owners.",
        "title": "Set App Resource Owners Response",
        "type": "object",
        "x-speakeasy-name-override": "SetAppResourceOwnersResponse"
      },
      "c1.api.app.v1.SyncConfig": {
        "description": "The SyncConfig message.",
        "properties": {
          "syncResourceTypeIds": {
            "description": "The syncResourceTypeIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Sync Config",
        "type": "object",
        "x-speakeasy-name-override": "SyncConfig"
      },
      "c1.api.app.v1.TaskAuditCancelledResult": {
        "description": "The TaskAuditCancelledResult message.",
        "properties": {
          "cancelReason": {
            "description": "Human-readable reason the action was cancelled. Already populated on the\n model-side CanceledResult (e.g., \"action is invalid - ticket is closed\");\n this surfaces it to the UI.",
            "type": "string"
          }
        },
        "title": "Task Audit Cancelled Result",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditCancelledResult"
      },
      "c1.api.app.v1.TaskAuditErrorResult": {
        "description": "The TaskAuditErrorResult message.",
        "properties": {
          "errorCount": {
            "description": "TODO(pquerna): expand",
            "format": "int64",
            "type": "string"
          },
          "errorReason": {
            "description": "The errorReason field.",
            "type": "string"
          }
        },
        "title": "Task Audit Error Result",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditErrorResult"
      },
      "c1.api.app.v1.TaskAuditPendingResult": {
        "description": "The TaskAuditPendingResult message.",
        "properties": {
          "pendingReason": {
            "description": "Human-readable explanation of why the action is pending. Rendered in the\n ticket audit log so admins can see what the action is waiting on (e.g.,\n \"GitHub org invite sent. User must accept the invitation before team\n membership can be granted.\"). Naming mirrors TaskAuditErrorResult.error_reason\n and TaskAuditCancelledResult.cancel_reason for consistency.",
            "type": "string"
          }
        },
        "title": "Task Audit Pending Result",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditPendingResult"
      },
      "c1.api.app.v1.TaskAuditSuccessResult": {
        "description": "The TaskAuditSuccessResult message.",
        "properties": {
          "annotations": {
            "description": "The annotations field.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "effects": {
            "description": "The effects field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.ConnectorActionEffect"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "successReason": {
            "description": "Optional human-readable note about the successful action. Rendered in\n the ticket audit log when present (e.g., \"Account already existed; no\n change made.\" for the AlreadyExistsResult path). Naming mirrors\n TaskAuditErrorResult.error_reason and TaskAuditCancelledResult.cancel_reason\n for consistency.",
            "type": "string"
          }
        },
        "title": "Task Audit Success Result",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditSuccessResult"
      },
      "c1.api.app.v1.UpdateAppEntitlementRequestInput": {
        "description": "The UpdateAppEntitlementRequest message contains the app entitlement and the fields to be updated.",
        "properties": {
          "entitlement": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlement"
              },
              {
                "type": "null"
              }
            ]
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "overrideAccessRequestsDefaults": {
            "description": "Flag to indicate that access request defaults, if any are applied to these entitlements, should be overridden.",
            "type": "boolean"
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Update App Entitlement Request",
        "type": "object",
        "x-speakeasy-name-override": "UpdateAppEntitlementRequest"
      },
      "c1.api.app.v1.UpdateAppEntitlementResponse": {
        "description": "The UpdateAppEntitlementResponse message.",
        "properties": {
          "appEntitlementView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementView"
              },
              {
                "type": "null"
              }
            ]
          },
          "expanded": {
            "description": "List of related objects",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Update App Entitlement Response",
        "type": "object",
        "x-speakeasy-name-override": "UpdateAppEntitlementResponse"
      },
      "c1.api.app.v1.UpdateAppEntitlementRoutingRuleRequestInput": {
        "description": "The UpdateAppEntitlementRoutingRuleRequest message.",
        "properties": {
          "condition": {
            "description": "CEL expression evaluated against the entitlement routing rule context.\n Empty string is valid and matches every target not matched earlier.",
            "type": "string"
          },
          "description": {
            "description": "The description field.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "enabled": {
            "description": "The enabled field.",
            "type": "boolean"
          },
          "settings": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRoutingRuleSettings"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Update App Entitlement Routing Rule Request",
        "type": "object",
        "x-speakeasy-name-override": "UpdateAppEntitlementRoutingRuleRequest"
      },
      "c1.api.app.v1.UpdateAppEntitlementRoutingRuleResponse": {
        "description": "The UpdateAppEntitlementRoutingRuleResponse message.",
        "properties": {
          "routingRule": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRoutingRule"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Update App Entitlement Routing Rule Response",
        "type": "object",
        "x-speakeasy-name-override": "UpdateAppEntitlementRoutingRuleResponse"
      },
      "c1.api.app.v1.UpdateAppRequestInput": {
        "description": "The UpdateAppRequest message contains the app to update and the fields to update.",
        "properties": {
          "app": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.App"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Update App Request",
        "type": "object",
        "x-speakeasy-name-override": "UpdateAppRequest"
      },
      "c1.api.app.v1.UpdateAppResponse": {
        "description": "Returns the updated app's new values.",
        "properties": {
          "app": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.App"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Update App Response",
        "type": "object",
        "x-speakeasy-name-override": "UpdateAppResponse"
      },
      "c1.api.app.v1.UpdateAppUsageControlsRequestInput": {
        "description": "The UpdateAppUsageControlsRequest message contains the AppUsageControls object to update and the update mask.",
        "properties": {
          "appUsageControls": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppUsageControls"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Update App Usage Controls Request",
        "type": "object",
        "x-speakeasy-name-override": "UpdateAppUsageControlsRequest"
      },
      "c1.api.app.v1.UpdateAppUsageControlsResponse": {
        "description": "The UpdateAppUsageControlsResponse message contains the updated AppUsageControls object.",
        "properties": {
          "appUsageControls": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppUsageControls"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Update App Usage Controls Response",
        "type": "object",
        "x-speakeasy-name-override": "UpdateAppUsageControlsResponse"
      },
      "c1.api.app.v1.UpdateConnectorScheduleRequestInput": {
        "description": "The UpdateConnectorScheduleRequest message contains the fields required to update a connector's sync schedule.\n\nThis message contains a oneof named schedule. Only a single field of the following list may be set at a time:\n  - cron\n",
        "properties": {
          "cron": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.ConnectorScheduleCron"
              },
              {
                "type": "null"
              }
            ]
          },
          "justification": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.ChangeJustification"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Update Connector Schedule Request",
        "type": "object",
        "x-speakeasy-name-override": "UpdateConnectorScheduleRequest"
      },
      "c1.api.app.v1.UpdateConnectorScheduleResponse": {
        "description": "Empty response body. Status code indicates success.",
        "title": "Update Connector Schedule Response",
        "type": "object",
        "x-speakeasy-name-override": "UpdateConnectorScheduleResponse"
      },
      "c1.api.app.v1.UpdateGrantDurationRequestInput": {
        "description": "The request message for updating the duration of an existing grant.",
        "properties": {
          "newDeprovisionAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Update Grant Duration Request",
        "type": "object",
        "x-speakeasy-name-override": "UpdateGrantDurationRequest"
      },
      "c1.api.app.v1.UpdateGrantDurationResponse": {
        "description": "The response message for updating the duration of a grant.",
        "properties": {
          "binding": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementUserBinding"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Update Grant Duration Response",
        "type": "object",
        "x-speakeasy-name-override": "UpdateGrantDurationResponse"
      },
      "c1.api.app.v1.UpdateManuallyManagedResourceTypeRequestInput": {
        "description": "The request message for updating a manually managed resource type.",
        "properties": {
          "appResourceType": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppResourceType"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Update Manually Managed Resource Type Request",
        "type": "object",
        "x-speakeasy-name-override": "UpdateManuallyManagedResourceTypeRequest"
      },
      "c1.api.app.v1.UpdateManuallyManagedResourceTypeResponse": {
        "description": "The response message for updating a manually managed resource type.",
        "properties": {
          "appResourceType": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppResourceType"
              },
              {
                "type": "null"
              }
            ]
          },
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Update Manually Managed Resource Type Response",
        "type": "object",
        "x-speakeasy-name-override": "UpdateManuallyManagedResourceTypeResponse"
      },
      "c1.api.app.v1.UserOwnershipEntry": {
        "description": "A single ownership entry. Fields are populated based on ownership_type:\n APP — only app_id and app_display_name are set.\n RESOURCE — app_id, app_display_name, resource_type_id, resource_id, and resource_display_name are set.\n ENTITLEMENT — app_id, app_display_name, resource_type_id, entitlement_id, and entitlement_display_name are set.",
        "properties": {
          "appDisplayName": {
            "description": "The app display name.",
            "type": "string"
          },
          "appId": {
            "description": "The app ID.",
            "type": "string"
          },
          "entitlementDisplayName": {
            "description": "The entitlement display name, if applicable.",
            "type": "string"
          },
          "entitlementId": {
            "description": "The entitlement ID, if applicable.",
            "type": "string"
          },
          "ownershipType": {
            "description": "The type of ownership.",
            "enum": [
              "USER_OWNERSHIP_TYPE_UNSPECIFIED",
              "USER_OWNERSHIP_TYPE_APP",
              "USER_OWNERSHIP_TYPE_RESOURCE",
              "USER_OWNERSHIP_TYPE_ENTITLEMENT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "resourceDisplayName": {
            "description": "The resource display name, if applicable.",
            "type": "string"
          },
          "resourceId": {
            "description": "The resource ID, if applicable.",
            "type": "string"
          },
          "resourceTypeId": {
            "description": "The resource type ID, if applicable.",
            "type": "string"
          }
        },
        "title": "User Ownership Entry",
        "type": "object",
        "x-speakeasy-name-override": "UserOwnershipEntry"
      },
      "c1.api.app.v1.UserWithAppEntitlementUserBindingView": {
        "description": "The UserWithAppEntitlementUserBindingView message.",
        "properties": {
          "appEntitlementId": {
            "description": "The ID of the app entitlement.",
            "type": "string"
          },
          "appId": {
            "description": "The ID of the app that contains the entitlement.",
            "type": "string"
          },
          "appUserId": {
            "description": "The ID of the app user associated with this binding.",
            "type": "string"
          },
          "user": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.User"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "User With App Entitlement User Binding View",
        "type": "object",
        "x-speakeasy-name-override": "UserWithAppEntitlementUserBindingView"
      },
      "c1.api.app.v2.AppEntitlementOwnerEntitlement": {
        "description": "AppEntitlementOwnerEntitlement represents an entitlement ownership source for an app entitlement.",
        "properties": {
          "appEntitlement": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlement"
              },
              {
                "type": "null"
              }
            ]
          },
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "entitlementId": {
            "description": "The entitlementId field.",
            "type": "string"
          },
          "roleSlug": {
            "description": "The roleSlug field.",
            "type": "string"
          }
        },
        "title": "App Entitlement Owner Entitlement",
        "type": "object",
        "x-speakeasy-entity": "App_Entitlement_Owner_Entitlement",
        "x-speakeasy-name-override": "AppEntitlementOwnerEntitlement"
      },
      "c1.api.app.v2.AppEntitlementOwnerUser": {
        "description": "AppEntitlementOwnerUser represents a user ownership source for an app entitlement.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "entitlementId": {
            "description": "The entitlementId field.",
            "type": "string"
          },
          "roleSlug": {
            "description": "The roleSlug field.",
            "type": "string"
          },
          "user": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.User"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "App Entitlement Owner User",
        "type": "object",
        "x-speakeasy-entity": "App_Entitlement_Owner_User",
        "x-speakeasy-name-override": "AppEntitlementOwnerUser"
      },
      "c1.api.app.v2.AppOwnerEntitlement": {
        "description": "AppOwnerEntitlement represents an entitlement ownership source for an app.",
        "properties": {
          "appEntitlement": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlement"
              },
              {
                "type": "null"
              }
            ]
          },
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "roleSlug": {
            "description": "The roleSlug field.",
            "type": "string"
          }
        },
        "title": "App Owner Entitlement",
        "type": "object",
        "x-speakeasy-entity": "App_Owner_Entitlement",
        "x-speakeasy-name-override": "AppOwnerEntitlement"
      },
      "c1.api.app.v2.AppOwnerUser": {
        "description": "AppOwnerUser represents a user ownership source for an app.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "roleSlug": {
            "description": "The roleSlug field.",
            "type": "string"
          },
          "user": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.User"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "App Owner User",
        "type": "object",
        "x-speakeasy-entity": "App_Owner_User",
        "x-speakeasy-name-override": "AppOwnerUser"
      },
      "c1.api.app.v2.AppResourceOwnerEntitlement": {
        "description": "AppResourceOwnerEntitlement represents an entitlement ownership source for an app resource.",
        "properties": {
          "appEntitlement": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlement"
              },
              {
                "type": "null"
              }
            ]
          },
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "resourceId": {
            "description": "The resourceId field.",
            "type": "string"
          },
          "resourceTypeId": {
            "description": "The resourceTypeId field.",
            "type": "string"
          },
          "roleSlug": {
            "description": "The roleSlug field.",
            "type": "string"
          }
        },
        "title": "App Resource Owner Entitlement",
        "type": "object",
        "x-speakeasy-entity": "App_Resource_Owner_Entitlement",
        "x-speakeasy-name-override": "AppResourceOwnerEntitlement"
      },
      "c1.api.app.v2.AppResourceOwnerUser": {
        "description": "AppResourceOwnerUser represents a user ownership source for an app resource.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "resourceId": {
            "description": "The resourceId field.",
            "type": "string"
          },
          "resourceTypeId": {
            "description": "The resourceTypeId field.",
            "type": "string"
          },
          "roleSlug": {
            "description": "The roleSlug field.",
            "type": "string"
          },
          "user": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.User"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "App Resource Owner User",
        "type": "object",
        "x-speakeasy-entity": "App_Resource_Owner_User",
        "x-speakeasy-name-override": "AppResourceOwnerUser"
      },
      "c1.api.app.v2.AppUserOwnerEntitlement": {
        "description": "AppUserOwnerEntitlement represents an entitlement ownership source for an app user.",
        "properties": {
          "appEntitlement": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlement"
              },
              {
                "type": "null"
              }
            ]
          },
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "roleSlug": {
            "description": "The roleSlug field.",
            "type": "string"
          },
          "userId": {
            "description": "The userId field.",
            "type": "string"
          }
        },
        "title": "App User Owner Entitlement",
        "type": "object",
        "x-speakeasy-name-override": "AppUserOwnerEntitlement"
      },
      "c1.api.app.v2.AppUserOwnerUser": {
        "description": "AppUserOwnerUser represents a user ownership source for an app user.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "roleSlug": {
            "description": "The roleSlug field.",
            "type": "string"
          },
          "user": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.User"
              },
              {
                "type": "null"
              }
            ]
          },
          "userId": {
            "description": "The userId field.",
            "type": "string"
          }
        },
        "title": "App User Owner User",
        "type": "object",
        "x-speakeasy-name-override": "AppUserOwnerUser"
      },
      "c1.api.app.v2.ConnectorOwnerEntitlement": {
        "description": "ConnectorOwnerEntitlement represents an entitlement ownership source for a connector.",
        "properties": {
          "appEntitlement": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlement"
              },
              {
                "type": "null"
              }
            ]
          },
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "connectorId": {
            "description": "The connectorId field.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "roleSlug": {
            "description": "The roleSlug field.",
            "type": "string"
          }
        },
        "title": "Connector Owner Entitlement",
        "type": "object",
        "x-speakeasy-entity": "Connector_Owner_Entitlement",
        "x-speakeasy-name-override": "ConnectorOwnerEntitlement"
      },
      "c1.api.app.v2.ConnectorOwnerUser": {
        "description": "ConnectorOwnerUser represents a user ownership source for a connector.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "connectorId": {
            "description": "The connectorId field.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "roleSlug": {
            "description": "The roleSlug field.",
            "type": "string"
          },
          "user": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.User"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Connector Owner User",
        "type": "object",
        "x-speakeasy-entity": "Connector_Owner_User",
        "x-speakeasy-name-override": "ConnectorOwnerUser"
      },
      "c1.api.app.v2.CreateAppEntitlementEntitlementOwnerRequestInput": {
        "description": "CreateAppEntitlementEntitlementOwnerRequest is the request for creating an entitlement ownership source on an entitlement.",
        "properties": {
          "appEntitlementRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create App Entitlement Entitlement Owner Request",
        "type": "object",
        "x-speakeasy-name-override": "CreateAppEntitlementEntitlementOwnerRequest"
      },
      "c1.api.app.v2.CreateAppEntitlementEntitlementOwnerResponse": {
        "description": "CreateAppEntitlementEntitlementOwnerResponse is the response for creating an entitlement ownership source on an entitlement.",
        "properties": {
          "appEntitlementOwnerEntitlement": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v2.AppEntitlementOwnerEntitlement"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create App Entitlement Entitlement Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "CreateAppEntitlementEntitlementOwnerResponse"
      },
      "c1.api.app.v2.CreateAppEntitlementOwnerRequestInput": {
        "description": "CreateEntitlementOwnerRequest is the request for creating an entitlement ownership source.",
        "properties": {
          "appEntitlementRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create App Entitlement Owner Request",
        "type": "object",
        "x-speakeasy-name-override": "CreateAppEntitlementOwnerRequest"
      },
      "c1.api.app.v2.CreateAppEntitlementOwnerResponse": {
        "description": "CreateEntitlementOwnerResponse is the response for creating an entitlement ownership source.",
        "properties": {
          "appOwnerEntitlement": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v2.AppOwnerEntitlement"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create App Entitlement Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "CreateAppEntitlementOwnerResponse"
      },
      "c1.api.app.v2.CreateAppEntitlementUserOwnerRequestInput": {
        "description": "CreateAppEntitlementUserOwnerRequest is the request for creating a user ownership source on an entitlement.",
        "properties": {
          "userRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create App Entitlement User Owner Request",
        "type": "object",
        "x-speakeasy-name-override": "CreateAppEntitlementUserOwnerRequest"
      },
      "c1.api.app.v2.CreateAppEntitlementUserOwnerResponse": {
        "description": "CreateAppEntitlementUserOwnerResponse is the response for creating a user ownership source on an entitlement.",
        "properties": {
          "appEntitlementOwnerUser": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v2.AppEntitlementOwnerUser"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create App Entitlement User Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "CreateAppEntitlementUserOwnerResponse"
      },
      "c1.api.app.v2.CreateAppResourceEntitlementOwnerRequestInput": {
        "description": "CreateAppResourceEntitlementOwnerRequest is the request for creating an entitlement ownership source on a resource.",
        "properties": {
          "appEntitlementRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create App Resource Entitlement Owner Request",
        "type": "object",
        "x-speakeasy-name-override": "CreateAppResourceEntitlementOwnerRequest"
      },
      "c1.api.app.v2.CreateAppResourceEntitlementOwnerResponse": {
        "description": "CreateAppResourceEntitlementOwnerResponse is the response for creating an entitlement ownership source on a resource.",
        "properties": {
          "appResourceOwnerEntitlement": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v2.AppResourceOwnerEntitlement"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create App Resource Entitlement Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "CreateAppResourceEntitlementOwnerResponse"
      },
      "c1.api.app.v2.CreateAppResourceUserOwnerRequestInput": {
        "description": "CreateAppResourceUserOwnerRequest is the request for creating a user ownership source on a resource.",
        "properties": {
          "userRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create App Resource User Owner Request",
        "type": "object",
        "x-speakeasy-name-override": "CreateAppResourceUserOwnerRequest"
      },
      "c1.api.app.v2.CreateAppResourceUserOwnerResponse": {
        "description": "CreateAppResourceUserOwnerResponse is the response for creating a user ownership source on a resource.",
        "properties": {
          "appResourceOwnerUser": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v2.AppResourceOwnerUser"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create App Resource User Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "CreateAppResourceUserOwnerResponse"
      },
      "c1.api.app.v2.CreateAppUserEntitlementOwnerRequestInput": {
        "description": "CreateAppUserEntitlementOwnerRequest is the request for creating an entitlement ownership source on an app user.",
        "properties": {
          "appEntitlementRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create App User Entitlement Owner Request",
        "type": "object",
        "x-speakeasy-name-override": "CreateAppUserEntitlementOwnerRequest"
      },
      "c1.api.app.v2.CreateAppUserEntitlementOwnerResponse": {
        "description": "CreateAppUserEntitlementOwnerResponse is the response for creating an entitlement ownership source on an app user.",
        "properties": {
          "appUserOwnerEntitlement": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v2.AppUserOwnerEntitlement"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create App User Entitlement Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "CreateAppUserEntitlementOwnerResponse"
      },
      "c1.api.app.v2.CreateAppUserOwnerRequestInput": {
        "description": "CreateUserOwnerRequest is the request for creating a user ownership source.",
        "properties": {
          "userRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create App User Owner Request",
        "type": "object",
        "x-speakeasy-name-override": "CreateAppUserOwnerRequest"
      },
      "c1.api.app.v2.CreateAppUserOwnerResponse": {
        "description": "CreateUserOwnerResponse is the response for creating a user ownership source.",
        "properties": {
          "appOwnerUser": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v2.AppOwnerUser"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create App User Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "CreateAppUserOwnerResponse"
      },
      "c1.api.app.v2.CreateAppUserUserOwnerRequestInput": {
        "description": "CreateAppUserUserOwnerRequest is the request for creating a user ownership source on an app user.",
        "properties": {
          "userRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create App User User Owner Request",
        "type": "object",
        "x-speakeasy-name-override": "CreateAppUserUserOwnerRequest"
      },
      "c1.api.app.v2.CreateAppUserUserOwnerResponse": {
        "description": "CreateAppUserUserOwnerResponse is the response for creating a user ownership source on an app user.",
        "properties": {
          "appUserOwnerUser": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v2.AppUserOwnerUser"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create App User User Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "CreateAppUserUserOwnerResponse"
      },
      "c1.api.app.v2.CreateConnectorEntitlementOwnerRequestInput": {
        "description": "CreateConnectorEntitlementOwnerRequest is the request for creating an entitlement ownership source on a connector.",
        "properties": {
          "appEntitlementRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create Connector Entitlement Owner Request",
        "type": "object",
        "x-speakeasy-name-override": "CreateConnectorEntitlementOwnerRequest"
      },
      "c1.api.app.v2.CreateConnectorEntitlementOwnerResponse": {
        "description": "CreateConnectorEntitlementOwnerResponse is the response for creating an entitlement ownership source on a connector.",
        "properties": {
          "connectorOwnerEntitlement": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v2.ConnectorOwnerEntitlement"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create Connector Entitlement Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "CreateConnectorEntitlementOwnerResponse"
      },
      "c1.api.app.v2.CreateConnectorUserOwnerRequestInput": {
        "description": "CreateConnectorUserOwnerRequest is the request for creating a user ownership source on a connector.",
        "properties": {
          "userRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create Connector User Owner Request",
        "type": "object",
        "x-speakeasy-name-override": "CreateConnectorUserOwnerRequest"
      },
      "c1.api.app.v2.CreateConnectorUserOwnerResponse": {
        "description": "CreateConnectorUserOwnerResponse is the response for creating a user ownership source on a connector.",
        "properties": {
          "connectorOwnerUser": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v2.ConnectorOwnerUser"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create Connector User Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "CreateConnectorUserOwnerResponse"
      },
      "c1.api.app.v2.DeleteAppEntitlementEntitlementOwnerRequestInput": {
        "description": "DeleteAppEntitlementEntitlementOwnerRequest is the request for deleting an entitlement ownership source on an entitlement.",
        "properties": {
          "appEntitlementRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Delete App Entitlement Entitlement Owner Request",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAppEntitlementEntitlementOwnerRequest"
      },
      "c1.api.app.v2.DeleteAppEntitlementEntitlementOwnerResponse": {
        "description": "DeleteAppEntitlementEntitlementOwnerResponse is the empty response for deleting an entitlement ownership source on an entitlement.",
        "title": "Delete App Entitlement Entitlement Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAppEntitlementEntitlementOwnerResponse"
      },
      "c1.api.app.v2.DeleteAppEntitlementOwnerRequestInput": {
        "description": "DeleteEntitlementOwnerRequest is the request for deleting an entitlement ownership source.",
        "properties": {
          "appEntitlementRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Delete App Entitlement Owner Request",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAppEntitlementOwnerRequest"
      },
      "c1.api.app.v2.DeleteAppEntitlementOwnerResponse": {
        "description": "DeleteEntitlementOwnerResponse is the empty response for deleting an entitlement ownership source.",
        "title": "Delete App Entitlement Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAppEntitlementOwnerResponse"
      },
      "c1.api.app.v2.DeleteAppEntitlementUserOwnerRequestInput": {
        "description": "DeleteAppEntitlementUserOwnerRequest is the request for deleting a user ownership source on an entitlement.",
        "properties": {
          "userRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Delete App Entitlement User Owner Request",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAppEntitlementUserOwnerRequest"
      },
      "c1.api.app.v2.DeleteAppEntitlementUserOwnerResponse": {
        "description": "DeleteAppEntitlementUserOwnerResponse is the empty response for deleting a user ownership source on an entitlement.",
        "title": "Delete App Entitlement User Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAppEntitlementUserOwnerResponse"
      },
      "c1.api.app.v2.DeleteAppResourceEntitlementOwnerRequestInput": {
        "description": "DeleteAppResourceEntitlementOwnerRequest is the request for deleting an entitlement ownership source on a resource.",
        "properties": {
          "appEntitlementRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Delete App Resource Entitlement Owner Request",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAppResourceEntitlementOwnerRequest"
      },
      "c1.api.app.v2.DeleteAppResourceEntitlementOwnerResponse": {
        "description": "DeleteAppResourceEntitlementOwnerResponse is the empty response for deleting an entitlement ownership source on a resource.",
        "title": "Delete App Resource Entitlement Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAppResourceEntitlementOwnerResponse"
      },
      "c1.api.app.v2.DeleteAppResourceUserOwnerRequestInput": {
        "description": "DeleteAppResourceUserOwnerRequest is the request for deleting a user ownership source on a resource.",
        "properties": {
          "userRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Delete App Resource User Owner Request",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAppResourceUserOwnerRequest"
      },
      "c1.api.app.v2.DeleteAppResourceUserOwnerResponse": {
        "description": "DeleteAppResourceUserOwnerResponse is the empty response for deleting a user ownership source on a resource.",
        "title": "Delete App Resource User Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAppResourceUserOwnerResponse"
      },
      "c1.api.app.v2.DeleteAppUserEntitlementOwnerRequestInput": {
        "description": "DeleteAppUserEntitlementOwnerRequest is the request for deleting an entitlement ownership source on an app user.",
        "properties": {
          "appEntitlementRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Delete App User Entitlement Owner Request",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAppUserEntitlementOwnerRequest"
      },
      "c1.api.app.v2.DeleteAppUserEntitlementOwnerResponse": {
        "description": "DeleteAppUserEntitlementOwnerResponse is the empty response for deleting an entitlement ownership source on an app user.",
        "title": "Delete App User Entitlement Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAppUserEntitlementOwnerResponse"
      },
      "c1.api.app.v2.DeleteAppUserOwnerRequestInput": {
        "description": "DeleteUserOwnerRequest is the request for deleting a user ownership source.",
        "properties": {
          "userRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Delete App User Owner Request",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAppUserOwnerRequest"
      },
      "c1.api.app.v2.DeleteAppUserOwnerResponse": {
        "description": "DeleteUserOwnerResponse is the empty response for deleting a user ownership source.",
        "title": "Delete App User Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAppUserOwnerResponse"
      },
      "c1.api.app.v2.DeleteAppUserUserOwnerRequestInput": {
        "description": "DeleteAppUserUserOwnerRequest is the request for deleting a user ownership source on an app user.",
        "properties": {
          "userRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Delete App User User Owner Request",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAppUserUserOwnerRequest"
      },
      "c1.api.app.v2.DeleteAppUserUserOwnerResponse": {
        "description": "DeleteAppUserUserOwnerResponse is the empty response for deleting a user ownership source on an app user.",
        "title": "Delete App User User Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAppUserUserOwnerResponse"
      },
      "c1.api.app.v2.DeleteConnectorEntitlementOwnerRequestInput": {
        "description": "DeleteConnectorEntitlementOwnerRequest is the request for deleting an entitlement ownership source on a connector.",
        "properties": {
          "appEntitlementRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Delete Connector Entitlement Owner Request",
        "type": "object",
        "x-speakeasy-name-override": "DeleteConnectorEntitlementOwnerRequest"
      },
      "c1.api.app.v2.DeleteConnectorEntitlementOwnerResponse": {
        "description": "DeleteConnectorEntitlementOwnerResponse is the empty response for deleting an entitlement ownership source on a connector.",
        "title": "Delete Connector Entitlement Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "DeleteConnectorEntitlementOwnerResponse"
      },
      "c1.api.app.v2.DeleteConnectorUserOwnerRequestInput": {
        "description": "DeleteConnectorUserOwnerRequest is the request for deleting a user ownership source on a connector.",
        "properties": {
          "userRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Delete Connector User Owner Request",
        "type": "object",
        "x-speakeasy-name-override": "DeleteConnectorUserOwnerRequest"
      },
      "c1.api.app.v2.DeleteConnectorUserOwnerResponse": {
        "description": "DeleteConnectorUserOwnerResponse is the empty response for deleting a user ownership source on a connector.",
        "title": "Delete Connector User Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "DeleteConnectorUserOwnerResponse"
      },
      "c1.api.app.v2.GetAppEntitlementEntitlementOwnerResponse": {
        "description": "GetAppEntitlementEntitlementOwnerResponse is the response for getting an entitlement ownership source on an entitlement.",
        "properties": {
          "appEntitlementOwnerEntitlement": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v2.AppEntitlementOwnerEntitlement"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get App Entitlement Entitlement Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "GetAppEntitlementEntitlementOwnerResponse"
      },
      "c1.api.app.v2.GetAppEntitlementOwnerResponse": {
        "description": "GetEntitlementOwnerResponse is the response for getting an entitlement ownership source.",
        "properties": {
          "appOwnerEntitlement": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v2.AppOwnerEntitlement"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get App Entitlement Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "GetAppEntitlementOwnerResponse"
      },
      "c1.api.app.v2.GetAppEntitlementUserOwnerResponse": {
        "description": "GetAppEntitlementUserOwnerResponse is the response for getting a user ownership source on an entitlement.",
        "properties": {
          "appEntitlementOwnerUser": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v2.AppEntitlementOwnerUser"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get App Entitlement User Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "GetAppEntitlementUserOwnerResponse"
      },
      "c1.api.app.v2.GetAppResourceEntitlementOwnerResponse": {
        "description": "GetAppResourceEntitlementOwnerResponse is the response for getting an entitlement ownership source on a resource.",
        "properties": {
          "appResourceOwnerEntitlement": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v2.AppResourceOwnerEntitlement"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get App Resource Entitlement Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "GetAppResourceEntitlementOwnerResponse"
      },
      "c1.api.app.v2.GetAppResourceUserOwnerResponse": {
        "description": "GetAppResourceUserOwnerResponse is the response for getting a user ownership source on a resource.",
        "properties": {
          "appResourceOwnerUser": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v2.AppResourceOwnerUser"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get App Resource User Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "GetAppResourceUserOwnerResponse"
      },
      "c1.api.app.v2.GetAppUserOwnerResponse": {
        "description": "GetUserOwnerResponse is the response for getting a user ownership source.",
        "properties": {
          "appOwnerUser": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v2.AppOwnerUser"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get App User Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "GetAppUserOwnerResponse"
      },
      "c1.api.app.v2.GetConnectorEntitlementOwnerResponse": {
        "description": "GetConnectorEntitlementOwnerResponse is the response for getting an entitlement ownership source on a connector.",
        "properties": {
          "connectorOwnerEntitlement": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v2.ConnectorOwnerEntitlement"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get Connector Entitlement Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "GetConnectorEntitlementOwnerResponse"
      },
      "c1.api.app.v2.GetConnectorUserOwnerResponse": {
        "description": "GetConnectorUserOwnerResponse is the response for getting a user ownership source on a connector.",
        "properties": {
          "connectorOwnerUser": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v2.ConnectorOwnerUser"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get Connector User Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "GetConnectorUserOwnerResponse"
      },
      "c1.api.app.v2.SearchAppEntitlementEntitlementOwnersResponse": {
        "description": "SearchAppEntitlementEntitlementOwnersResponse is the response for searching entitlement ownership sources on an entitlement.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v2.AppEntitlementOwnerEntitlement"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Search App Entitlement Entitlement Owners Response",
        "type": "object",
        "x-speakeasy-name-override": "SearchAppEntitlementEntitlementOwnersResponse"
      },
      "c1.api.app.v2.SearchAppEntitlementOwnersResponse": {
        "description": "SearchEntitlementOwnersResponse is the response for searching entitlement ownership sources.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v2.AppOwnerEntitlement"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Search App Entitlement Owners Response",
        "type": "object",
        "x-speakeasy-name-override": "SearchAppEntitlementOwnersResponse"
      },
      "c1.api.app.v2.SearchAppEntitlementUserOwnersResponse": {
        "description": "SearchAppEntitlementUserOwnersResponse is the response for searching user ownership sources on an entitlement.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v2.AppEntitlementOwnerUser"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Search App Entitlement User Owners Response",
        "type": "object",
        "x-speakeasy-name-override": "SearchAppEntitlementUserOwnersResponse"
      },
      "c1.api.app.v2.SearchAppResourceEntitlementOwnersResponse": {
        "description": "SearchAppResourceEntitlementOwnersResponse is the response for searching entitlement ownership sources on a resource.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v2.AppResourceOwnerEntitlement"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Search App Resource Entitlement Owners Response",
        "type": "object",
        "x-speakeasy-name-override": "SearchAppResourceEntitlementOwnersResponse"
      },
      "c1.api.app.v2.SearchAppResourceUserOwnersResponse": {
        "description": "SearchAppResourceUserOwnersResponse is the response for searching user ownership sources on a resource.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v2.AppResourceOwnerUser"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Search App Resource User Owners Response",
        "type": "object",
        "x-speakeasy-name-override": "SearchAppResourceUserOwnersResponse"
      },
      "c1.api.app.v2.SearchAppUserEntitlementOwnersResponse": {
        "description": "SearchAppUserEntitlementOwnersResponse is the response for searching entitlement ownership sources on an app user.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v2.AppUserOwnerEntitlement"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Search App User Entitlement Owners Response",
        "type": "object",
        "x-speakeasy-name-override": "SearchAppUserEntitlementOwnersResponse"
      },
      "c1.api.app.v2.SearchAppUserOwnersResponse": {
        "description": "SearchUserOwnersResponse is the response for searching user ownership sources.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v2.AppOwnerUser"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Search App User Owners Response",
        "type": "object",
        "x-speakeasy-name-override": "SearchAppUserOwnersResponse"
      },
      "c1.api.app.v2.SearchAppUserUserOwnersResponse": {
        "description": "SearchAppUserUserOwnersResponse is the response for searching user ownership sources on an app user.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v2.AppUserOwnerUser"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Search App User User Owners Response",
        "type": "object",
        "x-speakeasy-name-override": "SearchAppUserUserOwnersResponse"
      },
      "c1.api.app.v2.SearchConnectorEntitlementOwnersResponse": {
        "description": "SearchConnectorEntitlementOwnersResponse is the response for searching entitlement ownership sources on a connector.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v2.ConnectorOwnerEntitlement"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Search Connector Entitlement Owners Response",
        "type": "object",
        "x-speakeasy-name-override": "SearchConnectorEntitlementOwnersResponse"
      },
      "c1.api.app.v2.SearchConnectorUserOwnersResponse": {
        "description": "SearchConnectorUserOwnersResponse is the response for searching user ownership sources on a connector.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v2.ConnectorOwnerUser"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Search Connector User Owners Response",
        "type": "object",
        "x-speakeasy-name-override": "SearchConnectorUserOwnersResponse"
      },
      "c1.api.app.v2.SetAppEntitlementOwnersRequestInput": {
        "description": "SetAppEntitlementOwnersRequest is the request for setting the owners of an app entitlement for a given role.",
        "properties": {
          "appEntitlementRefs": {
            "description": "The appEntitlementRefs field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "roleSlug": {
            "description": "The roleSlug field.",
            "type": "string"
          },
          "userRefs": {
            "description": "The userRefs field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Set App Entitlement Owners Request",
        "type": "object",
        "x-speakeasy-name-override": "SetAppEntitlementOwnersRequestV2"
      },
      "c1.api.app.v2.SetAppEntitlementOwnersResponse": {
        "description": "SetAppEntitlementOwnersResponse is the empty response for setting app entitlement owners.",
        "title": "Set App Entitlement Owners Response",
        "type": "object",
        "x-speakeasy-name-override": "SetAppEntitlementOwnersResponseV2"
      },
      "c1.api.app.v2.SetAppOwnersRequestInput": {
        "description": "SetAppOwnersRequest is the request for setting user owners for an app and role.",
        "properties": {
          "appEntitlementRefs": {
            "description": "The appEntitlementRefs field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "roleSlug": {
            "description": "The roleSlug field.",
            "type": "string"
          },
          "userRefs": {
            "description": "The userRefs field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Set App Owners Request",
        "type": "object",
        "x-speakeasy-name-override": "SetAppOwnersRequestV2"
      },
      "c1.api.app.v2.SetAppOwnersResponse": {
        "description": "SetAppOwnersResponse is the empty response for setting app owners.",
        "title": "Set App Owners Response",
        "type": "object",
        "x-speakeasy-name-override": "SetAppOwnersResponseV2"
      },
      "c1.api.app.v2.SetAppResourceOwnersV2RequestInput": {
        "description": "SetAppResourceOwnersV2Request is the request for setting the owners of an app resource for a given role.",
        "properties": {
          "appEntitlementRefs": {
            "description": "The appEntitlementRefs field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "roleSlug": {
            "description": "The roleSlug field.",
            "type": "string"
          },
          "userRefs": {
            "description": "The userRefs field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Set App Resource Owners V 2 Request",
        "type": "object",
        "x-speakeasy-name-override": "SetAppResourceOwnersV2Request"
      },
      "c1.api.app.v2.SetAppResourceOwnersV2Response": {
        "description": "SetAppResourceOwnersV2Response is the empty response for setting app resource owners.",
        "title": "Set App Resource Owners V 2 Response",
        "type": "object",
        "x-speakeasy-name-override": "SetAppResourceOwnersV2Response"
      },
      "c1.api.app.v2.SetAppUserOwnersV2RequestInput": {
        "description": "SetAppUserOwnersV2Request is the request for setting the owners of an app user for a given role.",
        "properties": {
          "appEntitlementRefs": {
            "description": "The appEntitlementRefs field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "roleSlug": {
            "description": "The roleSlug field.",
            "type": "string"
          },
          "userRefs": {
            "description": "The userRefs field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Set App User Owners V 2 Request",
        "type": "object",
        "x-speakeasy-name-override": "SetAppUserOwnersV2Request"
      },
      "c1.api.app.v2.SetAppUserOwnersV2Response": {
        "description": "SetAppUserOwnersV2Response is the empty response for setting app user owners.",
        "title": "Set App User Owners V 2 Response",
        "type": "object",
        "x-speakeasy-name-override": "SetAppUserOwnersV2Response"
      },
      "c1.api.app.v2.SetConnectorOwnersV2RequestInput": {
        "description": "SetConnectorOwnersV2Request is the request for setting the owners of a connector for a given role.",
        "properties": {
          "appEntitlementRefs": {
            "description": "The appEntitlementRefs field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "roleSlug": {
            "description": "The role slug for this ownership grant. Required.",
            "type": "string"
          },
          "userRefs": {
            "description": "The userRefs field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Set Connector Owners V 2 Request",
        "type": "object",
        "x-speakeasy-name-override": "SetConnectorOwnersV2Request"
      },
      "c1.api.app.v2.SetConnectorOwnersV2Response": {
        "description": "SetConnectorOwnersV2Response is the empty response for setting connector owners.",
        "title": "Set Connector Owners V 2 Response",
        "type": "object",
        "x-speakeasy-name-override": "SetConnectorOwnersV2Response"
      },
      "c1.api.artifact.v1.Artifact": {
        "description": "Artifact is audience-visible catalog metadata, not an authoring package.\n It contains no source identities, storage references, cells or arguments.",
        "properties": {
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "Optional audience-visible description; never guarded draft text.",
            "type": "string"
          },
          "displayName": {
            "description": "Current Owner-managed catalog name, independent of pinned-version source text.\n Consumers reject Unicode-whitespace-only names without trimming valid names.",
            "type": "string"
          },
          "id": {
            "description": "Unique opaque identifier for this Artifact.",
            "readOnly": true,
            "type": "string"
          },
          "publishedVersionNumericId": {
            "description": "Exact current publication number; zero means unpublished. Never infer the\n current publication from the largest version number. JS clients use strings.",
            "format": "int64",
            "readOnly": true,
            "type": "string"
          },
          "tags": {
            "description": "Optional unique lowercase ASCII topic tokens, not permissions or classifications.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "viewerUrl": {
            "description": "Server-generated viewer link when published; empty when unpublished.\n This is not a download capability and every open checks current grants.",
            "readOnly": true,
            "type": "string"
          }
        },
        "title": "Artifact",
        "type": "object",
        "x-speakeasy-name-override": "Artifact"
      },
      "c1.api.artifact.v1.ArtifactServiceDeleteRequestInput": {
        "description": "ArtifactServiceDeleteRequest identifies an Artifact to delete.",
        "title": "Artifact Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "ArtifactServiceDeleteRequest"
      },
      "c1.api.artifact.v1.ArtifactServiceDeleteResponse": {
        "description": "ArtifactServiceDeleteResponse confirms deletion without returning metadata.",
        "title": "Artifact Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "ArtifactServiceDeleteResponse"
      },
      "c1.api.artifact.v1.ArtifactServiceGetResponse": {
        "description": "ArtifactServiceGetResponse contains current-authorized catalog metadata.",
        "properties": {
          "artifact": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.artifact.v1.Artifact"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Artifact Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "ArtifactServiceGetResponse"
      },
      "c1.api.artifact.v1.ArtifactServiceGetVersionResponse": {
        "description": "ArtifactServiceGetVersionResponse contains the canonical publication outcome.",
        "properties": {
          "version": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.artifact.v1.ArtifactVersion"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Artifact Service Get Version Response",
        "type": "object",
        "x-speakeasy-name-override": "ArtifactServiceGetVersionResponse"
      },
      "c1.api.artifact.v1.ArtifactServiceListVersionsResponse": {
        "description": "ArtifactServiceListVersionsResponse contains currently authorized history.\n Discovery is eventual; use GetVersion for canonical publication status.",
        "properties": {
          "list": {
            "description": "Authorized versions in descending numeric order, without duplicates.",
            "items": {
              "$ref": "#/components/schemas/c1.api.artifact.v1.ArtifactVersion"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Sealed continuation token, empty when scanning is complete. A short or empty\n page may continue; no raw candidate or denied counts are returned.",
            "type": "string"
          }
        },
        "title": "Artifact Service List Versions Response",
        "type": "object",
        "x-speakeasy-name-override": "ArtifactServiceListVersionsResponse"
      },
      "c1.api.artifact.v1.ArtifactServiceSearchRequest": {
        "description": "ArtifactServiceSearchRequest searches only audience-visible catalog metadata.\n Consumers must deduplicate grant-derived candidates before pagination, strongly\n recheck canonical metadata and current grants before disclosure, and reject\n stale query-relevant observations. Order is created_at then id, both descending.\n Cursor validation must bind authenticated tenant/user, filters, ordering and\n last consumed boundary; these semantic checks are not generated validators.\n Candidate scanning must be bounded; rejected candidates still advance the\n consumed boundary, without exposing candidate or rejection counts.",
        "properties": {
          "pageSize": {
            "description": "Maximum number of results per page; zero selects the service default, 20.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "Sealed continuation token from a previous response with the same filters.",
            "type": "string"
          },
          "query": {
            "description": "Free-text query matched against current catalog display name and description.\n Empty means no text filter; source text and live data are never searched.",
            "type": "string"
          },
          "tags": {
            "description": "Require all specified topic tags; empty means no tag filter.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Artifact Service Search Request",
        "type": "object",
        "x-speakeasy-name-override": "ArtifactServiceSearchRequest"
      },
      "c1.api.artifact.v1.ArtifactServiceSearchResponse": {
        "description": "ArtifactServiceSearchResponse contains only currently authorized metadata.\n Readers see published Artifacts; Owners may also see their unpublished entries.\n No raw candidate totals, denied/scanned counts or global facets are exposed.",
        "properties": {
          "list": {
            "description": "Authorized Artifacts in descending creation-time and ID order.",
            "items": {
              "$ref": "#/components/schemas/c1.api.artifact.v1.Artifact"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Sealed continuation token, empty when scanning is complete. A short or empty\n page can still continue; this token does not promise another visible match.",
            "type": "string"
          }
        },
        "title": "Artifact Service Search Response",
        "type": "object",
        "x-speakeasy-name-override": "ArtifactServiceSearchResponse"
      },
      "c1.api.artifact.v1.ArtifactServiceUpdateRequestInput": {
        "description": "ArtifactServiceUpdateRequest changes only selected audience-visible metadata.\n Consumers must require a nonempty unique mask relative to Artifact, drawn\n exactly from display_name, description and tags. Wildcards, nested paths,\n unknown paths and output-only fields (including the publication pointer) are\n rejected; only selected fields are applied.\n Recursive Artifact validation is skipped so description-only or tags-only\n updates do not require a name. Consumers must manually validate artifact.id\n and selected fields after normal hooks: ID shape, field byte bounds, tag\n grammar, count and uniqueness, and a nonempty, non-Unicode-whitespace-only\n display_name when selected. Names must not be automatically trimmed.\n Generated validation checks only artifact and update_mask message presence;\n it does not enforce mask semantics or selected-field validation.",
        "properties": {
          "artifact": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.artifact.v1.Artifact"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Artifact Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "ArtifactServiceUpdateRequest"
      },
      "c1.api.artifact.v1.ArtifactServiceUpdateResponse": {
        "description": "ArtifactServiceUpdateResponse contains the updated catalog metadata.",
        "properties": {
          "artifact": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.artifact.v1.Artifact"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Artifact Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "ArtifactServiceUpdateResponse"
      },
      "c1.api.artifact.v1.ArtifactVersion": {
        "description": "ArtifactVersion is a redacted publication outcome identified by its parent\n and positive numeric ID. It contains no source or executable definition.\n Authorization uses the canonical parent Artifact policy resource; versions\n have no separate entitlement or policy identity.\n READY alone does not grant access: current role eligibility and live parent\n and child records are required, including for a previously published pin.",
        "properties": {
          "artifactId": {
            "description": "Identifier of the Artifact that owns this version.",
            "readOnly": true,
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "error": {
            "description": "Safe failure summary, populated only for FAILED; never source text, secrets\n or detailed tool/backend errors. Consumers must enforce this condition.",
            "readOnly": true,
            "type": "string"
          },
          "expectedPublishedVersionNumericId": {
            "description": "Exact publication pointer expected at admission; zero means unpublished.\n This expectation is not proof that publication succeeded.",
            "format": "int64",
            "readOnly": true,
            "type": "string"
          },
          "numericId": {
            "description": "Exact positive version number within this Artifact, displayed as v40.\n Gaps are allowed; JS clients use strings to preserve the full int64 range.",
            "format": "int64",
            "readOnly": true,
            "type": "string"
          },
          "state": {
            "description": "Publication outcome. PENDING and FAILED are visible only to current Owners.",
            "enum": [
              "ARTIFACT_VERSION_STATE_UNSPECIFIED",
              "ARTIFACT_VERSION_STATE_PENDING",
              "ARTIFACT_VERSION_STATE_READY",
              "ARTIFACT_VERSION_STATE_FAILED"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "viewerUrl": {
            "description": "Server-generated pinned viewer link, not a download capability. Only an\n eligible READY version can be opened, with current grants checked each time.",
            "readOnly": true,
            "type": "string"
          }
        },
        "title": "Artifact Version",
        "type": "object",
        "x-speakeasy-name-override": "ArtifactVersion"
      },
      "c1.api.attribute.v1.AttributeType": {
        "description": "AttributeType defines the type of an attribute.",
        "properties": {
          "id": {
            "description": "The ID of the AttributeType.",
            "type": "string"
          },
          "name": {
            "description": "The name of the AttributeType.",
            "type": "string"
          }
        },
        "title": "Attribute Type",
        "type": "object",
        "x-speakeasy-name-override": "AttributeType"
      },
      "c1.api.attribute.v1.AttributeValue": {
        "description": "AttributeValue is the value of an attribute of a defined type.",
        "properties": {
          "attributeTypeId": {
            "description": "The ID of the AttributeType that this AttributeValue belongs to.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "The ID of the AttributeValue.",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "value": {
            "description": "The value of the AttributeValue. This is the string that will be displayed to the user.",
            "type": "string"
          }
        },
        "title": "Attribute Value",
        "type": "object",
        "x-speakeasy-name-override": "AttributeValue"
      },
      "c1.api.attribute.v1.CreateAttributeValueRequest": {
        "description": "The CreateAttributeValueRequest message.",
        "properties": {
          "attributeTypeId": {
            "description": "The attributeTypeId field.",
            "type": "string"
          },
          "value": {
            "description": "The value field.",
            "type": "string"
          }
        },
        "title": "Create Attribute Value Request",
        "type": "object",
        "x-speakeasy-name-override": "CreateAttributeValueRequest"
      },
      "c1.api.attribute.v1.CreateAttributeValueResponse": {
        "description": "CreateAttributeValueResponse is the response for creating an attribute value.",
        "properties": {
          "value": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.attribute.v1.AttributeValue"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create Attribute Value Response",
        "type": "object",
        "x-speakeasy-name-override": "CreateAttributeValueResponse"
      },
      "c1.api.attribute.v1.CreateComplianceFrameworkAttributeValueRequest": {
        "description": "The CreateComplianceFrameworkAttributeValueRequest message.",
        "properties": {
          "value": {
            "description": "The value field.",
            "type": "string"
          }
        },
        "title": "Create Compliance Framework Attribute Value Request",
        "type": "object",
        "x-speakeasy-name-override": "CreateComplianceFrameworkAttributeValueRequest"
      },
      "c1.api.attribute.v1.CreateComplianceFrameworkAttributeValueResponse": {
        "description": "The CreateComplianceFrameworkAttributeValueResponse message.",
        "properties": {
          "value": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.attribute.v1.AttributeValue"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create Compliance Framework Attribute Value Response",
        "type": "object",
        "x-speakeasy-name-override": "CreateComplianceFrameworkAttributeValueResponse"
      },
      "c1.api.attribute.v1.CreateRiskLevelAttributeValueRequest": {
        "description": "The CreateRiskLevelAttributeValueRequest message.",
        "properties": {
          "value": {
            "description": "The value field.",
            "type": "string"
          }
        },
        "title": "Create Risk Level Attribute Value Request",
        "type": "object",
        "x-speakeasy-name-override": "CreateRiskLevelAttributeValueRequest"
      },
      "c1.api.attribute.v1.CreateRiskLevelAttributeValueResponse": {
        "description": "The CreateRiskLevelAttributeValueResponse message.",
        "properties": {
          "value": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.attribute.v1.AttributeValue"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create Risk Level Attribute Value Response",
        "type": "object",
        "x-speakeasy-name-override": "CreateRiskLevelAttributeValueResponse"
      },
      "c1.api.attribute.v1.DeleteAttributeValueRequestInput": {
        "description": "The DeleteAttributeValueRequest message.",
        "title": "Delete Attribute Value Request",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAttributeValueRequest"
      },
      "c1.api.attribute.v1.DeleteAttributeValueResponse": {
        "description": "DeleteAttributeValueResponse is the empty response for deleting an attribute value.",
        "title": "Delete Attribute Value Response",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAttributeValueResponse"
      },
      "c1.api.attribute.v1.DeleteComplianceFrameworkAttributeValueRequestInput": {
        "description": "The DeleteComplianceFrameworkAttributeValueRequest message.",
        "title": "Delete Compliance Framework Attribute Value Request",
        "type": "object",
        "x-speakeasy-name-override": "DeleteComplianceFrameworkAttributeValueRequest"
      },
      "c1.api.attribute.v1.DeleteComplianceFrameworkAttributeValueResponse": {
        "description": "The DeleteComplianceFrameworkAttributeValueResponse message.",
        "title": "Delete Compliance Framework Attribute Value Response",
        "type": "object",
        "x-speakeasy-name-override": "DeleteComplianceFrameworkAttributeValueResponse"
      },
      "c1.api.attribute.v1.DeleteRiskLevelAttributeValueRequestInput": {
        "description": "The DeleteRiskLevelAttributeValueRequest message.",
        "title": "Delete Risk Level Attribute Value Request",
        "type": "object",
        "x-speakeasy-name-override": "DeleteRiskLevelAttributeValueRequest"
      },
      "c1.api.attribute.v1.DeleteRiskLevelAttributeValueResponse": {
        "description": "The DeleteRiskLevelAttributeValueResponse message.",
        "title": "Delete Risk Level Attribute Value Response",
        "type": "object",
        "x-speakeasy-name-override": "DeleteRiskLevelAttributeValueResponse"
      },
      "c1.api.attribute.v1.GetAttributeValueResponse": {
        "description": "GetAttributeValueResponse is the response for getting an attribute value by id.",
        "properties": {
          "value": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.attribute.v1.AttributeValue"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get Attribute Value Response",
        "type": "object",
        "x-speakeasy-name-override": "GetAttributeValueResponse"
      },
      "c1.api.attribute.v1.GetComplianceFrameworkAttributeValueResponse": {
        "description": "The GetComplianceFrameworkAttributeValueResponse message.",
        "properties": {
          "value": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.attribute.v1.AttributeValue"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get Compliance Framework Attribute Value Response",
        "type": "object",
        "x-speakeasy-name-override": "GetComplianceFrameworkAttributeValueResponse"
      },
      "c1.api.attribute.v1.GetRiskLevelAttributeValueResponse": {
        "description": "The GetRiskLevelAttributeValueResponse message.",
        "properties": {
          "value": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.attribute.v1.AttributeValue"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get Risk Level Attribute Value Response",
        "type": "object",
        "x-speakeasy-name-override": "GetRiskLevelAttributeValueResponse"
      },
      "c1.api.attribute.v1.ListAttributeTypesResponse": {
        "description": "ListAttributeTypesResponse is the response for listing attribute types.",
        "properties": {
          "list": {
            "description": "The list of AttributeTypes.",
            "items": {
              "$ref": "#/components/schemas/c1.api.attribute.v1.AttributeType"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken is shown for the next page if the number of results is larger than the max page size.\n The server returns one page of results and the nextPageToken until all results are retreived.\n To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page.",
            "type": "string"
          }
        },
        "title": "List Attribute Types Response",
        "type": "object",
        "x-speakeasy-name-override": "ListAttributeTypesResponse"
      },
      "c1.api.attribute.v1.ListAttributeValuesResponse": {
        "description": "ListAttributeValuesResponse is the response for listing attribute values for a given AttributeType.",
        "properties": {
          "list": {
            "description": "The list of AttributeValues.",
            "items": {
              "$ref": "#/components/schemas/c1.api.attribute.v1.AttributeValue"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken is shown for the next page if the number of results is larger than the max page size.\n The server returns one page of results and the nextPageToken until all results are retreived.\n To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page.",
            "type": "string"
          }
        },
        "title": "List Attribute Values Response",
        "type": "object",
        "x-speakeasy-name-override": "ListAttributeValuesResponse"
      },
      "c1.api.attribute.v1.ListComplianceFrameworksResponse": {
        "description": "ListComplianceFrameworksResponse is the response for listing compliance framework attribute values.",
        "properties": {
          "list": {
            "description": "The list of compliance framework attribute values.",
            "items": {
              "$ref": "#/components/schemas/c1.api.attribute.v1.AttributeValue"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The token to retrieve the next page of results, or empty if there are no more results.",
            "type": "string"
          }
        },
        "title": "List Compliance Frameworks Response",
        "type": "object",
        "x-speakeasy-name-override": "ListComplianceFrameworksResponse"
      },
      "c1.api.attribute.v1.ListRiskLevelsResponse": {
        "description": "ListRiskLevelsResponse is the response for listing risk level attribute values.",
        "properties": {
          "list": {
            "description": "The list of risk level attribute values.",
            "items": {
              "$ref": "#/components/schemas/c1.api.attribute.v1.AttributeValue"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The token to retrieve the next page of results, or empty if there are no more results.",
            "type": "string"
          }
        },
        "title": "List Risk Levels Response",
        "type": "object",
        "x-speakeasy-name-override": "ListRiskLevelsResponse"
      },
      "c1.api.attribute.v1.SearchAttributeValuesRequest": {
        "description": "Search Attributes by a few properties.",
        "properties": {
          "attributeTypeIds": {
            "description": "The attribute type ids for what type of attributes to search for.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "excludeIds": {
            "description": "Exclude attributes with these ids from the search results.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "ids": {
            "description": "Include attributes with these ids in the search results.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pageSize": {
            "description": "The pageSize where 0 \u003c= pageSize \u003c= 100. Values \u003c 10 will be set to 10. A value of 0 returns the default page size (currently 25)",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          },
          "query": {
            "description": "Query the attributes with a fuzzy search on display name and description.",
            "type": "string"
          },
          "value": {
            "description": "Search for attributes with a case insensitive match on the attribute value which is the attribute name.",
            "type": "string"
          }
        },
        "title": "Search Attribute Values Request",
        "type": "object",
        "x-speakeasy-name-override": "SearchAttributeValuesRequest"
      },
      "c1.api.attribute.v1.SearchAttributeValuesResponse": {
        "description": "SearchAttributeValuesResponse is the response for searching AttributeValues.",
        "properties": {
          "list": {
            "description": "The list of returned AttributeValues.",
            "items": {
              "$ref": "#/components/schemas/c1.api.attribute.v1.AttributeValue"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken is shown for the next page if the number of results is larger than the max page size.\n The server returns one page of results and the nextPageToken until all results are retreived.\n To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page.",
            "type": "string"
          }
        },
        "title": "Search Attribute Values Response",
        "type": "object",
        "x-speakeasy-name-override": "SearchAttributeValuesResponse"
      },
      "c1.api.auth.v1.IntrospectResponse": {
        "description": "IntrospectResponse contains information about the current user who is authenticated.",
        "properties": {
          "deviceClientId": {
            "description": "The OAuth client_id of the device client registered for this token. Present\n only on tokens issued by the device registration grant; the client reads it\n once and presents it on the subsequent token exchange. Empty for all other\n tokens.",
            "type": "string"
          },
          "disabledModules": {
            "description": "The modules turned off for the tenant the logged in user belongs to. Absent\n from this list means enabled: every module is on by default. Clients MUST\n treat an unrecognized value as \"a module this client does not know about is\n disabled\".",
            "items": {
              "enum": [
                "MODULE_ID_UNSPECIFIED",
                "MODULE_ID_SECRET_SHARING"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "features": {
            "description": "The list of feature flags enabled for the tenant the logged in user belongs to.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "permissions": {
            "description": "The list of permissions that the current logged in user has.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "principleId": {
            "description": "The principleID of the current logged in user.",
            "type": "string"
          },
          "roles": {
            "description": "The list of roles that the current logged in user has.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "tenantId": {
            "description": "The tenantID from the authenticated caller's passport.",
            "type": "string"
          },
          "userId": {
            "description": "The userID of the current logged in user.",
            "type": "string"
          }
        },
        "title": "Introspect Response",
        "type": "object",
        "x-speakeasy-name-override": "IntrospectResponse"
      },
      "c1.api.auth_config.v1.AuthConfigC1Local": {
        "description": "The AuthConfigC1Local message.",
        "properties": {
          "delegatedVerifiers": {
            "description": "The delegatedVerifiers field.",
            "items": {
              "enum": [
                "DELEGATED_VERIFIER_TYPE_UNSPECIFIED",
                "DELEGATED_VERIFIER_TYPE_GOOGLE",
                "DELEGATED_VERIFIER_TYPE_MICROSOFT",
                "DELEGATED_VERIFIER_TYPE_GITHUB"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Auth Config C 1 Local",
        "type": "object",
        "x-speakeasy-name-override": "AuthConfigC1Local"
      },
      "c1.api.auth_config.v1.AuthConfigGoogle": {
        "description": "The AuthConfigGoogle message.",
        "properties": {
          "additionalHostedDomains": {
            "description": "Additional hosted domains accepted at login beyond hosted_domains.",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "hostedDomains": {
            "description": "The hostedDomains field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Auth Config Google",
        "type": "object",
        "x-speakeasy-name-override": "AuthConfigGoogle"
      },
      "c1.api.auth_config.v1.AuthConfigJumpCloud": {
        "description": "The AuthConfigJumpCloud message.",
        "properties": {
          "oidcClientId": {
            "description": "The oidcClientId field.",
            "type": "string"
          },
          "oidcClientSecret": {
            "description": "Write-only. Never returned in get/list.",
            "type": "string"
          }
        },
        "title": "Auth Config Jump Cloud",
        "type": "object",
        "x-speakeasy-name-override": "AuthConfigJumpCloud"
      },
      "c1.api.auth_config.v1.AuthConfigMicrosoft": {
        "description": "The AuthConfigMicrosoft message.",
        "properties": {
          "tenantIds": {
            "description": "The tenantIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Auth Config Microsoft",
        "type": "object",
        "x-speakeasy-name-override": "AuthConfigMicrosoft"
      },
      "c1.api.auth_config.v1.AuthConfigOIDC": {
        "description": "The AuthConfigOIDC message.",
        "properties": {
          "exactMatchClaims": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "The exactMatchClaims field.",
            "type": "object"
          },
          "issuerId": {
            "description": "The issuerId field.",
            "type": "string"
          },
          "oidcClientId": {
            "description": "The oidcClientId field.",
            "type": "string"
          },
          "oidcClientSecret": {
            "description": "The oidcClientSecret field.",
            "type": "string"
          },
          "scopes": {
            "description": "The scopes field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Auth Config Oidc",
        "type": "object",
        "x-speakeasy-name-override": "AuthConfigOIDC"
      },
      "c1.api.auth_config.v1.AuthConfigOkta": {
        "description": "The AuthConfigOkta message.",
        "properties": {
          "domain": {
            "description": "The domain field.",
            "type": "string"
          },
          "oidcClientId": {
            "description": "The oidcClientId field.",
            "type": "string"
          },
          "oidcClientSecret": {
            "description": "Write-only. Never returned in get/list.",
            "type": "string"
          }
        },
        "title": "Auth Config Okta",
        "type": "object",
        "x-speakeasy-name-override": "AuthConfigOkta"
      },
      "c1.api.auth_config.v1.AuthConfigOneLogin": {
        "description": "The AuthConfigOneLogin message.",
        "properties": {
          "domain": {
            "description": "The domain field.",
            "type": "string"
          },
          "oidcClientId": {
            "description": "The oidcClientId field.",
            "type": "string"
          },
          "oidcClientSecret": {
            "description": "The oidcClientSecret field.",
            "type": "string"
          }
        },
        "title": "Auth Config One Login",
        "type": "object",
        "x-speakeasy-name-override": "AuthConfigOneLogin"
      },
      "c1.api.auth_config.v1.AuthConfigPingOne": {
        "description": "The AuthConfigPingOne message.",
        "properties": {
          "environmentId": {
            "description": "The environmentId field.",
            "type": "string"
          },
          "oidcClientId": {
            "description": "The oidcClientId field.",
            "type": "string"
          },
          "oidcClientSecret": {
            "description": "The oidcClientSecret field.",
            "type": "string"
          }
        },
        "title": "Auth Config Ping One",
        "type": "object",
        "x-speakeasy-name-override": "AuthConfigPingOne"
      },
      "c1.api.auth_config.v1.TenantAuthConfig": {
        "description": "The TenantAuthConfig message.\n\nThis message contains a oneof named provider_config. Only a single field of the following list may be set at a time:\n  - google\n  - microsoft\n  - okta\n  - onelogin\n  - jumpcloud\n  - pingone\n  - oidc\n  - c1Local\n",
        "properties": {
          "bootstrapDomains": {
            "description": "Bootstrap routing: email domains that route unknown users to this config.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "c1Local": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.auth_config.v1.AuthConfigC1Local"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "deprecationDeadline": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "deprecationMessage": {
            "description": "User-visible message shown when status=DEPRECATED.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "google": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.auth_config.v1.AuthConfigGoogle"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "isDefaultBootstrap": {
            "description": "The isDefaultBootstrap field.",
            "type": "boolean"
          },
          "jumpcloud": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.auth_config.v1.AuthConfigJumpCloud"
              },
              {
                "type": "null"
              }
            ]
          },
          "microsoft": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.auth_config.v1.AuthConfigMicrosoft"
              },
              {
                "type": "null"
              }
            ]
          },
          "oidc": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.auth_config.v1.AuthConfigOIDC"
              },
              {
                "type": "null"
              }
            ]
          },
          "okta": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.auth_config.v1.AuthConfigOkta"
              },
              {
                "type": "null"
              }
            ]
          },
          "onelogin": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.auth_config.v1.AuthConfigOneLogin"
              },
              {
                "type": "null"
              }
            ]
          },
          "pingone": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.auth_config.v1.AuthConfigPingOne"
              },
              {
                "type": "null"
              }
            ]
          },
          "providerType": {
            "description": "Provider type (read-only after creation — provider config determines type).",
            "enum": [
              "AUTH_CONFIG_PROVIDER_TYPE_UNSPECIFIED",
              "AUTH_CONFIG_PROVIDER_TYPE_GOOGLE",
              "AUTH_CONFIG_PROVIDER_TYPE_MICROSOFT",
              "AUTH_CONFIG_PROVIDER_TYPE_OKTA",
              "AUTH_CONFIG_PROVIDER_TYPE_ONELOGIN",
              "AUTH_CONFIG_PROVIDER_TYPE_JUMPCLOUD",
              "AUTH_CONFIG_PROVIDER_TYPE_PINGONE",
              "AUTH_CONFIG_PROVIDER_TYPE_OIDC",
              "AUTH_CONFIG_PROVIDER_TYPE_C1_LOCAL"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "status": {
            "description": "The status field.",
            "enum": [
              "AUTH_CONFIG_STATUS_UNSPECIFIED",
              "AUTH_CONFIG_STATUS_ACTIVE",
              "AUTH_CONFIG_STATUS_DEPRECATED",
              "AUTH_CONFIG_STATUS_DISABLED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Tenant Auth Config",
        "type": "object",
        "x-speakeasy-name-override": "TenantAuthConfig"
      },
      "c1.api.auth_config.v1.TenantAuthConfigServiceCreateRequest": {
        "description": "The TenantAuthConfigServiceCreateRequest message.\n\nThis message contains a oneof named provider_config. Only a single field of the following list may be set at a time:\n  - google\n  - microsoft\n  - okta\n  - onelogin\n  - jumpcloud\n  - pingone\n  - oidc\n  - c1Local\n",
        "properties": {
          "bootstrapDomains": {
            "description": "Email domains that route unknown users to this authentication provider during login.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "c1Local": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.auth_config.v1.AuthConfigC1Local"
              },
              {
                "type": "null"
              }
            ]
          },
          "deprecationDeadline": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "deprecationMessage": {
            "description": "A user-visible message explaining why the provider is deprecated.",
            "type": "string"
          },
          "displayName": {
            "description": "The human-readable name for this authentication provider.",
            "type": "string"
          },
          "google": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.auth_config.v1.AuthConfigGoogle"
              },
              {
                "type": "null"
              }
            ]
          },
          "isDefaultBootstrap": {
            "description": "Whether this provider is the default for users whose email domain has no explicit mapping.",
            "type": "boolean"
          },
          "jumpcloud": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.auth_config.v1.AuthConfigJumpCloud"
              },
              {
                "type": "null"
              }
            ]
          },
          "microsoft": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.auth_config.v1.AuthConfigMicrosoft"
              },
              {
                "type": "null"
              }
            ]
          },
          "oidc": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.auth_config.v1.AuthConfigOIDC"
              },
              {
                "type": "null"
              }
            ]
          },
          "okta": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.auth_config.v1.AuthConfigOkta"
              },
              {
                "type": "null"
              }
            ]
          },
          "onelogin": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.auth_config.v1.AuthConfigOneLogin"
              },
              {
                "type": "null"
              }
            ]
          },
          "pingone": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.auth_config.v1.AuthConfigPingOne"
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "description": "The initial status of the authentication provider.",
            "enum": [
              "AUTH_CONFIG_STATUS_UNSPECIFIED",
              "AUTH_CONFIG_STATUS_ACTIVE",
              "AUTH_CONFIG_STATUS_DEPRECATED",
              "AUTH_CONFIG_STATUS_DISABLED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "required": [
          "displayName"
        ],
        "title": "Tenant Auth Config Service Create Request",
        "type": "object",
        "x-speakeasy-name-override": "TenantAuthConfigServiceCreateRequest"
      },
      "c1.api.auth_config.v1.TenantAuthConfigServiceCreateResponse": {
        "description": "The TenantAuthConfigServiceCreateResponse message.",
        "properties": {
          "authConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.auth_config.v1.TenantAuthConfig"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Tenant Auth Config Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "TenantAuthConfigServiceCreateResponse"
      },
      "c1.api.auth_config.v1.TenantAuthConfigServiceDeleteRequestInput": {
        "description": "The TenantAuthConfigServiceDeleteRequest message.",
        "title": "Tenant Auth Config Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "TenantAuthConfigServiceDeleteRequest"
      },
      "c1.api.auth_config.v1.TenantAuthConfigServiceDeleteResponse": {
        "description": "The TenantAuthConfigServiceDeleteResponse message.",
        "title": "Tenant Auth Config Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "TenantAuthConfigServiceDeleteResponse"
      },
      "c1.api.auth_config.v1.TenantAuthConfigServiceGetResponse": {
        "description": "The TenantAuthConfigServiceGetResponse message.",
        "properties": {
          "authConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.auth_config.v1.TenantAuthConfig"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Tenant Auth Config Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "TenantAuthConfigServiceGetResponse"
      },
      "c1.api.auth_config.v1.TenantAuthConfigServiceListResponse": {
        "description": "The TenantAuthConfigServiceListResponse message.",
        "properties": {
          "list": {
            "description": "The list of authentication provider configurations.",
            "items": {
              "$ref": "#/components/schemas/c1.api.auth_config.v1.TenantAuthConfig"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "A token to retrieve the next page of results, or empty if there are no more results.",
            "type": "string"
          }
        },
        "title": "Tenant Auth Config Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "TenantAuthConfigServiceListResponse"
      },
      "c1.api.auth_config.v1.TenantAuthConfigServiceUpdateRequestInput": {
        "description": "The TenantAuthConfigServiceUpdateRequest message.",
        "properties": {
          "authConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.auth_config.v1.TenantAuthConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Tenant Auth Config Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "TenantAuthConfigServiceUpdateRequest"
      },
      "c1.api.auth_config.v1.TenantAuthConfigServiceUpdateResponse": {
        "description": "The TenantAuthConfigServiceUpdateResponse message.",
        "properties": {
          "authConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.auth_config.v1.TenantAuthConfig"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Tenant Auth Config Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "TenantAuthConfigServiceUpdateResponse"
      },
      "c1.api.authorization.v1.ActorObjectPermissions": {
        "description": "ActorObjectPermissions describes which actions the calling user is permitted to perform on an object, as determined by policy.",
        "properties": {
          "delete": {
            "description": "The delete field.",
            "type": "boolean"
          },
          "edit": {
            "description": "The edit field.",
            "type": "boolean"
          },
          "extra": {
            "additionalProperties": {
              "type": "boolean"
            },
            "description": "The extra field.",
            "type": "object"
          },
          "read": {
            "description": "The read field.",
            "type": "boolean"
          }
        },
        "title": "Actor Object Permissions",
        "type": "object",
        "x-speakeasy-name-override": "UserActorObjectPermissions"
      },
      "c1.api.authzen.v1.AuthzenCelPolicy": {
        "description": "AuthzenCelPolicy holds the CEL source for a policy revision.",
        "properties": {
          "environment": {
            "description": "The CEL environment name+version this expression was validated against\n (e.g. \"authzen_policy/v1\"). Set by the server; not accepted from callers.",
            "type": "string"
          },
          "expression": {
            "description": "CEL expression, evaluated against `environment`. Validated for syntax\n and required to yield bool on create; invalid or non-bool CEL is\n rejected.",
            "type": "string"
          }
        },
        "title": "Authzen Cel Policy",
        "type": "object",
        "x-speakeasy-name-override": "AuthzenCelPolicy"
      },
      "c1.api.authzen.v1.AuthzenPolicy": {
        "description": "AuthzenPolicy is one immutable CEL policy revision scoped to an app. A\n revision is never edited in place; activate it by setting a server's\n active_policy_id.\n\nThis message contains a oneof named engine. Only a single field of the following list may be set at a time:\n  - cel\n",
        "properties": {
          "appId": {
            "description": "App identifier.",
            "type": "string"
          },
          "cel": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.authzen.v1.AuthzenCelPolicy"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "createdByUserId": {
            "description": "The ID of the user who created this revision.",
            "type": "string"
          },
          "description": {
            "description": "Free-text description of what this revision changes or is for.",
            "type": "string"
          },
          "displayName": {
            "description": "Display name for the policy revision.",
            "type": "string"
          },
          "id": {
            "description": "Policy identifier.",
            "type": "string"
          }
        },
        "title": "Authzen Policy",
        "type": "object",
        "x-speakeasy-name-override": "AuthzenPolicy"
      },
      "c1.api.authzen.v1.AuthzenServer": {
        "description": "AuthzenServer is the customer-facing AuthZEN PDP endpoint for one App.",
        "properties": {
          "activePolicyId": {
            "description": "The active immutable policy revision. Empty is default deny.",
            "type": "string"
          },
          "appId": {
            "description": "App identifier.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "evaluateEntitlementId": {
            "description": "The minted \"evaluate\" entitlement (derived from the server id; returned\n for linking) -- grant it to a caller to let it POST the access\n evaluation endpoint.",
            "type": "string"
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "mode": {
            "description": "The e-stop, now a tri-state. DISABLED (and UNSPECIFIED) denies every\n call without touching the entitlement stack or its grants; OBSERVE\n evaluates fully but answers allow, recording what ENFORCE would have\n said; ENFORCE answers the policy's decision.",
            "enum": [
              "AUTHZEN_MODE_UNSPECIFIED",
              "AUTHZEN_MODE_DISABLED",
              "AUTHZEN_MODE_OBSERVE",
              "AUTHZEN_MODE_ENFORCE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "searchEntitlementId": {
            "description": "The minted \"search\" entitlement (derived from the server id; returned\n for linking) -- grant it to a caller to let it POST the\n subject/resource/action search endpoints.",
            "type": "string"
          },
          "tokenAudience": {
            "description": "The `audience` to send when exchanging a token for access to this server.\n Every AuthZEN deployment in the tenant shares it, so it names the service;\n `token_resource` names this server.",
            "type": "string"
          },
          "tokenResource": {
            "description": "The `resource` to send alongside `token_audience`. It pins the exchange to\n this server, and the issued grant echoes it back, so send it exactly as\n given.",
            "type": "string"
          },
          "tokenScopes": {
            "description": "The scopes this server can issue. An exchange receives the ones it requests\n that the caller also holds the matching capability entitlement for.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Authzen Server",
        "type": "object",
        "x-speakeasy-name-override": "AuthzenServer"
      },
      "c1.api.authzen.v1.AuthzenServerRef": {
        "description": "The AuthzenServerRef message.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          }
        },
        "title": "Authzen Server Ref",
        "type": "object",
        "x-speakeasy-name-override": "AuthzenServerRef"
      },
      "c1.api.authzen.v1.AuthzenServerServiceCreateAuthzenPolicyRequestInput": {
        "description": "AuthzenServerServiceCreateAuthzenPolicyRequest creates a new CEL policy\n revision for an app.\n\nThis message contains a oneof named engine. Only a single field of the following list may be set at a time:\n  - cel\n",
        "properties": {
          "cel": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.authzen.v1.AuthzenCelPolicy"
              },
              {
                "type": "null"
              }
            ]
          },
          "description": {
            "description": "Free-text description of what this revision changes or is for.",
            "type": "string"
          },
          "displayName": {
            "description": "Display name for the policy revision.",
            "type": "string"
          }
        },
        "title": "Authzen Server Service Create Authzen Policy Request",
        "type": "object",
        "x-speakeasy-name-override": "AuthzenServerServiceCreateAuthzenPolicyRequest"
      },
      "c1.api.authzen.v1.AuthzenServerServiceCreateAuthzenPolicyResponse": {
        "description": "AuthzenServerServiceCreateAuthzenPolicyResponse returns the newly created\n policy revision.",
        "properties": {
          "authzenPolicy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.authzen.v1.AuthzenPolicy"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Authzen Server Service Create Authzen Policy Response",
        "type": "object",
        "x-speakeasy-name-override": "AuthzenServerServiceCreateAuthzenPolicyResponse"
      },
      "c1.api.authzen.v1.AuthzenServerServiceCreateRequestInput": {
        "description": "AuthzenServerServiceCreateRequest creates an AuthZEN server for an app.\n The new server starts disabled and denies every PDP call until enabled.",
        "properties": {
          "displayName": {
            "description": "Display name for the server. Defaults to \"AuthZEN Server\" when empty.",
            "type": "string"
          }
        },
        "title": "Authzen Server Service Create Request",
        "type": "object",
        "x-speakeasy-name-override": "AuthzenServerServiceCreateRequest"
      },
      "c1.api.authzen.v1.AuthzenServerServiceCreateResponse": {
        "description": "AuthzenServerServiceCreateResponse returns the newly minted server,\n including its capability entitlement ids.",
        "properties": {
          "authzenServer": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.authzen.v1.AuthzenServer"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Authzen Server Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "AuthzenServerServiceCreateResponse"
      },
      "c1.api.authzen.v1.AuthzenServerServiceDeleteAuthzenPolicyRequestInput": {
        "description": "AuthzenServerServiceDeleteAuthzenPolicyRequest deletes a CEL policy\n revision.",
        "title": "Authzen Server Service Delete Authzen Policy Request",
        "type": "object",
        "x-speakeasy-name-override": "AuthzenServerServiceDeleteAuthzenPolicyRequest"
      },
      "c1.api.authzen.v1.AuthzenServerServiceDeleteAuthzenPolicyResponse": {
        "description": "AuthzenServerServiceDeleteAuthzenPolicyResponse confirms deletion.",
        "title": "Authzen Server Service Delete Authzen Policy Response",
        "type": "object",
        "x-speakeasy-name-override": "AuthzenServerServiceDeleteAuthzenPolicyResponse"
      },
      "c1.api.authzen.v1.AuthzenServerServiceDeleteRequestInput": {
        "description": "AuthzenServerServiceDeleteRequest deletes the AuthZEN server for an app.",
        "title": "Authzen Server Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "AuthzenServerServiceDeleteRequest"
      },
      "c1.api.authzen.v1.AuthzenServerServiceDeleteResponse": {
        "description": "AuthzenServerServiceDeleteResponse confirms deletion. The server's\n entitlement stack cascade-deletes; a replacement server mints an all-new\n stack.",
        "title": "Authzen Server Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "AuthzenServerServiceDeleteResponse"
      },
      "c1.api.authzen.v1.AuthzenServerServiceGetAuthzenPolicyResponse": {
        "description": "AuthzenServerServiceGetAuthzenPolicyResponse returns the requested policy\n revision.",
        "properties": {
          "authzenPolicy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.authzen.v1.AuthzenPolicy"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Authzen Server Service Get Authzen Policy Response",
        "type": "object",
        "x-speakeasy-name-override": "AuthzenServerServiceGetAuthzenPolicyResponse"
      },
      "c1.api.authzen.v1.AuthzenServerServiceGetResponse": {
        "description": "AuthzenServerServiceGetResponse returns the requested AuthZEN server.",
        "properties": {
          "authzenServer": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.authzen.v1.AuthzenServer"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Authzen Server Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "AuthzenServerServiceGetResponse"
      },
      "c1.api.authzen.v1.AuthzenServerServiceListAuthzenPoliciesResponse": {
        "description": "AuthzenServerServiceListAuthzenPoliciesResponse lists an app's CEL policy\n revisions, newest first.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.authzen.v1.AuthzenPolicy"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token for next page.",
            "type": "string"
          }
        },
        "title": "Authzen Server Service List Authzen Policies Response",
        "type": "object",
        "x-speakeasy-name-override": "AuthzenServerServiceListAuthzenPoliciesResponse"
      },
      "c1.api.authzen.v1.AuthzenServerServiceListResponse": {
        "description": "AuthzenServerServiceListResponse lists AuthZEN servers for an app.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.authzen.v1.AuthzenServer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token for next page.",
            "type": "string"
          }
        },
        "title": "Authzen Server Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "AuthzenServerServiceListResponse"
      },
      "c1.api.authzen.v1.AuthzenServerServiceTestAuthzenPolicyRequestInput": {
        "description": "AuthzenServerServiceTestAuthzenPolicyRequest evaluates a stored or inline\n CEL policy against a live request tuple without requiring activation.\n\nThis message contains a oneof named policy. Only a single field of the following list may be set at a time:\n  - policyId\n  - cel\n",
        "properties": {
          "cel": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.authzen.v1.AuthzenCelPolicy"
              },
              {
                "type": "null"
              }
            ]
          },
          "policyId": {
            "description": "Test an already-stored policy revision by id.\nThis field is part of the `policy` oneof.\nSee the documentation for `c1.api.authzen.v1.AuthzenServerServiceTestAuthzenPolicyRequest` for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "request": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.authzen.v1.AuthzenTestRequest"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Authzen Server Service Test Authzen Policy Request",
        "type": "object",
        "x-speakeasy-name-override": "AuthzenServerServiceTestAuthzenPolicyRequest"
      },
      "c1.api.authzen.v1.AuthzenServerServiceTestAuthzenPolicyResponse": {
        "description": "AuthzenServerServiceTestAuthzenPolicyResponse returns the evaluation\n outcome for authoring feedback.",
        "properties": {
          "decision": {
            "description": "The policy's decision. Only meaningful when `error` is empty.",
            "type": "boolean"
          },
          "error": {
            "description": "Compile or runtime error, if evaluation could not produce a decision.",
            "type": "string"
          },
          "variables": {
            "additionalProperties": true,
            "type": [
              "object",
              "null"
            ]
          }
        },
        "title": "Authzen Server Service Test Authzen Policy Response",
        "type": "object",
        "x-speakeasy-name-override": "AuthzenServerServiceTestAuthzenPolicyResponse"
      },
      "c1.api.authzen.v1.AuthzenServerServiceUpdateRequestInput": {
        "description": "AuthzenServerServiceUpdateRequest updates mode or active_policy_id via an\n update mask.",
        "properties": {
          "authzenServer": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.authzen.v1.AuthzenServer"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Authzen Server Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "AuthzenServerServiceUpdateRequest"
      },
      "c1.api.authzen.v1.AuthzenServerServiceUpdateResponse": {
        "description": "AuthzenServerServiceUpdateResponse returns the updated server.",
        "properties": {
          "authzenServer": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.authzen.v1.AuthzenServer"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Authzen Server Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "AuthzenServerServiceUpdateResponse"
      },
      "c1.api.authzen.v1.AuthzenTestAction": {
        "description": "AuthzenTestAction identifies the AuthZEN action for a test evaluation.",
        "properties": {
          "name": {
            "description": "Action name supplied by the AuthZEN caller.",
            "type": "string"
          }
        },
        "title": "Authzen Test Action",
        "type": "object",
        "x-speakeasy-name-override": "AuthzenTestAction"
      },
      "c1.api.authzen.v1.AuthzenTestRequest": {
        "description": "AuthzenTestRequest is one AuthZEN access-evaluation request tuple to test\n a policy against.",
        "properties": {
          "action": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.authzen.v1.AuthzenTestAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "context": {
            "additionalProperties": true,
            "type": [
              "object",
              "null"
            ]
          },
          "resource": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.authzen.v1.AuthzenTestResource"
              },
              {
                "type": "null"
              }
            ]
          },
          "subject": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.authzen.v1.AuthzenTestSubject"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Authzen Test Request",
        "type": "object",
        "x-speakeasy-name-override": "AuthzenTestRequest"
      },
      "c1.api.authzen.v1.AuthzenTestResource": {
        "description": "AuthzenTestResource identifies the AuthZEN resource for a test evaluation.",
        "properties": {
          "id": {
            "description": "Resource identifier.",
            "type": "string"
          },
          "properties": {
            "additionalProperties": true,
            "type": [
              "object",
              "null"
            ]
          },
          "type": {
            "description": "Resource type, e.g. \"app_resource\".",
            "type": "string"
          }
        },
        "title": "Authzen Test Resource",
        "type": "object",
        "x-speakeasy-name-override": "AuthzenTestResource"
      },
      "c1.api.authzen.v1.AuthzenTestSubject": {
        "description": "AuthzenTestSubject identifies the AuthZEN subject for a test evaluation.",
        "properties": {
          "id": {
            "description": "Subject identifier.",
            "type": "string"
          },
          "properties": {
            "additionalProperties": true,
            "type": [
              "object",
              "null"
            ]
          },
          "type": {
            "description": "Subject type, e.g. \"user\".",
            "type": "string"
          }
        },
        "title": "Authzen Test Subject",
        "type": "object",
        "x-speakeasy-name-override": "AuthzenTestSubject"
      },
      "c1.api.automations.v1.AccessConflictTrigger": {
        "description": "The AccessConflictTrigger message.\n\nThis message contains a oneof named conflict_monitor_selector. Only a single field of the following list may be set at a time:\n  - conflictMonitorRefs\n  - allConflictMonitors\n",
        "properties": {
          "allConflictMonitors": {
            "description": "The allConflictMonitors field.\nThis field is part of the `conflict_monitor_selector` oneof.\nSee the documentation for `c1.api.automations.v1.AccessConflictTrigger` for more details.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "conflictMonitorRefs": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.ConflictMonitorRefs"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Access Conflict Trigger",
        "type": "object",
        "x-speakeasy-name-override": "AccessConflictTrigger"
      },
      "c1.api.automations.v1.AccountInContext": {
        "description": "The AccountInContext message.",
        "title": "Account In Context",
        "type": "object",
        "x-speakeasy-name-override": "AccountInContext"
      },
      "c1.api.automations.v1.AccountLifecycleAction": {
        "description": "The AccountLifecycleAction message.\n\nThis message contains a oneof named account_identifier. Only a single field of the following list may be set at a time:\n  - accountRef\n  - accountInContext\n",
        "properties": {
          "accountInContext": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.AccountInContext"
              },
              {
                "type": "null"
              }
            ]
          },
          "accountRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.AccountRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "actionName": {
            "description": "The actionName field.",
            "type": "string"
          },
          "connectorRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.ConnectorRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Account Lifecycle Action",
        "type": "object",
        "x-speakeasy-name-override": "AccountLifecycleAction"
      },
      "c1.api.automations.v1.AccountRef": {
        "description": "The AccountRef message.",
        "properties": {
          "accountIdCel": {
            "description": "The accountIdCel field.",
            "type": "string"
          }
        },
        "title": "Account Ref",
        "type": "object",
        "x-speakeasy-name-override": "AccountRef"
      },
      "c1.api.automations.v1.AppUserCreatedTrigger": {
        "description": "The AppUserCreatedTrigger message.\n\nThis message contains a oneof named app_identifier. Only a single field of the following list may be set at a time:\n  - appId\n  - appIdCel\n",
        "properties": {
          "appId": {
            "description": "The appId field.\nThis field is part of the `app_identifier` oneof.\nSee the documentation for `c1.api.automations.v1.AppUserCreatedTrigger` for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "appIdCel": {
            "description": "The appIdCel field.\nThis field is part of the `app_identifier` oneof.\nSee the documentation for `c1.api.automations.v1.AppUserCreatedTrigger` for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "condition": {
            "description": "The condition field.",
            "type": "string"
          }
        },
        "title": "App User Created Trigger",
        "type": "object",
        "x-speakeasy-name-override": "AppUserCreatedTrigger"
      },
      "c1.api.automations.v1.AppUserUpdatedTrigger": {
        "description": "The AppUserUpdatedTrigger message.\n\nThis message contains a oneof named app_identifier. Only a single field of the following list may be set at a time:\n  - appId\n  - appIdCel\n",
        "properties": {
          "appId": {
            "description": "The appId field.\nThis field is part of the `app_identifier` oneof.\nSee the documentation for `c1.api.automations.v1.AppUserUpdatedTrigger` for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "appIdCel": {
            "description": "The appIdCel field.\nThis field is part of the `app_identifier` oneof.\nSee the documentation for `c1.api.automations.v1.AppUserUpdatedTrigger` for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "condition": {
            "description": "The condition field.",
            "type": "string"
          }
        },
        "title": "App User Updated Trigger",
        "type": "object",
        "x-speakeasy-name-override": "AppUserUpdatedTrigger"
      },
      "c1.api.automations.v1.Automation": {
        "description": "The Automation message.\n\nThis message contains a oneof named disabled_reason. Only a single field of the following list may be set at a time:\n  - circuitBreaker\n",
        "properties": {
          "annotations": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Bounded key/value metadata bag for IaC marking and customer tags.\n See .rfcs/object-annotations.md §2. Limits: ≤16 entries; keys 1–128\n chars matching ^[A-Za-z][A-Za-z0-9._/-]{0,127}$; values 0–256 chars\n URL-safe ASCII; total serialized ≤ 4096 bytes. Keys matching ^c1/\n are reserved.\n\n Well-known keys: `managed_by`, `iac_workspace`,\n `iac_resource_address`, `iac_tool_version`.",
            "type": "object",
            "x-speakeasy-terraform-plan-modifier": {
              "imports": [
                "github.com/conductorone/terraform-provider-conductorone/internal/annotations"
              ],
              "schemaDefinition": "annotations.PlanModifier()"
            }
          },
          "appId": {
            "description": "the app id this workflow_template belongs to",
            "type": "string"
          },
          "automationSteps": {
            "description": "The automationSteps field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.automations.v1.AutomationStep"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "circuitBreaker": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.DisabledReasonCircuitBreaker"
              },
              {
                "type": "null"
              }
            ]
          },
          "circuitBreakerMax": {
            "description": "Circuit breaker rate cap: disable this automation if it executes more\n than circuit_breaker_max times in the trailing circuit_breaker_period.\n 0 = circuit breaker off (default).",
            "format": "uint32",
            "type": "integer"
          },
          "circuitBreakerPeriod": {
            "description": "The circuitBreakerPeriod field.",
            "enum": [
              "CIRCUIT_BREAKER_PERIOD_UNSPECIFIED",
              "CIRCUIT_BREAKER_PERIOD_HOUR",
              "CIRCUIT_BREAKER_PERIOD_DAY",
              "CIRCUIT_BREAKER_PERIOD_WEEK",
              "CIRCUIT_BREAKER_PERIOD_MONTH"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "context": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.AutomationContext"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "currentVersion": {
            "description": "The currentVersion field.",
            "format": "int64",
            "type": "string"
          },
          "description": {
            "description": "The description field.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "draftAutomationSteps": {
            "description": "The draftAutomationSteps field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.automations.v1.AutomationStep"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "draftTriggers": {
            "description": "The draftTriggers field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.automations.v1.AutomationTrigger"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "enabled": {
            "description": "The enabled field.",
            "type": "boolean"
          },
          "id": {
            "description": "The id field.",
            "readOnly": true,
            "type": "string"
          },
          "isDraft": {
            "description": "The isDraft field.",
            "type": "boolean"
          },
          "lastExecutedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "primaryTriggerType": {
            "description": "The primaryTriggerType field.",
            "enum": [
              "TRIGGER_TYPE_UNSPECIFIED",
              "TRIGGER_TYPE_USER_PROFILE_CHANGE",
              "TRIGGER_TYPE_APP_USER_CREATE",
              "TRIGGER_TYPE_APP_USER_UPDATE",
              "TRIGGER_TYPE_UNUSED_ACCESS",
              "TRIGGER_TYPE_USER_CREATED",
              "TRIGGER_TYPE_GRANT_FOUND",
              "TRIGGER_TYPE_GRANT_DELETED",
              "TRIGGER_TYPE_WEBHOOK",
              "TRIGGER_TYPE_SCHEDULE",
              "TRIGGER_TYPE_FORM",
              "TRIGGER_TYPE_SCHEDULE_APP_USER",
              "TRIGGER_TYPE_ACCESS_CONFLICT",
              "TRIGGER_TYPE_SCHEDULE_NO_USER"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "triggers": {
            "description": "The triggers field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.automations.v1.AutomationTrigger"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Automation",
        "type": "object",
        "x-speakeasy-entity": "Automation",
        "x-speakeasy-name-override": "Automation"
      },
      "c1.api.automations.v1.AutomationContext": {
        "description": "The AutomationContext message.",
        "properties": {
          "context": {
            "additionalProperties": true,
            "type": [
              "object",
              "null"
            ]
          }
        },
        "title": "Automation Context",
        "type": "object",
        "x-speakeasy-name-override": "AutomationContext"
      },
      "c1.api.automations.v1.AutomationExecution": {
        "description": "The AutomationExecution message.",
        "properties": {
          "automationTemplateId": {
            "description": "The automationTemplateId field.",
            "type": "string"
          },
          "completedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "context": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.AutomationContext"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "currentVersion": {
            "description": "The currentVersion field.",
            "format": "int32",
            "type": "integer"
          },
          "deletedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "duration": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "The id field.",
            "format": "int64",
            "type": "string"
          },
          "isDraft": {
            "description": "The isDraft field.",
            "type": "boolean"
          },
          "state": {
            "description": "The state field.",
            "enum": [
              "AUTOMATION_EXECUTION_STATE_UNSPECIFIED",
              "AUTOMATION_EXECUTION_STATE_PENDING",
              "AUTOMATION_EXECUTION_STATE_CREATING",
              "AUTOMATION_EXECUTION_STATE_GET_STEP",
              "AUTOMATION_EXECUTION_STATE_PROCESS_STEP",
              "AUTOMATION_EXECUTION_STATE_COMPLETE_STEP",
              "AUTOMATION_EXECUTION_STATE_DONE",
              "AUTOMATION_EXECUTION_STATE_ERROR",
              "AUTOMATION_EXECUTION_STATE_TERMINATE",
              "AUTOMATION_EXECUTION_STATE_WAITING",
              "AUTOMATION_EXECUTION_STATE_PAUSED_BY_CIRCUIT_BREAKER"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Automation Execution",
        "type": "object",
        "x-speakeasy-name-override": "AutomationExecution"
      },
      "c1.api.automations.v1.AutomationExecutionExpandMask": {
        "description": "The AutomationExecutionExpandMask message.",
        "properties": {
          "paths": {
            "description": "The paths field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Automation Execution Expand Mask",
        "type": "object",
        "x-speakeasy-name-override": "AutomationExecutionExpandMask"
      },
      "c1.api.automations.v1.AutomationExecutionRef": {
        "description": "The AutomationExecutionRef message.",
        "properties": {
          "id": {
            "description": "The id field.",
            "format": "int64",
            "type": "string"
          }
        },
        "title": "Automation Execution Ref",
        "type": "object",
        "x-speakeasy-name-override": "AutomationExecutionRef"
      },
      "c1.api.automations.v1.AutomationExecutionView": {
        "description": "The AutomationExecutionView message.",
        "properties": {
          "automationExecution": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.AutomationExecution"
              },
              {
                "type": "null"
              }
            ]
          },
          "automationExecutionTriggerPath": {
            "description": "The automationExecutionTriggerPath field.",
            "type": "string"
          },
          "automationPath": {
            "description": "The automationPath field.",
            "type": "string"
          }
        },
        "title": "Automation Execution View",
        "type": "object",
        "x-speakeasy-name-override": "AutomationExecutionView"
      },
      "c1.api.automations.v1.AutomationStep": {
        "description": "The AutomationStep message.\n\nThis message contains a oneof named kind. Only a single field of the following list may be set at a time:\n  - createAccessReview\n  - waitForDuration\n  - unenrollFromAllAccessProfiles\n  - createRevokeTasks\n  - createRevokeTasksV2\n  - sendEmail\n  - removeFromDelegation\n  - runAutomation\n  - updateUser\n  - taskAction\n  - webhook\n  - connectorAction\n  - connectorCreateAccount\n  - grantEntitlements\n  - sendSlackMessage\n  - callFunction\n  - accountLifecycleAction\n  - generatePassword\n  - evaluateExpressions\n  - setCredential\n  - storeCredential\n",
        "properties": {
          "accountLifecycleAction": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.AccountLifecycleAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "callFunction": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.CallFunction"
              },
              {
                "type": "null"
              }
            ]
          },
          "connectorAction": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.ConnectorAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "connectorCreateAccount": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.ConnectorCreateAccount"
              },
              {
                "type": "null"
              }
            ]
          },
          "createAccessReview": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.CreateAccessReview"
              },
              {
                "type": "null"
              }
            ]
          },
          "createRevokeTasks": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.CreateRevokeTasks"
              },
              {
                "type": "null"
              }
            ]
          },
          "createRevokeTasksV2": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.CreateRevokeTasksV2"
              },
              {
                "type": "null"
              }
            ]
          },
          "evaluateExpressions": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.EvaluateExpressions"
              },
              {
                "type": "null"
              }
            ]
          },
          "generatePassword": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.GeneratePassword"
              },
              {
                "type": "null"
              }
            ]
          },
          "grantEntitlements": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.GrantEntitlements"
              },
              {
                "type": "null"
              }
            ]
          },
          "removeFromDelegation": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.RemoveFromDelegation"
              },
              {
                "type": "null"
              }
            ]
          },
          "runAutomation": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.RunAutomation"
              },
              {
                "type": "null"
              }
            ]
          },
          "sendEmail": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.SendEmail"
              },
              {
                "type": "null"
              }
            ]
          },
          "sendSlackMessage": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.SendSlackMessage"
              },
              {
                "type": "null"
              }
            ]
          },
          "setCredential": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.SetCredential"
              },
              {
                "type": "null"
              }
            ]
          },
          "skipIfTrueCel": {
            "description": "The skipIfTrueCel field.",
            "type": "string"
          },
          "stepDisplayName": {
            "description": "The stepDisplayName field.",
            "type": "string"
          },
          "stepName": {
            "description": "The stepName field.",
            "type": "string"
          },
          "storeCredential": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.StoreCredential"
              },
              {
                "type": "null"
              }
            ]
          },
          "taskAction": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.TaskAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "unenrollFromAllAccessProfiles": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.UnenrollFromAllAccessProfiles"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateUser": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.UpdateUser"
              },
              {
                "type": "null"
              }
            ]
          },
          "waitForDuration": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.WaitForDuration"
              },
              {
                "type": "null"
              }
            ]
          },
          "webhook": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.Webhook"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Automation Step",
        "type": "object",
        "x-speakeasy-name-override": "AutomationStep"
      },
      "c1.api.automations.v1.AutomationTemplateRef": {
        "description": "The AutomationTemplateRef message.",
        "properties": {
          "id": {
            "description": "The id field.",
            "type": "string"
          }
        },
        "title": "Automation Template Ref",
        "type": "object",
        "x-speakeasy-name-override": "AutomationTemplateRef"
      },
      "c1.api.automations.v1.AutomationTemplateVersion": {
        "description": "The AutomationTemplateVersion message.",
        "properties": {
          "automationSteps": {
            "description": "The automationSteps field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.automations.v1.AutomationStep"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "automationTemplateId": {
            "description": "The automationTemplateId field.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "triggers": {
            "description": "The triggers field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.automations.v1.AutomationTrigger"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "version": {
            "description": "The version field.",
            "format": "int64",
            "type": "string"
          }
        },
        "title": "Automation Template Version",
        "type": "object",
        "x-speakeasy-name-override": "AutomationTemplateVersion"
      },
      "c1.api.automations.v1.AutomationTrigger": {
        "description": "Automation Triggers\n\nThis message contains a oneof named kind. Only a single field of the following list may be set at a time:\n  - userProfileChange\n  - appUserCreated\n  - appUserUpdated\n  - usageBasedRevocation\n  - userCreated\n  - grantFound\n  - grantDeleted\n  - webhook\n  - schedule\n  - scheduleAppUser\n  - accessConflict\n  - scheduleNoUser\n",
        "properties": {
          "accessConflict": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.AccessConflictTrigger"
              },
              {
                "type": "null"
              }
            ]
          },
          "appUserCreated": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.AppUserCreatedTrigger"
              },
              {
                "type": "null"
              }
            ]
          },
          "appUserUpdated": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.AppUserUpdatedTrigger"
              },
              {
                "type": "null"
              }
            ]
          },
          "grantDeleted": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.GrantDeletedTrigger"
              },
              {
                "type": "null"
              }
            ]
          },
          "grantFound": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.GrantFoundTrigger"
              },
              {
                "type": "null"
              }
            ]
          },
          "schedule": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.ScheduleTrigger"
              },
              {
                "type": "null"
              }
            ]
          },
          "scheduleAppUser": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.ScheduleTriggerAppUser"
              },
              {
                "type": "null"
              }
            ]
          },
          "scheduleNoUser": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.ScheduleTriggerNoUser"
              },
              {
                "type": "null"
              }
            ]
          },
          "usageBasedRevocation": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.UsageBasedRevocationTrigger"
              },
              {
                "type": "null"
              }
            ]
          },
          "userCreated": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.UserCreatedTrigger"
              },
              {
                "type": "null"
              }
            ]
          },
          "userProfileChange": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.UserProfileChangeTrigger"
              },
              {
                "type": "null"
              }
            ]
          },
          "webhook": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.WebhookAutomationTrigger"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Automation Trigger",
        "type": "object",
        "x-speakeasy-name-override": "AutomationTrigger"
      },
      "c1.api.automations.v1.CallFunction": {
        "description": "The CallFunction message.",
        "properties": {
          "args": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Arg name → CEL expression. Each value is evaluated against the\n workflow execution context (subject + completed step outputs) and the\n resolved values are passed to the function as JSON. Plain literals\n must be quoted as CEL strings (e.g. \"'static-value'\").",
            "type": "object"
          },
          "functionId": {
            "description": "The functionId field.",
            "type": "string"
          }
        },
        "title": "Call Function",
        "type": "object",
        "x-speakeasy-name-override": "CallFunction"
      },
      "c1.api.automations.v1.ClearAutomationCircuitBreakerRequestInput": {
        "description": "The ClearAutomationCircuitBreakerRequest message.",
        "properties": {
          "decision": {
            "description": "What to do with paused executions. UNSPECIFIED means clear the breaker\n only (backward-compatible default). RUN or CANCEL creates a bulk action\n to resolve them asynchronously.",
            "enum": [
              "PAUSED_EXECUTION_DECISION_UNSPECIFIED",
              "PAUSED_EXECUTION_DECISION_RUN",
              "PAUSED_EXECUTION_DECISION_CANCEL"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "reason": {
            "description": "Admin-supplied reason when decision is CANCEL. Up to 1024 bytes.",
            "type": "string"
          }
        },
        "title": "Clear Automation Circuit Breaker Request",
        "type": "object",
        "x-speakeasy-name-override": "ClearAutomationCircuitBreakerRequest"
      },
      "c1.api.automations.v1.ClearAutomationCircuitBreakerResponse": {
        "description": "The ClearAutomationCircuitBreakerResponse message.",
        "properties": {
          "bulkActionId": {
            "description": "The bulk action ID if a bulk action was created to resolve paused\n executions. Empty when decision is UNSPECIFIED or there were no\n paused executions.",
            "type": "string"
          }
        },
        "title": "Clear Automation Circuit Breaker Response",
        "type": "object",
        "x-speakeasy-name-override": "ClearAutomationCircuitBreakerResponse"
      },
      "c1.api.automations.v1.CloseAction": {
        "description": "The CloseAction message.\n\nThis message contains a oneof named user_identifier. Only a single field of the following list may be set at a time:\n  - userIdCel\n  - userRef\n",
        "properties": {
          "useSubjectUser": {
            "description": "If true, the step will use the subject user of the automation as the subject.",
            "type": "boolean"
          },
          "userIdCel": {
            "description": "The userIdCel field.\nThis field is part of the `user_identifier` oneof.\nSee the documentation for `c1.api.automations.v1.CloseAction` for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "userRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Close Action",
        "type": "object",
        "x-speakeasy-name-override": "CloseAction"
      },
      "c1.api.automations.v1.ConflictMonitorRefs": {
        "description": "The ConflictMonitorRefs message.",
        "properties": {
          "conflictMonitorRefs": {
            "description": "The conflictMonitorRefs field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.accessconflict.v1.ConflictMonitorRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Conflict Monitor Refs",
        "type": "object",
        "x-speakeasy-name-override": "ConflictMonitorRefs"
      },
      "c1.api.automations.v1.ConnectorAction": {
        "description": "The ConnectorAction message.\n\nThis message contains a oneof named connector_identifier. Only a single field of the following list may be set at a time:\n  - connectorRef\n",
        "properties": {
          "actionName": {
            "description": "The actionName field.",
            "type": "string"
          },
          "argsTemplate": {
            "additionalProperties": true,
            "type": [
              "object",
              "null"
            ]
          },
          "connectorRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.ConnectorRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "resourceTypeId": {
            "description": "The resourceTypeId field.",
            "type": "string"
          }
        },
        "title": "Connector Action",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorAction"
      },
      "c1.api.automations.v1.ConnectorCreateAccount": {
        "description": "The ConnectorCreateAccount message.\n\nThis message contains a oneof named create_account_arguments. Only a single field of the following list may be set at a time:\n  - userIdCel\n  - userProperties\n",
        "properties": {
          "connectorRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.ConnectorRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "passwordCel": {
            "description": "CEL expression referencing a GeneratePassword step output (e.g. \"genStep.password\").\n When set, the resolved password is encrypted for the connector and sent as CredentialOptions.EncryptedPassword.",
            "type": "string"
          },
          "userIdCel": {
            "description": "The userIdCel field.\nThis field is part of the `create_account_arguments` oneof.\nSee the documentation for `c1.api.automations.v1.ConnectorCreateAccount` for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "userProperties": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.UserProperties"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Connector Create Account",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorCreateAccount"
      },
      "c1.api.automations.v1.CreateAccessReview": {
        "description": "The CreateAccessReview message.",
        "properties": {
          "accessReviewTemplateCel": {
            "description": "The accessReviewTemplateCel field.",
            "type": "string"
          },
          "accessReviewTemplateId": {
            "description": "The accessReviewTemplateId field.",
            "type": "string"
          },
          "campaignName": {
            "description": "Optional campaign name. If not provided, the campaign name will be the access review template name.",
            "type": "string"
          },
          "useSubjectUser": {
            "description": "If true, the step will use the subject user of the automation as the subject.",
            "type": "boolean"
          },
          "userIdsCel": {
            "description": "The userIdsCel field.",
            "type": "string"
          },
          "userRefs": {
            "description": "The userRefs field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Create Access Review",
        "type": "object",
        "x-speakeasy-name-override": "CreateAccessReview"
      },
      "c1.api.automations.v1.CreateAutomationRequest": {
        "description": "The CreateAutomationRequest message.",
        "properties": {
          "annotations": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Bounded key/value metadata bag for IaC marking and customer tags.\n See .rfcs/object-annotations.md §2. Limits: ≤16 entries; keys 1–128\n chars matching ^[A-Za-z][A-Za-z0-9._/-]{0,127}$; values 0–256 chars\n matching URL-safe ASCII; total serialized ≤4096 bytes. Keys starting\n with `c1/` are reserved for server-managed use and rejected on write.\n\n Well-known keys: `managed_by`, `iac_workspace`,\n `iac_resource_address`, `iac_tool_version`.",
            "type": "object",
            "x-speakeasy-terraform-plan-modifier": {
              "imports": [
                "github.com/conductorone/terraform-provider-conductorone/internal/annotations"
              ],
              "schemaDefinition": "annotations.PlanModifier()"
            }
          },
          "appId": {
            "description": "the app id this workflow_template belongs to",
            "type": "string"
          },
          "automationSteps": {
            "description": "Ordered list of steps that the automation executes.",
            "items": {
              "$ref": "#/components/schemas/c1.api.automations.v1.AutomationStep"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "circuitBreakerMax": {
            "description": "Circuit breaker rate cap. See Automation.circuit_breaker_max for semantics.",
            "format": "uint32",
            "type": "integer"
          },
          "circuitBreakerPeriod": {
            "description": "The circuitBreakerPeriod field.",
            "enum": [
              "CIRCUIT_BREAKER_PERIOD_UNSPECIFIED",
              "CIRCUIT_BREAKER_PERIOD_HOUR",
              "CIRCUIT_BREAKER_PERIOD_DAY",
              "CIRCUIT_BREAKER_PERIOD_WEEK",
              "CIRCUIT_BREAKER_PERIOD_MONTH"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "context": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.AutomationContext"
              },
              {
                "type": "null"
              }
            ]
          },
          "description": {
            "description": "Optional description explaining the automation's purpose.",
            "type": "string"
          },
          "displayName": {
            "description": "Human-readable name for the automation.",
            "type": "string"
          },
          "draftAutomationSteps": {
            "description": "Steps saved as a draft that have not yet been published.",
            "items": {
              "$ref": "#/components/schemas/c1.api.automations.v1.AutomationStep"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "draftTriggers": {
            "description": "Triggers saved as a draft that have not yet been published.",
            "items": {
              "$ref": "#/components/schemas/c1.api.automations.v1.AutomationTrigger"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "enabled": {
            "description": "Whether the automation is active and eligible for execution.",
            "type": "boolean"
          },
          "isDraft": {
            "description": "Whether this automation is in draft mode. Draft automations are not eligible for trigger-based execution.",
            "type": "boolean"
          },
          "triggers": {
            "description": "Triggers that determine when the automation runs.",
            "items": {
              "$ref": "#/components/schemas/c1.api.automations.v1.AutomationTrigger"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Create Automation Request",
        "type": "object",
        "x-speakeasy-name-override": "AutomationsCreateAutomationRequest"
      },
      "c1.api.automations.v1.CreateAutomationResponse": {
        "description": "The CreateAutomationResponse message.",
        "properties": {
          "automation": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.Automation"
              },
              {
                "type": "null"
              }
            ]
          },
          "webhookCapabilityUrl": {
            "description": "One-time absolute webhook URL for capability URL authentication, shown once at creation time.\n Contains the full URL including the embedded token (e.g. https://tenant.conductorone.com/api/v1/webhooks/incoming/{id}/t/{token}).\n Populated only when the webhook trigger uses capability URL authentication.",
            "type": "string"
          },
          "webhookHmacSecret": {
            "description": "One-time HMAC shared secret, shown once at creation time.\n Populated only when the webhook trigger uses HMAC authentication.",
            "type": "string"
          }
        },
        "title": "Create Automation Response",
        "type": "object",
        "x-speakeasy-name-override": "AutomationsCreateAutomationResponse"
      },
      "c1.api.automations.v1.CreateRevokeTasks": {
        "description": "The CreateRevokeTasks message.",
        "properties": {
          "appEntitlementRefs": {
            "description": "The appEntitlementRefs field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appEntitlementRefsCel": {
            "description": "The appEntitlementRefsCel field.",
            "type": "string"
          },
          "excludedAppEntitlementRefs": {
            "description": "The excludedAppEntitlementRefs field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "excludedAppEntitlementRefsCel": {
            "description": "The excludedAppEntitlementRefsCel field.",
            "type": "string"
          },
          "revokeAll": {
            "description": "The revokeAll field.",
            "type": "boolean"
          },
          "useSubjectUser": {
            "description": "If true, the step will use the subject user of the automation as the subject.",
            "type": "boolean"
          },
          "userIdCel": {
            "description": "The userIdCel field.",
            "type": "string"
          },
          "userRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create Revoke Tasks",
        "type": "object",
        "x-speakeasy-name-override": "CreateRevokeTasks"
      },
      "c1.api.automations.v1.CreateRevokeTasksV2": {
        "description": "The CreateRevokeTasksV2 message.\n\nThis message contains a oneof named user. Only a single field of the following list may be set at a time:\n  - userIdCel\n  - userRef\n  - useSubjectUser\n\n\nThis message contains a oneof named inclusion. Only a single field of the following list may be set at a time:\n  - inclusionList\n  - inclusionAll\n  - inclusionCriteria\n  - inclusionListCel\n  - inclusionAccessOnly\n\n\nThis message contains a oneof named exclusion. Only a single field of the following list may be set at a time:\n  - exclusionNone\n  - exclusionList\n  - exclusionCriteria\n  - exclusionListCel\n",
        "properties": {
          "exclusionCriteria": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.EntitlementExclusionCriteria"
              },
              {
                "type": "null"
              }
            ]
          },
          "exclusionList": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.EntitlementExclusionList"
              },
              {
                "type": "null"
              }
            ]
          },
          "exclusionListCel": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.EntitlementExclusionListCel"
              },
              {
                "type": "null"
              }
            ]
          },
          "exclusionNone": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.EntitlementExclusionNone"
              },
              {
                "type": "null"
              }
            ]
          },
          "grantSourceFilter": {
            "description": "Restricts the step to grants of either DIRECT (grants the user holds directly,\n including grants that are also inherited) or UNSPECIFIED (all grants).\n Composes with every inclusion mode, including inclusion_list_cel.",
            "enum": [
              "GRANT_SOURCE_FILTER_UNSPECIFIED",
              "GRANT_SOURCE_FILTER_DIRECT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "inclusionAccessOnly": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.EntitlementInclusionAccessOnly"
              },
              {
                "type": "null"
              }
            ]
          },
          "inclusionAll": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.EntitlementInclusionAll"
              },
              {
                "type": "null"
              }
            ]
          },
          "inclusionCriteria": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.EntitlementInclusionCriteria"
              },
              {
                "type": "null"
              }
            ]
          },
          "inclusionList": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.EntitlementInclusionList"
              },
              {
                "type": "null"
              }
            ]
          },
          "inclusionListCel": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.EntitlementInclusionListCel"
              },
              {
                "type": "null"
              }
            ]
          },
          "useSubjectUser": {
            "description": "The useSubjectUser field.\nThis field is part of the `user` oneof.\nSee the documentation for `c1.api.automations.v1.CreateRevokeTasksV2` for more details.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "userIdCel": {
            "description": "The userIdCel field.\nThis field is part of the `user` oneof.\nSee the documentation for `c1.api.automations.v1.CreateRevokeTasksV2` for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "userRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create Revoke Tasks V 2",
        "type": "object",
        "x-speakeasy-name-override": "CreateRevokeTasksV2"
      },
      "c1.api.automations.v1.DeleteAutomationRequestInput": {
        "description": "The DeleteAutomationRequest message.",
        "title": "Delete Automation Request",
        "type": "object",
        "x-speakeasy-name-override": "AutomationsDeleteAutomationRequest"
      },
      "c1.api.automations.v1.DeleteAutomationResponse": {
        "description": "The DeleteAutomationResponse message.",
        "title": "Delete Automation Response",
        "type": "object",
        "x-speakeasy-name-override": "AutomationsDeleteAutomationResponse"
      },
      "c1.api.automations.v1.DisabledReasonCircuitBreaker": {
        "description": "DisabledReasonCircuitBreaker carries the trip context when an automation\n has been auto-disabled by its rate cap. Returned on the parent Automation\n when read; not directly settable.",
        "properties": {
          "observedCount": {
            "description": "Observed execution count in the period at trip time.",
            "format": "uint32",
            "type": "integer"
          },
          "period": {
            "description": "Snapshot of the period at trip time.",
            "enum": [
              "CIRCUIT_BREAKER_PERIOD_UNSPECIFIED",
              "CIRCUIT_BREAKER_PERIOD_HOUR",
              "CIRCUIT_BREAKER_PERIOD_DAY",
              "CIRCUIT_BREAKER_PERIOD_WEEK",
              "CIRCUIT_BREAKER_PERIOD_MONTH"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "threshold": {
            "description": "Snapshot of the threshold at trip time.",
            "format": "uint32",
            "type": "integer"
          },
          "trippedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Disabled Reason Circuit Breaker",
        "type": "object",
        "x-speakeasy-name-override": "DisabledReasonCircuitBreaker"
      },
      "c1.api.automations.v1.EntitlementExclusionCriteria": {
        "description": "The EntitlementExclusionCriteria message.",
        "properties": {
          "excludedAppIds": {
            "description": "The excludedAppIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "excludedComplianceFrameworkIds": {
            "description": "The excludedComplianceFrameworkIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "excludedResourceTypeIds": {
            "deprecated": true,
            "description": "Deprecated: matched by resource type display name, which collides across\n apps/connectors. Not read by execution — replaced by\n excluded_resource_type_refs. Kept only for wire compatibility with\n existing stored rows; a criteria still carrying this without a ref\n degrades to excluding the entire named app(s) rather than failing closed,\n since the exclusion side warns instead of aborting the run.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "excludedResourceTypeRefs": {
            "description": "The only field that scopes resource types; excluded_resource_type_ids is\n deprecated and ignored.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.ResourceTypeRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "excludedRiskLevelIds": {
            "description": "The excludedRiskLevelIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Entitlement Exclusion Criteria",
        "type": "object",
        "x-speakeasy-name-override": "EntitlementExclusionCriteria"
      },
      "c1.api.automations.v1.EntitlementExclusionList": {
        "description": "The EntitlementExclusionList message.",
        "properties": {
          "excludedAppEntitlementRefs": {
            "description": "The excludedAppEntitlementRefs field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Entitlement Exclusion List",
        "type": "object",
        "x-speakeasy-name-override": "EntitlementExclusionList"
      },
      "c1.api.automations.v1.EntitlementExclusionListCel": {
        "description": "The EntitlementExclusionListCel message.",
        "properties": {
          "excludedAppEntitlementRefsCel": {
            "description": "The excludedAppEntitlementRefsCel field.",
            "type": "string"
          }
        },
        "title": "Entitlement Exclusion List Cel",
        "type": "object",
        "x-speakeasy-name-override": "EntitlementExclusionListCel"
      },
      "c1.api.automations.v1.EntitlementExclusionNone": {
        "description": "The EntitlementExclusionNone message.",
        "title": "Entitlement Exclusion None",
        "type": "object",
        "x-speakeasy-name-override": "EntitlementExclusionNone"
      },
      "c1.api.automations.v1.EntitlementInclusionAccessOnly": {
        "description": "EntitlementInclusionAccessOnly resolves to the system-managed access\n entitlement on every app the subject user has an AppUser on. Use this to\n deprovision app accounts without fanning out to every group, role, or\n permission inside each app — produces at most one revoke ticket per app.",
        "title": "Entitlement Inclusion Access Only",
        "type": "object",
        "x-speakeasy-name-override": "EntitlementInclusionAccessOnly"
      },
      "c1.api.automations.v1.EntitlementInclusionAll": {
        "description": "The EntitlementInclusionAll message.",
        "title": "Entitlement Inclusion All",
        "type": "object",
        "x-speakeasy-name-override": "EntitlementInclusionAll"
      },
      "c1.api.automations.v1.EntitlementInclusionCriteria": {
        "description": "The EntitlementInclusionCriteria message.",
        "properties": {
          "appIds": {
            "description": "The appIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "complianceFrameworkIds": {
            "description": "The complianceFrameworkIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "resourceTypeIds": {
            "deprecated": true,
            "description": "Deprecated: matched by resource type display name, which collides across\n apps/connectors. Not read by execution — replaced by resource_type_refs.\n Kept only for wire compatibility with existing stored rows; a criteria\n still carrying this without a ref fails closed at execution time.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "resourceTypeRefs": {
            "description": "The only field that scopes resource types; resource_type_ids is deprecated\n and ignored.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.ResourceTypeRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "riskLevelIds": {
            "description": "The riskLevelIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Entitlement Inclusion Criteria",
        "type": "object",
        "x-speakeasy-name-override": "EntitlementInclusionCriteria"
      },
      "c1.api.automations.v1.EntitlementInclusionList": {
        "description": "The EntitlementInclusionList message.",
        "properties": {
          "appEntitlementRefs": {
            "description": "The appEntitlementRefs field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Entitlement Inclusion List",
        "type": "object",
        "x-speakeasy-name-override": "EntitlementInclusionList"
      },
      "c1.api.automations.v1.EntitlementInclusionListCel": {
        "description": "The EntitlementInclusionListCel message.",
        "properties": {
          "appEntitlementRefsCel": {
            "description": "The appEntitlementRefsCel field.",
            "type": "string"
          }
        },
        "title": "Entitlement Inclusion List Cel",
        "type": "object",
        "x-speakeasy-name-override": "EntitlementInclusionListCel"
      },
      "c1.api.automations.v1.EvaluateExpressions": {
        "deprecated": true,
        "description": "The EvaluateExpressions message.",
        "properties": {
          "expressions": {
            "description": "The expressions field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.automations.v1.Expression"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Evaluate Expressions",
        "type": "object",
        "x-speakeasy-name-override": "EvaluateExpressions"
      },
      "c1.api.automations.v1.ExecuteAutomationRequestInput": {
        "description": "The ExecuteAutomationRequest message.",
        "properties": {
          "context": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.AutomationContext"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Execute Automation Request",
        "type": "object",
        "x-speakeasy-name-override": "ExecuteAutomationRequest"
      },
      "c1.api.automations.v1.ExecuteAutomationResponse": {
        "description": "The ExecuteAutomationResponse message.",
        "properties": {
          "executionId": {
            "description": "The unique identifier of the newly created execution.",
            "format": "int64",
            "type": "string"
          }
        },
        "title": "Execute Automation Response",
        "type": "object",
        "x-speakeasy-name-override": "ExecuteAutomationResponse"
      },
      "c1.api.automations.v1.Expression": {
        "deprecated": true,
        "description": "The Expression message.",
        "properties": {
          "expressionCel": {
            "description": "The expressionCel field.",
            "type": "string"
          },
          "isSecret": {
            "description": "The isSecret field.",
            "type": "boolean"
          },
          "key": {
            "description": "The key field.",
            "type": "string"
          }
        },
        "title": "Expression",
        "type": "object",
        "x-speakeasy-name-override": "Expression"
      },
      "c1.api.automations.v1.GeneratePassword": {
        "description": "The GeneratePassword message.",
        "properties": {
          "passwordPolicyId": {
            "deprecated": true,
            "description": "Deprecated: password policy ID lookup is no longer used.",
            "type": "string"
          },
          "policy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.GeneratePasswordPolicy"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Generate Password",
        "type": "object",
        "x-speakeasy-name-override": "GeneratePassword"
      },
      "c1.api.automations.v1.GeneratePasswordPolicy": {
        "description": "GeneratePasswordPolicy defines inline password generation rules.\n\nThis message contains a oneof named character_rules. Only a single field of the following list may be set at a time:\n  - noRestrictions\n  - customCharacters\n  - excludedCharacters\n",
        "properties": {
          "customCharacters": {
            "description": "The customCharacters field.\nThis field is part of the `character_rules` oneof.\nSee the documentation for `c1.api.automations.v1.GeneratePasswordPolicy` for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "excludedCharacters": {
            "description": "The excludedCharacters field.\nThis field is part of the `character_rules` oneof.\nSee the documentation for `c1.api.automations.v1.GeneratePasswordPolicy` for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "maxCharacterCount": {
            "description": "The maxCharacterCount field.",
            "format": "int32",
            "type": "integer"
          },
          "minCharacterCount": {
            "description": "The minCharacterCount field.",
            "format": "int32",
            "type": "integer"
          },
          "noRestrictions": {
            "description": "The noRestrictions field.\nThis field is part of the `character_rules` oneof.\nSee the documentation for `c1.api.automations.v1.GeneratePasswordPolicy` for more details.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "requireLowercase": {
            "description": "The requireLowercase field.",
            "type": "boolean"
          },
          "requireNumbers": {
            "description": "The requireNumbers field.",
            "type": "boolean"
          },
          "requireSpecialCharacters": {
            "description": "The requireSpecialCharacters field.",
            "type": "boolean"
          },
          "requireUppercase": {
            "description": "The requireUppercase field.",
            "type": "boolean"
          }
        },
        "title": "Generate Password Policy",
        "type": "object",
        "x-speakeasy-name-override": "GeneratePasswordPolicy"
      },
      "c1.api.automations.v1.GetAutomationExecutionResponse": {
        "description": "The GetAutomationExecutionResponse message.",
        "properties": {
          "automationExecution": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.AutomationExecution"
              },
              {
                "type": "null"
              }
            ]
          },
          "expanded": {
            "description": "Related objects requested via the expand mask.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "view": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.AutomationExecutionView"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get Automation Execution Response",
        "type": "object",
        "x-speakeasy-name-override": "GetAutomationExecutionResponse"
      },
      "c1.api.automations.v1.GetAutomationResponse": {
        "description": "The GetAutomationResponse message.",
        "properties": {
          "automation": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.Automation"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get Automation Response",
        "type": "object",
        "x-speakeasy-name-override": "GetAutomationResponse"
      },
      "c1.api.automations.v1.GrantDeletedTrigger": {
        "description": "The GrantDeletedTrigger message.",
        "properties": {
          "grantTriggerFilter": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.GrantTriggerFilter"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Grant Deleted Trigger",
        "type": "object",
        "x-speakeasy-name-override": "GrantDeletedTrigger"
      },
      "c1.api.automations.v1.GrantEntitlementExclusionCriteria": {
        "description": "The GrantEntitlementExclusionCriteria message.",
        "properties": {
          "excludedAppIds": {
            "description": "The excludedAppIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "excludedComplianceFrameworkIds": {
            "description": "The excludedComplianceFrameworkIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "excludedRiskLevelIds": {
            "description": "The excludedRiskLevelIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Grant Entitlement Exclusion Criteria",
        "type": "object",
        "x-speakeasy-name-override": "GrantEntitlementExclusionCriteria"
      },
      "c1.api.automations.v1.GrantEntitlementExclusionList": {
        "description": "The GrantEntitlementExclusionList message.",
        "properties": {
          "excludedAppEntitlementRefs": {
            "description": "The excludedAppEntitlementRefs field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Grant Entitlement Exclusion List",
        "type": "object",
        "x-speakeasy-name-override": "GrantEntitlementExclusionList"
      },
      "c1.api.automations.v1.GrantEntitlementExclusionListCel": {
        "description": "The GrantEntitlementExclusionListCel message.",
        "properties": {
          "excludedAppEntitlementRefsCel": {
            "description": "The excludedAppEntitlementRefsCel field.",
            "type": "string"
          }
        },
        "title": "Grant Entitlement Exclusion List Cel",
        "type": "object",
        "x-speakeasy-name-override": "GrantEntitlementExclusionListCel"
      },
      "c1.api.automations.v1.GrantEntitlementExclusionNone": {
        "description": "The GrantEntitlementExclusionNone message.",
        "title": "Grant Entitlement Exclusion None",
        "type": "object",
        "x-speakeasy-name-override": "GrantEntitlementExclusionNone"
      },
      "c1.api.automations.v1.GrantEntitlementInclusionCriteria": {
        "description": "The GrantEntitlementInclusionCriteria message.",
        "properties": {
          "appIds": {
            "description": "The appIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "complianceFrameworkIds": {
            "description": "The complianceFrameworkIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "riskLevelIds": {
            "description": "The riskLevelIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Grant Entitlement Inclusion Criteria",
        "type": "object",
        "x-speakeasy-name-override": "GrantEntitlementInclusionCriteria"
      },
      "c1.api.automations.v1.GrantEntitlementInclusionList": {
        "description": "The GrantEntitlementInclusionList message.",
        "properties": {
          "appEntitlementRefs": {
            "description": "The appEntitlementRefs field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Grant Entitlement Inclusion List",
        "type": "object",
        "x-speakeasy-name-override": "GrantEntitlementInclusionList"
      },
      "c1.api.automations.v1.GrantEntitlementInclusionListCel": {
        "description": "The GrantEntitlementInclusionListCel message.",
        "properties": {
          "appEntitlementRefsCel": {
            "description": "The appEntitlementRefsCel field.",
            "type": "string"
          }
        },
        "title": "Grant Entitlement Inclusion List Cel",
        "type": "object",
        "x-speakeasy-name-override": "GrantEntitlementInclusionListCel"
      },
      "c1.api.automations.v1.GrantEntitlements": {
        "description": "The GrantEntitlements message.\n\nThis message contains a oneof named inclusion. Only a single field of the following list may be set at a time:\n  - inclusionList\n  - inclusionCriteria\n  - inclusionListCel\n\n\nThis message contains a oneof named exclusion. Only a single field of the following list may be set at a time:\n  - exclusionNone\n  - exclusionList\n  - exclusionCriteria\n  - exclusionListCel\n",
        "properties": {
          "exclusionCriteria": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.GrantEntitlementExclusionCriteria"
              },
              {
                "type": "null"
              }
            ]
          },
          "exclusionList": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.GrantEntitlementExclusionList"
              },
              {
                "type": "null"
              }
            ]
          },
          "exclusionListCel": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.GrantEntitlementExclusionListCel"
              },
              {
                "type": "null"
              }
            ]
          },
          "exclusionNone": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.GrantEntitlementExclusionNone"
              },
              {
                "type": "null"
              }
            ]
          },
          "inclusionCriteria": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.GrantEntitlementInclusionCriteria"
              },
              {
                "type": "null"
              }
            ]
          },
          "inclusionList": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.GrantEntitlementInclusionList"
              },
              {
                "type": "null"
              }
            ]
          },
          "inclusionListCel": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.GrantEntitlementInclusionListCel"
              },
              {
                "type": "null"
              }
            ]
          },
          "useSubjectUser": {
            "description": "If true, the step will use the subject user of the automation as the subject.",
            "type": "boolean"
          },
          "userIdCel": {
            "description": "The userIdCel field.",
            "type": "string"
          },
          "userRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Grant Entitlements",
        "type": "object",
        "x-speakeasy-name-override": "GrantEntitlements"
      },
      "c1.api.automations.v1.GrantFoundTrigger": {
        "description": "The GrantFoundTrigger message.",
        "properties": {
          "grantTriggerFilter": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.GrantTriggerFilter"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Grant Found Trigger",
        "type": "object",
        "x-speakeasy-name-override": "GrantFoundTrigger"
      },
      "c1.api.automations.v1.GrantTriggerFilter": {
        "description": "The GrantTriggerFilter message.\n\nThis message contains a oneof named entitlement_inclusion. Only a single field of the following list may be set at a time:\n  - inclusionList\n  - inclusionAll\n  - inclusionCriteria\n  - inclusionListCel\n",
        "properties": {
          "accountFilter": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.GrantTriggerFilter.AccountFilter"
              },
              {
                "type": "null"
              }
            ]
          },
          "grantFilter": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.GrantTriggerFilter.GrantFilter"
              },
              {
                "type": "null"
              }
            ]
          },
          "inclusionAll": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.EntitlementInclusionAll"
              },
              {
                "type": "null"
              }
            ]
          },
          "inclusionCriteria": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.EntitlementInclusionCriteria"
              },
              {
                "type": "null"
              }
            ]
          },
          "inclusionList": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.EntitlementInclusionList"
              },
              {
                "type": "null"
              }
            ]
          },
          "inclusionListCel": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.EntitlementInclusionListCel"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Grant Trigger Filter",
        "type": "object",
        "x-speakeasy-name-override": "GrantTriggerFilter"
      },
      "c1.api.automations.v1.GrantTriggerFilter.AccountFilter": {
        "description": "The AccountFilter message.",
        "properties": {
          "accountType": {
            "description": "The accountType field.",
            "enum": [
              "APP_USER_TYPE_UNSPECIFIED",
              "APP_USER_TYPE_USER",
              "APP_USER_TYPE_SERVICE_ACCOUNT",
              "APP_USER_TYPE_SYSTEM_ACCOUNT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Account Filter",
        "type": "object",
        "x-speakeasy-name-override": "AccountFilter"
      },
      "c1.api.automations.v1.GrantTriggerFilter.GrantFilter": {
        "description": "The GrantFilter message.",
        "properties": {
          "grantFilterType": {
            "description": "The grantFilterType field.",
            "enum": [
              "GRANT_FILTER_TYPE_UNSPECIFIED",
              "GRANT_FILTER_TYPE_PERMANENT",
              "GRANT_FILTER_TYPE_TEMPORARY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "grantJustificationType": {
            "description": "The grantJustificationType field.",
            "enum": [
              "GRANT_JUSTIFICATION_TYPE_UNSPECIFIED",
              "GRANT_JUSTIFICATION_TYPE_ALL",
              "GRANT_JUSTIFICATION_TYPE_CONDUCTOR_ONE",
              "GRANT_JUSTIFICATION_TYPE_DIRECT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "grantSourceFilter": {
            "description": "The grantSourceFilter field.",
            "enum": [
              "GRANT_SOURCE_FILTER_UNSPECIFIED",
              "GRANT_SOURCE_FILTER_DIRECT",
              "GRANT_SOURCE_FILTER_INHERITED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Grant Filter",
        "type": "object",
        "x-speakeasy-name-override": "GrantFilter"
      },
      "c1.api.automations.v1.ListAutomationExecutionsResponse": {
        "description": "The ListAutomationExecutionsResponse message.",
        "properties": {
          "automationExecutions": {
            "description": "The page of automation executions.",
            "items": {
              "$ref": "#/components/schemas/c1.api.automations.v1.AutomationExecution"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token to retrieve the next page of results, empty when no more results exist.",
            "type": "string"
          }
        },
        "title": "List Automation Executions Response",
        "type": "object",
        "x-speakeasy-name-override": "ListAutomationExecutionsResponse"
      },
      "c1.api.automations.v1.ListAutomationsResponse": {
        "description": "The ListAutomationsResponse message.",
        "properties": {
          "list": {
            "description": "The page of automations.",
            "items": {
              "$ref": "#/components/schemas/c1.api.automations.v1.Automation"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token to retrieve the next page of results, empty when no more results exist.",
            "type": "string"
          }
        },
        "title": "List Automations Response",
        "type": "object",
        "x-speakeasy-name-override": "ListAutomationsResponse"
      },
      "c1.api.automations.v1.ReassignAction": {
        "description": "The ReassignAction message.\n\nThis message contains a oneof named assignee_user_identifier. Only a single field of the following list may be set at a time:\n  - assigneeUserIdCel\n  - assigneeUserRef\n\n\nThis message contains a oneof named subject_user_identifier. Only a single field of the following list may be set at a time:\n  - subjectUserIdCel\n  - subjectUserRef\n",
        "properties": {
          "assigneeUserIdCel": {
            "description": "The assigneeUserIdCel field.\nThis field is part of the `assignee_user_identifier` oneof.\nSee the documentation for `c1.api.automations.v1.ReassignAction` for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "assigneeUserRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "subjectUserIdCel": {
            "description": "The subjectUserIdCel field.\nThis field is part of the `subject_user_identifier` oneof.\nSee the documentation for `c1.api.automations.v1.ReassignAction` for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "subjectUserRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "useSubjectUser": {
            "description": "If true, the step will use the subject user of the automation as the subject.",
            "type": "boolean"
          }
        },
        "title": "Reassign Action",
        "type": "object",
        "x-speakeasy-name-override": "ReassignAction"
      },
      "c1.api.automations.v1.RemoveFromDelegation": {
        "description": "RemoveFromDelegation: find all users that have the target user as their delegated user, and modify the delegation.\n\nThis message contains a oneof named replacement_user. Only a single field of the following list may be set at a time:\n  - replacementUserIdCel\n  - replacementUserRef\n",
        "properties": {
          "replacementUserIdCel": {
            "description": "The user who will replace the target user's delegation\nThis field is part of the `replacement_user` oneof.\nSee the documentation for `c1.api.automations.v1.RemoveFromDelegation` for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "replacementUserRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "useSubjectUser": {
            "description": "If true, the step will use the subject user of the automation as the subject.",
            "type": "boolean"
          },
          "userIdCel": {
            "description": "The userIdCel field.",
            "type": "string"
          },
          "userRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Remove From Delegation",
        "type": "object",
        "x-speakeasy-name-override": "RemoveFromDelegation"
      },
      "c1.api.automations.v1.ResolvePausedAutomationExecutionsRequestInput": {
        "description": "The ResolvePausedAutomationExecutionsRequest message.",
        "properties": {
          "decision": {
            "description": "Whether to run or cancel the paused executions.",
            "enum": [
              "PAUSED_EXECUTION_DECISION_UNSPECIFIED",
              "PAUSED_EXECUTION_DECISION_RUN",
              "PAUSED_EXECUTION_DECISION_CANCEL"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "reason": {
            "description": "Optional human-readable reason for the resolution decision. Stored on\n the audit row (paused_run / paused_cancelled events) for post-mortem\n and compliance use. Surfaced in the FE as a required field on CANCEL\n so admins capture why bulk-cancellation happened. Up to 1024 bytes.",
            "type": "string"
          }
        },
        "title": "Resolve Paused Automation Executions Request",
        "type": "object",
        "x-speakeasy-name-override": "ResolvePausedAutomationExecutionsRequest"
      },
      "c1.api.automations.v1.ResolvePausedAutomationExecutionsResponse": {
        "description": "The ResolvePausedAutomationExecutionsResponse message.",
        "properties": {
          "bulkActionId": {
            "description": "The bulk action ID created to resolve the paused executions. Track\n progress via the BulkAction API.",
            "type": "string"
          },
          "erroredCount": {
            "deprecated": true,
            "description": "Deprecated: see paused_count.",
            "format": "uint32",
            "type": "integer"
          },
          "pausedCount": {
            "deprecated": true,
            "description": "Deprecated: previously returned inline resolution counts. Now returns\n the bulk action ID for async tracking.",
            "format": "uint32",
            "type": "integer"
          }
        },
        "title": "Resolve Paused Automation Executions Response",
        "type": "object",
        "x-speakeasy-name-override": "ResolvePausedAutomationExecutionsResponse"
      },
      "c1.api.automations.v1.RunAutomation": {
        "description": "RunAutomation: kick off the execution of an automation template.\n\nThis message contains a oneof named automation_template. Only a single field of the following list may be set at a time:\n  - automationTemplateRef\n  - automationTemplateIdCel\n",
        "properties": {
          "automationTemplateIdCel": {
            "description": "The automationTemplateIdCel field.\nThis field is part of the `automation_template` oneof.\nSee the documentation for `c1.api.automations.v1.RunAutomation` for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "automationTemplateRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.AutomationTemplateRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "context": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.AutomationContext"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Run Automation",
        "type": "object",
        "x-speakeasy-name-override": "RunAutomation"
      },
      "c1.api.automations.v1.RunDelayed": {
        "description": "The RunDelayed message.",
        "properties": {
          "coldStartDelayDays": {
            "description": "The coldStartDelayDays field.",
            "format": "uint32",
            "type": "integer"
          }
        },
        "required": [
          "coldStartDelayDays"
        ],
        "title": "Run Delayed",
        "type": "object",
        "x-speakeasy-name-override": "RunDelayed"
      },
      "c1.api.automations.v1.RunImmediately": {
        "description": "No fields needed; this just indicates the trigger should run immediately",
        "title": "Run Immediately",
        "type": "object",
        "x-speakeasy-name-override": "RunImmediately"
      },
      "c1.api.automations.v1.ScheduleTrigger": {
        "description": "The ScheduleTrigger message.",
        "properties": {
          "advanced": {
            "description": "The advanced field.",
            "type": "boolean"
          },
          "condition": {
            "description": "The condition field.",
            "type": "string"
          },
          "cronSpec": {
            "description": "The cronSpec field.",
            "type": "string"
          },
          "skipIfTrueCel": {
            "deprecated": true,
            "description": "The skipIfTrueCel field.",
            "type": "string"
          },
          "start": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "timezone": {
            "description": "The timezone field.",
            "type": "string"
          }
        },
        "title": "Schedule Trigger",
        "type": "object",
        "x-speakeasy-name-override": "ScheduleTrigger"
      },
      "c1.api.automations.v1.ScheduleTriggerAppUser": {
        "description": "The ScheduleTriggerAppUser message.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "condition": {
            "description": "The condition field.",
            "type": "string"
          },
          "cronSpec": {
            "description": "The cronSpec field.",
            "type": "string"
          },
          "start": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "timezone": {
            "description": "The timezone field.",
            "type": "string"
          }
        },
        "title": "Schedule Trigger App User",
        "type": "object",
        "x-speakeasy-name-override": "ScheduleTriggerAppUser"
      },
      "c1.api.automations.v1.ScheduleTriggerNoUser": {
        "description": "ScheduleTriggerNoUser fires on a cron schedule with no subject user (e.g. reports, syncs, orchestration).\n Minimum cron interval is enforced at 1 hour in validation.",
        "properties": {
          "advanced": {
            "description": "The advanced field.",
            "type": "boolean"
          },
          "cronSpec": {
            "description": "The cronSpec field.",
            "type": "string"
          },
          "start": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "timezone": {
            "description": "The timezone field.",
            "type": "string"
          }
        },
        "title": "Schedule Trigger No User",
        "type": "object",
        "x-speakeasy-name-override": "ScheduleTriggerNoUser"
      },
      "c1.api.automations.v1.SearchAllAutomationExecutionsRequest": {
        "description": "The SearchAllAutomationExecutionsRequest message.",
        "properties": {
          "appIds": {
            "description": "Filter to executions associated with one or more apps.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "automationTemplateIds": {
            "description": "Filter to one or more specific automation templates.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "executionStates": {
            "description": "Filter by execution state (e.g. DONE, ERROR).",
            "items": {
              "enum": [
                "AUTOMATION_EXECUTION_STATE_UNSPECIFIED",
                "AUTOMATION_EXECUTION_STATE_PENDING",
                "AUTOMATION_EXECUTION_STATE_CREATING",
                "AUTOMATION_EXECUTION_STATE_GET_STEP",
                "AUTOMATION_EXECUTION_STATE_PROCESS_STEP",
                "AUTOMATION_EXECUTION_STATE_COMPLETE_STEP",
                "AUTOMATION_EXECUTION_STATE_DONE",
                "AUTOMATION_EXECUTION_STATE_ERROR",
                "AUTOMATION_EXECUTION_STATE_TERMINATE",
                "AUTOMATION_EXECUTION_STATE_WAITING",
                "AUTOMATION_EXECUTION_STATE_PAUSED_BY_CIRCUIT_BREAKER"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.AutomationExecutionExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "pageSize": {
            "description": "Maximum number of results to return per page.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "Pagination token from a previous SearchAllAutomationExecutionsResponse.",
            "type": "string"
          },
          "subjectUserIds": {
            "description": "Filter to executions where one or more C1 users are subjects.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Search All Automation Executions Request",
        "type": "object",
        "x-speakeasy-name-override": "SearchAllAutomationExecutionsRequest"
      },
      "c1.api.automations.v1.SearchAllAutomationExecutionsResponse": {
        "description": "The SearchAllAutomationExecutionsResponse message.",
        "properties": {
          "expanded": {
            "description": "Related objects requested via the expand mask.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "list": {
            "description": "The page of execution views matching the search criteria.",
            "items": {
              "$ref": "#/components/schemas/c1.api.automations.v1.AutomationExecutionView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token to retrieve the next page of results, empty when no more results exist.",
            "type": "string"
          }
        },
        "title": "Search All Automation Executions Response",
        "type": "object",
        "x-speakeasy-name-override": "SearchAllAutomationExecutionsResponse"
      },
      "c1.api.automations.v1.SearchAutomationExecutionsRequest": {
        "description": "The SearchAutomationExecutionsRequest message.",
        "properties": {
          "automationTemplateId": {
            "description": "Filter results to executions of this automation template.",
            "type": "string"
          },
          "executionId": {
            "description": "Filter results to a specific execution by its numeric identifier.",
            "format": "int64",
            "type": "string"
          },
          "executionStepStates": {
            "description": "Filter results to executions in any of the specified states.",
            "items": {
              "enum": [
                "AUTOMATION_EXECUTION_STATE_UNSPECIFIED",
                "AUTOMATION_EXECUTION_STATE_PENDING",
                "AUTOMATION_EXECUTION_STATE_CREATING",
                "AUTOMATION_EXECUTION_STATE_GET_STEP",
                "AUTOMATION_EXECUTION_STATE_PROCESS_STEP",
                "AUTOMATION_EXECUTION_STATE_COMPLETE_STEP",
                "AUTOMATION_EXECUTION_STATE_DONE",
                "AUTOMATION_EXECUTION_STATE_ERROR",
                "AUTOMATION_EXECUTION_STATE_TERMINATE",
                "AUTOMATION_EXECUTION_STATE_WAITING",
                "AUTOMATION_EXECUTION_STATE_PAUSED_BY_CIRCUIT_BREAKER"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.AutomationExecutionExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "pageSize": {
            "description": "Maximum number of results to return per page.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "Pagination token from a previous SearchAutomationExecutionsResponse.",
            "type": "string"
          },
          "query": {
            "description": "Free-text search query to filter executions.",
            "type": "string"
          },
          "refs": {
            "description": "Restrict results to specific execution references.",
            "items": {
              "$ref": "#/components/schemas/c1.api.automations.v1.AutomationExecutionRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Search Automation Executions Request",
        "type": "object",
        "x-speakeasy-name-override": "SearchAutomationExecutionsRequest"
      },
      "c1.api.automations.v1.SearchAutomationExecutionsResponse": {
        "description": "The SearchAutomationExecutionsResponse message.",
        "properties": {
          "expanded": {
            "description": "Related objects requested via the expand mask.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "list": {
            "description": "The page of execution views matching the search criteria.",
            "items": {
              "$ref": "#/components/schemas/c1.api.automations.v1.AutomationExecutionView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token to retrieve the next page of results, empty when no more results exist.",
            "type": "string"
          }
        },
        "title": "Search Automation Executions Response",
        "type": "object",
        "x-speakeasy-name-override": "SearchAutomationExecutionsResponse"
      },
      "c1.api.automations.v1.SearchAutomationTemplateVersionsRequest": {
        "description": "The SearchAutomationTemplateVersionsRequest message.",
        "properties": {
          "automationTemplateId": {
            "description": "The automation template whose version history to search.",
            "type": "string"
          },
          "pageSize": {
            "description": "Maximum number of results to return per page.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "Pagination token from a previous SearchAutomationTemplateVersionsResponse.",
            "type": "string"
          }
        },
        "title": "Search Automation Template Versions Request",
        "type": "object",
        "x-speakeasy-name-override": "SearchAutomationTemplateVersionsRequest"
      },
      "c1.api.automations.v1.SearchAutomationTemplateVersionsResponse": {
        "description": "The SearchAutomationTemplateVersionsResponse message.",
        "properties": {
          "list": {
            "description": "The page of template versions matching the search criteria.",
            "items": {
              "$ref": "#/components/schemas/c1.api.automations.v1.AutomationTemplateVersion"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token to retrieve the next page of results, empty when no more results exist.",
            "type": "string"
          }
        },
        "title": "Search Automation Template Versions Response",
        "type": "object",
        "x-speakeasy-name-override": "SearchAutomationTemplateVersionsResponse"
      },
      "c1.api.automations.v1.SearchAutomationsRequest": {
        "description": "The SearchAutomationsRequest message.",
        "properties": {
          "appId": {
            "description": "Filter results to automations belonging to this application.",
            "type": "string"
          },
          "appIds": {
            "description": "Filter results to automations belonging to any of the specified apps.\n Supersedes the singular `app_id` field when non-empty; when empty, the\n server falls back to `app_id` for backward compatibility.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "direction": {
            "description": "Direction to sort in. Unspecified falls back to ASC when sort_field is set;\n when sort_field is also unspecified, the server default order (created_at\n DESC) applies.",
            "enum": [
              "SORT_DIRECTION_UNSPECIFIED",
              "SORT_DIRECTION_ASC",
              "SORT_DIRECTION_DESC"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "isDraft": {
            "description": "Tri-state draft filter. Unset = include both drafts and published;\n `true` = drafts only; `false` = published only.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "pageSize": {
            "description": "Maximum number of results to return per page.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "Pagination token from a previous SearchAutomationsResponse.",
            "type": "string"
          },
          "query": {
            "description": "Free-text search query to filter automations by name or description.",
            "type": "string"
          },
          "refs": {
            "description": "Restrict results to automations matching these template references.",
            "items": {
              "$ref": "#/components/schemas/c1.api.automations.v1.AutomationTemplateRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "sortField": {
            "description": "Column to sort by. Unspecified (0) means sort by created_at desc (server default).",
            "enum": [
              "AUTOMATION_SORT_FIELD_UNSPECIFIED",
              "AUTOMATION_SORT_FIELD_DISPLAY_NAME",
              "AUTOMATION_SORT_FIELD_CREATED_AT",
              "AUTOMATION_SORT_FIELD_LAST_EXECUTED_AT",
              "AUTOMATION_SORT_FIELD_ENABLED",
              "AUTOMATION_SORT_FIELD_PRIMARY_TRIGGER_TYPE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "statuses": {
            "description": "Filter results by automation status. Empty or containing both ON and OFF\n applies no status filter.",
            "items": {
              "enum": [
                "AUTOMATION_STATUS_FILTER_UNSPECIFIED",
                "AUTOMATION_STATUS_FILTER_ON",
                "AUTOMATION_STATUS_FILTER_OFF"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "triggerTypes": {
            "description": "Filter results to automations with any of the specified trigger types.",
            "items": {
              "enum": [
                "TRIGGER_TYPE_UNSPECIFIED",
                "TRIGGER_TYPE_USER_PROFILE_CHANGE",
                "TRIGGER_TYPE_APP_USER_CREATE",
                "TRIGGER_TYPE_APP_USER_UPDATE",
                "TRIGGER_TYPE_UNUSED_ACCESS",
                "TRIGGER_TYPE_USER_CREATED",
                "TRIGGER_TYPE_GRANT_FOUND",
                "TRIGGER_TYPE_GRANT_DELETED",
                "TRIGGER_TYPE_WEBHOOK",
                "TRIGGER_TYPE_SCHEDULE",
                "TRIGGER_TYPE_FORM",
                "TRIGGER_TYPE_SCHEDULE_APP_USER",
                "TRIGGER_TYPE_ACCESS_CONFLICT",
                "TRIGGER_TYPE_SCHEDULE_NO_USER"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Search Automations Request",
        "type": "object",
        "x-speakeasy-name-override": "SearchAutomationsRequest"
      },
      "c1.api.automations.v1.SearchAutomationsResponse": {
        "description": "The SearchAutomationsResponse message.",
        "properties": {
          "list": {
            "description": "The page of automations matching the search criteria.",
            "items": {
              "$ref": "#/components/schemas/c1.api.automations.v1.Automation"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token to retrieve the next page of results, empty when no more results exist.",
            "type": "string"
          }
        },
        "title": "Search Automations Response",
        "type": "object",
        "x-speakeasy-name-override": "SearchAutomationsResponse"
      },
      "c1.api.automations.v1.SendEmail": {
        "description": "The SendEmail message.",
        "properties": {
          "body": {
            "description": "The body field.",
            "type": "string"
          },
          "email": {
            "deprecated": true,
            "description": "Deprecated: use email_cel instead. Static email field shipped behind FF 541 (SKU_MANUAL)\n with zero tenant enablement. CEL subsumes static: '\"ops@example.com\"' is valid CEL.",
            "type": "string"
          },
          "emailCel": {
            "description": "CEL expression resolving to one or more email addresses (string or list\u003cstring\u003e).\n Evaluated against the workflow execution context (trigger + completed steps).\n Static emails work too: '\"ops@example.com\"' is valid CEL.\n Supports list\u003cstring\u003e for multiple recipients: '[\"a@x.com\", \"b@x.com\"]'.\n Requires the tenant to have a TenantEmailProvider configured.",
            "type": "string"
          },
          "subject": {
            "description": "The subject field.",
            "type": "string"
          },
          "title": {
            "description": "The title field.",
            "type": "string"
          },
          "useSubjectUser": {
            "description": "If true, the step will use the subject user of the automation as the subject.",
            "type": "boolean"
          },
          "userIdsCel": {
            "description": "The userIdsCel field.",
            "type": "string"
          },
          "userRefs": {
            "description": "The userRefs field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Send Email",
        "type": "object",
        "x-speakeasy-name-override": "SendEmail"
      },
      "c1.api.automations.v1.SendSlackMessage": {
        "description": "SendSlackMessage posts to a channel or DMs one or more users. Delivery mode is\n inferred from which fields are populated: DM if any user field is set\n (use_subject_user, user_ids_cel, user_refs), otherwise channel. Priority for DM\n recipient resolution: use_subject_user \u003e user_ids_cel \u003e user_refs.\n\nThis message contains a oneof named channel. Only a single field of the following list may be set at a time:\n  - channelName\n  - channelNameCel\n",
        "properties": {
          "body": {
            "description": "The body field.",
            "type": "string"
          },
          "channelIsId": {
            "description": "When true, the channel value (channel_name / channel_name_cel) is a Slack\n channel ID rather than a name. The backend looks the channel up by ID and\n fails permanently if it does not exist or the bot cannot access it — it does\n not create or search by name. Only applies to channel delivery.",
            "type": "boolean"
          },
          "channelName": {
            "description": "The channelName field.\nThis field is part of the `channel` oneof.\nSee the documentation for `c1.api.automations.v1.SendSlackMessage` for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "channelNameCel": {
            "description": "The channelNameCel field.\nThis field is part of the `channel` oneof.\nSee the documentation for `c1.api.automations.v1.SendSlackMessage` for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "useSubjectUser": {
            "description": "The useSubjectUser field.",
            "type": "boolean"
          },
          "userIdsCel": {
            "description": "The userIdsCel field.",
            "type": "string"
          },
          "userRefs": {
            "description": "The userRefs field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Send Slack Message",
        "type": "object",
        "x-speakeasy-name-override": "SendSlackMessage"
      },
      "c1.api.automations.v1.SetCredential": {
        "description": "SetCredential submits a RotateCredentials baton task to the target connector,\n re-encrypting the given password CEL expression with the connector's public JWK.\n\nThis message contains a oneof named connector_identifier. Only a single field of the following list may be set at a time:\n  - connectorRef\n",
        "properties": {
          "accountIdCel": {
            "description": "The accountIdCel field.",
            "type": "string"
          },
          "connectorRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.ConnectorRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "passwordCel": {
            "description": "The passwordCel field.",
            "type": "string"
          }
        },
        "title": "Set Credential",
        "type": "object",
        "x-speakeasy-name-override": "SetCredential"
      },
      "c1.api.automations.v1.StoreCredential": {
        "description": "StoreCredential stores a credential from GeneratePassword in a vault.\n Supports Paper Vault (SSO/email) and App Vault (entitlement-bound).",
        "properties": {
          "appIdCel": {
            "description": "CEL expression that resolves to app ID (App Vault only)",
            "type": "string"
          },
          "authType": {
            "description": "Authentication type for the paper vault recipient (Paper Vault only)",
            "enum": [
              "STORE_CREDENTIAL_AUTH_TYPE_UNSPECIFIED",
              "STORE_CREDENTIAL_AUTH_TYPE_SSO_INTERNAL",
              "STORE_CREDENTIAL_AUTH_TYPE_VERIFY_EMAIL"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "credentialCel": {
            "description": "CEL expression that resolves to the encrypted credential from GeneratePassword",
            "type": "string"
          },
          "expiry": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "labelCel": {
            "description": "Optional display label for the vault",
            "type": "string"
          },
          "maxViews": {
            "description": "Maximum number of views (0 = unlimited, default 1) (Paper Vault only)",
            "format": "uint32",
            "type": "integer"
          },
          "recipientCel": {
            "description": "CEL expression resolving to one or more recipient C1 user IDs — a string or list\u003cstring\u003e,\n e.g. '[\"u1\",\"u2\"]' (SSO_INTERNAL / App Vault). App Vault accepts a single user only.",
            "type": "string"
          },
          "recipientEmailCel": {
            "description": "CEL expression resolving to one or more recipient email addresses — a string or list\u003cstring\u003e,\n e.g. '[\"a@x.com\",\"b@x.com\"]' (Paper Vault + VERIFY_EMAIL only).",
            "type": "string"
          },
          "ttl": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "vaultType": {
            "description": "Vault type selector (default: PAPER_VAULT for backward compatibility)",
            "enum": [
              "STORE_CREDENTIAL_VAULT_TYPE_UNSPECIFIED",
              "STORE_CREDENTIAL_VAULT_TYPE_PAPER_VAULT",
              "STORE_CREDENTIAL_VAULT_TYPE_APP_VAULT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Store Credential",
        "type": "object",
        "x-speakeasy-name-override": "StoreCredential"
      },
      "c1.api.automations.v1.TaskAction": {
        "description": "The TaskAction message.\n\nThis message contains a oneof named action. Only a single field of the following list may be set at a time:\n  - close\n  - reassign\n",
        "properties": {
          "close": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.CloseAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "reassign": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.ReassignAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "taskTypes": {
            "description": "The taskTypes field.",
            "items": {
              "enum": [
                "TASK_TYPE_UNSPECIFIED",
                "TASK_TYPE_REQUEST",
                "TASK_TYPE_REVOKE",
                "TASK_TYPE_REVIEW"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "taskUserRelation": {
            "description": "The taskUserRelation field.",
            "enum": [
              "TASK_USER_RELATION_UNSPECIFIED",
              "TASK_USER_RELATION_ASSIGNEE",
              "TASK_USER_RELATION_SUBJECT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Task Action",
        "type": "object",
        "x-speakeasy-name-override": "TaskAction"
      },
      "c1.api.automations.v1.TerminateAutomationRequestInput": {
        "description": "The TerminateAutomationRequest message.",
        "title": "Terminate Automation Request",
        "type": "object",
        "x-speakeasy-name-override": "TerminateAutomationRequest"
      },
      "c1.api.automations.v1.TerminateAutomationResponse": {
        "description": "The TerminateAutomationResponse message.",
        "title": "Terminate Automation Response",
        "type": "object",
        "x-speakeasy-name-override": "TerminateAutomationResponse"
      },
      "c1.api.automations.v1.UnenrollFromAllAccessProfiles": {
        "description": "The UnenrollFromAllAccessProfiles message.",
        "properties": {
          "catalogIds": {
            "description": "Optional list of catalog IDs to unenroll from. If empty, unenroll from all catalogs.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "catalogIdsCel": {
            "description": "CEL expression to dynamically select catalog IDs. If provided, overrides catalog_ids.",
            "type": "string"
          },
          "useSubjectUser": {
            "description": "If true, the step will use the subject user of the automation as the subject.",
            "type": "boolean"
          },
          "userIdsCel": {
            "description": "The userIdsCel field.",
            "type": "string"
          },
          "userRefs": {
            "description": "The userRefs field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Unenroll From All Access Profiles",
        "type": "object",
        "x-speakeasy-name-override": "UnenrollFromAllAccessProfiles"
      },
      "c1.api.automations.v1.UpdateAutomationRequestInput": {
        "description": "The UpdateAutomationRequest message.",
        "properties": {
          "automation": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.Automation"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Update Automation Request",
        "type": "object",
        "x-speakeasy-name-override": "UpdateAutomationRequest"
      },
      "c1.api.automations.v1.UpdateAutomationResponse": {
        "description": "The UpdateAutomationResponse message.",
        "properties": {
          "automation": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.Automation"
              },
              {
                "type": "null"
              }
            ]
          },
          "webhookCapabilityUrl": {
            "description": "One-time absolute webhook URL for capability URL authentication, shown once when the trigger is saved.\n Contains the full URL including the embedded token (e.g. https://tenant.conductorone.com/api/v1/webhooks/incoming/{id}/t/{token}).\n Populated only when the webhook trigger uses capability URL authentication.",
            "type": "string"
          },
          "webhookHmacSecret": {
            "description": "One-time HMAC shared secret, shown once when the trigger is saved.\n Populated only when the webhook trigger uses HMAC authentication.",
            "type": "string"
          }
        },
        "title": "Update Automation Response",
        "type": "object",
        "x-speakeasy-name-override": "UpdateAutomationResponse"
      },
      "c1.api.automations.v1.UpdateUser": {
        "description": "The UpdateUser message.\n\nThis message contains a oneof named user. Only a single field of the following list may be set at a time:\n  - userIdCel\n  - userRef\n\n\nThis message contains a oneof named user_status. Only a single field of the following list may be set at a time:\n  - userStatusEnum\n  - userStatusCel\n",
        "properties": {
          "useSubjectUser": {
            "description": "If true, the step will use the subject user of the automation as the subject.",
            "type": "boolean"
          },
          "userIdCel": {
            "description": "The userIdCel field.\nThis field is part of the `user` oneof.\nSee the documentation for `c1.api.automations.v1.UpdateUser` for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "userRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "userStatusCel": {
            "description": "The userStatusCel field.\nThis field is part of the `user_status` oneof.\nSee the documentation for `c1.api.automations.v1.UpdateUser` for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "userStatusEnum": {
            "description": "The userStatusEnum field.\nThis field is part of the `user_status` oneof.\nSee the documentation for `c1.api.automations.v1.UpdateUser` for more details.",
            "enum": [
              "UNKNOWN",
              "ENABLED",
              "DISABLED",
              "DELETED"
            ],
            "type": [
              "string",
              "null"
            ],
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Update User",
        "type": "object",
        "x-speakeasy-name-override": "UpdateUser"
      },
      "c1.api.automations.v1.UsageBasedRevocationTrigger": {
        "description": "The UsageBasedRevocationTrigger message.\n\nThis message contains a oneof named cold_start_schedule. Only a single field of the following list may be set at a time:\n  - runImmediately\n  - runDelayed\n",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "enabledAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "excludedGroupRefs": {
            "description": "The excludedGroupRefs field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "excludedUserRefs": {
            "description": "The excludedUserRefs field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "includeUsersWithNoActivity": {
            "description": "The includeUsersWithNoActivity field.",
            "type": "boolean"
          },
          "runDelayed": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.RunDelayed"
              },
              {
                "type": "null"
              }
            ]
          },
          "runImmediately": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.RunImmediately"
              },
              {
                "type": "null"
              }
            ]
          },
          "targetedAppUserTypes": {
            "description": "The targetedAppUserTypes field.",
            "items": {
              "enum": [
                "APP_USER_TYPE_UNSPECIFIED",
                "APP_USER_TYPE_USER",
                "APP_USER_TYPE_SERVICE_ACCOUNT",
                "APP_USER_TYPE_SYSTEM_ACCOUNT"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "targetedEntitlementRefs": {
            "description": "The targetedEntitlementRefs field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "unusedForDays": {
            "description": "The unusedForDays field.",
            "format": "uint32",
            "type": "integer"
          }
        },
        "title": "Usage Based Revocation Trigger",
        "type": "object",
        "x-speakeasy-name-override": "UsageBasedRevocationTrigger"
      },
      "c1.api.automations.v1.UserCreatedTrigger": {
        "description": "The UserCreatedTrigger message.",
        "properties": {
          "condition": {
            "description": "The condition field.",
            "type": "string"
          }
        },
        "title": "User Created Trigger",
        "type": "object",
        "x-speakeasy-name-override": "UserCreatedTrigger"
      },
      "c1.api.automations.v1.UserProfileChangeTrigger": {
        "description": "The UserProfileChangeTrigger message.",
        "properties": {
          "condition": {
            "description": "The condition field.",
            "type": "string"
          }
        },
        "title": "User Profile Change Trigger",
        "type": "object",
        "x-speakeasy-name-override": "UserProfileChangeTrigger"
      },
      "c1.api.automations.v1.UserProperties": {
        "description": "The UserProperties message.",
        "properties": {
          "displayNameCel": {
            "description": "The displayNameCel field.",
            "type": "string"
          },
          "emailCel": {
            "description": "The emailCel field.",
            "type": "string"
          },
          "profileAttributeCel": {
            "description": "The profileAttributeCel field.",
            "type": "string"
          },
          "usernameCel": {
            "description": "The usernameCel field.",
            "type": "string"
          }
        },
        "title": "User Properties",
        "type": "object",
        "x-speakeasy-name-override": "UserProperties"
      },
      "c1.api.automations.v1.WaitForDuration": {
        "description": "The WaitForDuration message.",
        "properties": {
          "duration": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Wait For Duration",
        "type": "object",
        "x-speakeasy-name-override": "WaitForDuration"
      },
      "c1.api.automations.v1.Webhook": {
        "description": "The Webhook message.\n\nThis message contains a oneof named webhook_identifier. Only a single field of the following list may be set at a time:\n  - webhookId\n  - webhookIdCel\n",
        "properties": {
          "payload": {
            "additionalProperties": true,
            "type": [
              "object",
              "null"
            ]
          },
          "webhookId": {
            "description": "The webhookId field.\nThis field is part of the `webhook_identifier` oneof.\nSee the documentation for `c1.api.automations.v1.Webhook` for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "webhookIdCel": {
            "description": "The webhookIdCel field.\nThis field is part of the `webhook_identifier` oneof.\nSee the documentation for `c1.api.automations.v1.Webhook` for more details.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Webhook",
        "type": "object",
        "x-speakeasy-name-override": "Webhook"
      },
      "c1.api.automations.v1.WebhookAutomationTrigger": {
        "description": "The WebhookAutomationTrigger message.\n\nThis message contains a oneof named auth_config. Only a single field of the following list may be set at a time:\n  - jwt\n  - hmac\n  - capabilityUrl\n",
        "properties": {
          "capabilityUrl": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.WebhookListenerAuthCapabilityURL"
              },
              {
                "type": "null"
              }
            ]
          },
          "hmac": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.WebhookListenerAuthHMAC"
              },
              {
                "type": "null"
              }
            ]
          },
          "jwt": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.automations.v1.WebhookListenerAuthJWT"
              },
              {
                "type": "null"
              }
            ]
          },
          "listenerId": {
            "description": "Optional existing listener ID (hidden field from frontend)",
            "type": "string"
          }
        },
        "title": "Webhook Automation Trigger",
        "type": "object",
        "x-speakeasy-name-override": "WebhookAutomationTrigger"
      },
      "c1.api.automations.v1.WebhookListenerAuthCapabilityURL": {
        "description": "Capability URL authentication: the URL itself contains an unguessable token that acts\n as the credential. This is simpler to integrate but less secure than JWT or HMAC because\n the token can leak via server logs, referrer headers, and URL sharing.\n See https://www.w3.org/TR/capability-urls/ for background.",
        "title": "Webhook Listener Auth Capability Url",
        "type": "object",
        "x-speakeasy-name-override": "WebhookListenerAuthCapabilityURL"
      },
      "c1.api.automations.v1.WebhookListenerAuthHMAC": {
        "description": "The WebhookListenerAuthHMAC message.",
        "title": "Webhook Listener Auth Hmac",
        "type": "object",
        "x-speakeasy-name-override": "WebhookListenerAuthHMAC"
      },
      "c1.api.automations.v1.WebhookListenerAuthJWT": {
        "description": "The WebhookListenerAuthJWT message.",
        "properties": {
          "jwksUrl": {
            "description": "The jwksUrl field.",
            "type": "string"
          }
        },
        "title": "Webhook Listener Auth Jwt",
        "type": "object",
        "x-speakeasy-name-override": "WebhookListenerAuthJWT"
      },
      "c1.api.connector_authoring.v1.ConnectorAuthoringServiceActivateRevisionRequest": {
        "description": "The ConnectorAuthoringServiceActivateRevisionRequest message.",
        "properties": {
          "approvalTokenId": {
            "description": "The approvalTokenId field.",
            "type": "string"
          },
          "catalogId": {
            "description": "The catalogId field.",
            "type": "string"
          },
          "idempotencyKey": {
            "description": "Optional, reserved for a future replay-result cache. It is accepted but\n currently unused: the single-use approval token is the double-activate\n mechanism, so no key is required today. Bounded so a future key stays sane.",
            "type": "string"
          },
          "instanceAppId": {
            "description": "The instanceAppId field.",
            "type": "string"
          },
          "instanceConnectorId": {
            "description": "The instanceConnectorId field.",
            "type": "string"
          },
          "revisionId": {
            "description": "The revisionId field.",
            "type": "string"
          }
        },
        "title": "Connector Authoring Service Activate Revision Request",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorAuthoringServiceActivateRevisionRequest"
      },
      "c1.api.connector_authoring.v1.ConnectorAuthoringServiceActivateRevisionResponse": {
        "description": "The ConnectorAuthoringServiceActivateRevisionResponse message.",
        "properties": {
          "activationEpoch": {
            "description": "Committed activation epoch, or 0 when requested but not active yet.",
            "format": "uint64",
            "type": "string"
          },
          "deploymentEventId": {
            "description": "Non-empty while instance rotation is pending. Observe completion through GetInstallation.",
            "type": "string"
          },
          "revisionId": {
            "description": "The requested revision; published only after cutover commits.",
            "type": "string"
          }
        },
        "title": "Connector Authoring Service Activate Revision Response",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorAuthoringServiceActivateRevisionResponse"
      },
      "c1.api.connector_authoring.v1.ConnectorAuthoringServiceRollbackRevisionRequest": {
        "description": "The ConnectorAuthoringServiceRollbackRevisionRequest message.",
        "properties": {
          "approvalTokenId": {
            "description": "The approvalTokenId field.",
            "type": "string"
          },
          "catalogId": {
            "description": "The catalogId field.",
            "type": "string"
          },
          "instanceAppId": {
            "description": "The instanceAppId field.",
            "type": "string"
          },
          "instanceConnectorId": {
            "description": "The instanceConnectorId field.",
            "type": "string"
          },
          "reason": {
            "description": "Optional operator justification, recorded on the audit event.",
            "type": "string"
          },
          "targetRevisionId": {
            "description": "The previously activated revision the published + instance pointers roll\n back TO. Caller-chosen and explicit so the audit trail records an exact,\n human-selected target.",
            "type": "string"
          }
        },
        "title": "Connector Authoring Service Rollback Revision Request",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorAuthoringServiceRollbackRevisionRequest"
      },
      "c1.api.connector_authoring.v1.ConnectorAuthoringServiceRollbackRevisionResponse": {
        "description": "The ConnectorAuthoringServiceRollbackRevisionResponse message.",
        "properties": {
          "activationEpoch": {
            "description": "Committed activation epoch, or 0 when requested but not active yet.",
            "format": "uint64",
            "type": "string"
          },
          "deploymentEventId": {
            "description": "Non-empty while instance rotation is pending. Observe completion through GetInstallation.",
            "type": "string"
          },
          "revisionId": {
            "description": "The requested rollback target; published only after cutover commits.",
            "type": "string"
          }
        },
        "title": "Connector Authoring Service Rollback Revision Response",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorAuthoringServiceRollbackRevisionResponse"
      },
      "c1.api.conversations.v1.EnsureOnboardingSessionRequest": {
        "description": "Requests the active onboarding conversation for the caller's tenant.",
        "title": "Ensure Onboarding Session Request",
        "type": "object",
        "x-speakeasy-name-override": "EnsureOnboardingSessionRequest"
      },
      "c1.api.conversations.v1.EnsureOnboardingSessionResponse": {
        "description": "Returns the active onboarding conversation and whether this call created it.",
        "properties": {
          "conversationId": {
            "description": "The active onboarding conversation ID.",
            "type": "string"
          },
          "created": {
            "description": "True only when this call created and started the conversation.",
            "type": "boolean"
          }
        },
        "title": "Ensure Onboarding Session Response",
        "type": "object",
        "x-speakeasy-name-override": "EnsureOnboardingSessionResponse"
      },
      "c1.api.credential_inventory.v1.CredentialInventoryPolicy": {
        "description": "CredentialInventoryPolicy defines which credential types your users may\n enroll and the rules for each type.",
        "properties": {
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "delegated": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.credential_inventory.v1.DelegatedConstraints"
              },
              {
                "type": "null"
              }
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "displayName": {
            "description": "A human-readable name for the policy.",
            "type": "string"
          },
          "emailOtp": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.credential_inventory.v1.EmailOTPConstraints"
              },
              {
                "type": "null"
              }
            ]
          },
          "enabledTypes": {
            "description": "The credential types users are permitted to enroll under this policy.",
            "items": {
              "enum": [
                "CREDENTIAL_TYPE_UNSPECIFIED",
                "CREDENTIAL_TYPE_PASSKEY",
                "CREDENTIAL_TYPE_PASSWORD",
                "CREDENTIAL_TYPE_TOTP",
                "CREDENTIAL_TYPE_EMAIL_OTP",
                "CREDENTIAL_TYPE_RECOVERY_CODE",
                "CREDENTIAL_TYPE_DELEGATED_GOOGLE",
                "CREDENTIAL_TYPE_DELEGATED_MICROSOFT",
                "CREDENTIAL_TYPE_UPSTREAM_IDP"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "id": {
            "description": "Unique identifier for the policy.",
            "readOnly": true,
            "type": "string"
          },
          "isBuiltin": {
            "description": "True for built-in policies provided by ConductorOne. Built-in policies\n cannot be edited or deleted.",
            "readOnly": true,
            "type": "boolean"
          },
          "passkey": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.credential_inventory.v1.PasskeyConstraints"
              },
              {
                "type": "null"
              }
            ]
          },
          "password": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.credential_inventory.v1.PasswordConstraints"
              },
              {
                "type": "null"
              }
            ]
          },
          "priority": {
            "description": "When a user matches more than one policy, the policy with the highest\n priority applies.",
            "format": "int32",
            "type": "integer"
          },
          "totp": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.credential_inventory.v1.TOTPConstraints"
              },
              {
                "type": "null"
              }
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Credential Inventory Policy",
        "type": "object",
        "x-speakeasy-entity": "CredentialInventoryPolicy",
        "x-speakeasy-name-override": "CredentialInventoryPolicy"
      },
      "c1.api.credential_inventory.v1.CredentialInventoryPolicyRef": {
        "description": "CredentialInventoryPolicyRef is a lightweight reference to a policy by ID.",
        "properties": {
          "id": {
            "description": "The id field.",
            "type": "string"
          }
        },
        "title": "Credential Inventory Policy Ref",
        "type": "object",
        "x-speakeasy-name-override": "CredentialInventoryPolicyRef"
      },
      "c1.api.credential_inventory.v1.CredentialInventoryPolicyServiceCreateRequest": {
        "description": "The CredentialInventoryPolicyServiceCreateRequest message.",
        "properties": {
          "delegated": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.credential_inventory.v1.DelegatedConstraints"
              },
              {
                "type": "null"
              }
            ]
          },
          "displayName": {
            "description": "A human-readable name for the policy.",
            "type": "string"
          },
          "emailOtp": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.credential_inventory.v1.EmailOTPConstraints"
              },
              {
                "type": "null"
              }
            ]
          },
          "enabledTypes": {
            "description": "The credential types users are permitted to enroll under this policy.",
            "items": {
              "enum": [
                "CREDENTIAL_TYPE_UNSPECIFIED",
                "CREDENTIAL_TYPE_PASSKEY",
                "CREDENTIAL_TYPE_PASSWORD",
                "CREDENTIAL_TYPE_TOTP",
                "CREDENTIAL_TYPE_EMAIL_OTP",
                "CREDENTIAL_TYPE_RECOVERY_CODE",
                "CREDENTIAL_TYPE_DELEGATED_GOOGLE",
                "CREDENTIAL_TYPE_DELEGATED_MICROSOFT",
                "CREDENTIAL_TYPE_UPSTREAM_IDP"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "passkey": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.credential_inventory.v1.PasskeyConstraints"
              },
              {
                "type": "null"
              }
            ]
          },
          "password": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.credential_inventory.v1.PasswordConstraints"
              },
              {
                "type": "null"
              }
            ]
          },
          "priority": {
            "description": "When a user matches more than one policy, the policy with the highest\n priority applies.",
            "format": "int32",
            "type": "integer"
          },
          "totp": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.credential_inventory.v1.TOTPConstraints"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "displayName"
        ],
        "title": "Credential Inventory Policy Service Create Request",
        "type": "object",
        "x-speakeasy-entity": "CredentialInventoryPolicy",
        "x-speakeasy-name-override": "CredentialInventoryPolicyServiceCreateRequest"
      },
      "c1.api.credential_inventory.v1.CredentialInventoryPolicyServiceCreateResponse": {
        "description": "The CredentialInventoryPolicyServiceCreateResponse message.",
        "properties": {
          "credentialInventoryPolicy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.credential_inventory.v1.CredentialInventoryPolicy"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Credential Inventory Policy Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "CredentialInventoryPolicyServiceCreateResponse"
      },
      "c1.api.credential_inventory.v1.CredentialInventoryPolicyServiceDeleteRequestInput": {
        "description": "The CredentialInventoryPolicyServiceDeleteRequest message.",
        "title": "Credential Inventory Policy Service Delete Request",
        "type": "object",
        "x-speakeasy-entity": "CredentialInventoryPolicy",
        "x-speakeasy-name-override": "CredentialInventoryPolicyServiceDeleteRequest"
      },
      "c1.api.credential_inventory.v1.CredentialInventoryPolicyServiceDeleteResponse": {
        "description": "The CredentialInventoryPolicyServiceDeleteResponse message.",
        "title": "Credential Inventory Policy Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "CredentialInventoryPolicyServiceDeleteResponse"
      },
      "c1.api.credential_inventory.v1.CredentialInventoryPolicyServiceGetResponse": {
        "description": "The CredentialInventoryPolicyServiceGetResponse message.",
        "properties": {
          "credentialInventoryPolicy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.credential_inventory.v1.CredentialInventoryPolicy"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Credential Inventory Policy Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "CredentialInventoryPolicyServiceGetResponse"
      },
      "c1.api.credential_inventory.v1.CredentialInventoryPolicyServiceListResponse": {
        "description": "The CredentialInventoryPolicyServiceListResponse message.",
        "properties": {
          "list": {
            "description": "The page of policies.",
            "items": {
              "$ref": "#/components/schemas/c1.api.credential_inventory.v1.CredentialInventoryPolicy"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "A token to fetch the next page, or empty if there are no more results.",
            "type": "string"
          }
        },
        "title": "Credential Inventory Policy Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "CredentialInventoryPolicyServiceListResponse"
      },
      "c1.api.credential_inventory.v1.CredentialInventoryPolicyServiceSearchRequest": {
        "description": "The CredentialInventoryPolicyServiceSearchRequest message.",
        "properties": {
          "pageSize": {
            "description": "The maximum number of results to return per page.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "A pagination token from a previous Search response.",
            "type": "string"
          },
          "query": {
            "description": "Free-text search over the policy name. Empty matches all policies.",
            "type": "string"
          },
          "refs": {
            "description": "Restrict results to these specific policies. Empty matches all policies.",
            "items": {
              "$ref": "#/components/schemas/c1.api.credential_inventory.v1.CredentialInventoryPolicyRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Credential Inventory Policy Service Search Request",
        "type": "object",
        "x-speakeasy-name-override": "CredentialInventoryPolicyServiceSearchRequest"
      },
      "c1.api.credential_inventory.v1.CredentialInventoryPolicyServiceSearchResponse": {
        "description": "The CredentialInventoryPolicyServiceSearchResponse message.",
        "properties": {
          "list": {
            "description": "The page of matching policies.",
            "items": {
              "$ref": "#/components/schemas/c1.api.credential_inventory.v1.CredentialInventoryPolicy"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "A token to fetch the next page, or empty if there are no more results.",
            "type": "string"
          }
        },
        "title": "Credential Inventory Policy Service Search Response",
        "type": "object",
        "x-speakeasy-name-override": "CredentialInventoryPolicyServiceSearchResponse"
      },
      "c1.api.credential_inventory.v1.CredentialInventoryPolicyServiceUpdateRequestInput": {
        "description": "The CredentialInventoryPolicyServiceUpdateRequest message.",
        "properties": {
          "credentialInventoryPolicy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.credential_inventory.v1.CredentialInventoryPolicy"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Credential Inventory Policy Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "CredentialInventoryPolicyServiceUpdateRequest"
      },
      "c1.api.credential_inventory.v1.CredentialInventoryPolicyServiceUpdateResponse": {
        "description": "The CredentialInventoryPolicyServiceUpdateResponse message.",
        "properties": {
          "credentialInventoryPolicy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.credential_inventory.v1.CredentialInventoryPolicy"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Credential Inventory Policy Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "CredentialInventoryPolicyServiceUpdateResponse"
      },
      "c1.api.credential_inventory.v1.DelegatedConstraints": {
        "description": "DelegatedConstraints controls which third-party sign-in providers are\n accepted as proof of email ownership, and how they are scoped.",
        "properties": {
          "googleEnabled": {
            "description": "Accept \"Sign in with Google\".",
            "type": "boolean"
          },
          "googleHostedDomains": {
            "description": "Restrict Google sign-in to these Google Workspace domains. Empty = any domain.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "microsoftEnabled": {
            "description": "Accept \"Sign in with Microsoft\".",
            "type": "boolean"
          },
          "microsoftTenantIds": {
            "description": "Restrict Microsoft sign-in to these Microsoft tenant IDs. Empty = any tenant.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Delegated Constraints",
        "type": "object",
        "x-speakeasy-name-override": "DelegatedConstraints"
      },
      "c1.api.credential_inventory.v1.EmailOTPConstraints": {
        "description": "EmailOTPConstraints configures one-time codes delivered by email.",
        "properties": {
          "codeLength": {
            "description": "Number of digits in each code.",
            "format": "int32",
            "type": "integer"
          },
          "maxAttempts": {
            "description": "Number of incorrect attempts allowed before the code is invalidated.",
            "format": "int32",
            "type": "integer"
          },
          "ttlSeconds": {
            "description": "How long a code remains valid, in seconds.",
            "format": "int32",
            "type": "integer"
          }
        },
        "title": "Email Otp Constraints",
        "type": "object",
        "x-speakeasy-name-override": "EmailOTPConstraints"
      },
      "c1.api.credential_inventory.v1.PasskeyConstraints": {
        "description": "PasskeyConstraints controls how users may enroll passkeys (FIDO2 / WebAuthn).",
        "properties": {
          "allowedAaguids": {
            "description": "Allowed authenticator models, by AAGUID. Leave empty to permit any\n authenticator.",
            "items": {
              "format": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "attestation": {
            "description": "How strictly the authenticator's origin must be attested.",
            "enum": [
              "ATTESTATION_REQUIREMENT_UNSPECIFIED",
              "ATTESTATION_REQUIREMENT_NONE",
              "ATTESTATION_REQUIREMENT_INDIRECT",
              "ATTESTATION_REQUIREMENT_DIRECT",
              "ATTESTATION_REQUIREMENT_ENTERPRISE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "requireUserVerification": {
            "description": "Require the authenticator to verify the user (PIN or biometric) at enrollment.",
            "type": "boolean"
          }
        },
        "title": "Passkey Constraints",
        "type": "object",
        "x-speakeasy-name-override": "PasskeyConstraints"
      },
      "c1.api.credential_inventory.v1.PasswordConstraints": {
        "description": "PasswordConstraints sets the complexity rules a user's password must satisfy.",
        "properties": {
          "checkBreached": {
            "description": "Reject passwords found in known-breach corpora.",
            "type": "boolean"
          },
          "historyDepth": {
            "description": "Number of previous passwords to remember and disallow reuse of.",
            "format": "int32",
            "type": "integer"
          },
          "minLength": {
            "description": "Minimum length, in characters.",
            "format": "int32",
            "type": "integer"
          },
          "requireMixedCase": {
            "description": "Require both uppercase and lowercase letters.",
            "type": "boolean"
          },
          "requireNumber": {
            "description": "Require at least one digit.",
            "type": "boolean"
          },
          "requireSymbol": {
            "description": "Require at least one symbol.",
            "type": "boolean"
          }
        },
        "title": "Password Constraints",
        "type": "object",
        "x-speakeasy-name-override": "PasswordConstraints"
      },
      "c1.api.credential_inventory.v1.RecoveryPolicy": {
        "description": "RecoveryPolicy defines how users recover access when they lose their\n credentials.",
        "properties": {
          "allowedRecoveryTypes": {
            "description": "The credential types a user may use to recover access under this policy.",
            "items": {
              "enum": [
                "CREDENTIAL_TYPE_UNSPECIFIED",
                "CREDENTIAL_TYPE_PASSKEY",
                "CREDENTIAL_TYPE_PASSWORD",
                "CREDENTIAL_TYPE_TOTP",
                "CREDENTIAL_TYPE_EMAIL_OTP",
                "CREDENTIAL_TYPE_RECOVERY_CODE",
                "CREDENTIAL_TYPE_DELEGATED_GOOGLE",
                "CREDENTIAL_TYPE_DELEGATED_MICROSOFT",
                "CREDENTIAL_TYPE_UPSTREAM_IDP"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "displayName": {
            "description": "A human-readable name for the policy.",
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for the policy.",
            "readOnly": true,
            "type": "string"
          },
          "isBuiltin": {
            "description": "True for built-in policies provided by ConductorOne. Built-in policies\n cannot be edited or deleted.",
            "readOnly": true,
            "type": "boolean"
          },
          "minRecoveryAuthLevel": {
            "description": "The minimum assurance level a recovery ceremony must reach for this policy.",
            "enum": [
              "AUTH_LEVEL_UNSPECIFIED",
              "AUTH_LEVEL_NONE",
              "AUTH_LEVEL_SINGLE_FACTOR",
              "AUTH_LEVEL_MULTI_FACTOR",
              "AUTH_LEVEL_PHR",
              "AUTH_LEVEL_PHRH"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "priority": {
            "description": "When a user matches more than one policy, the policy with the highest\n priority applies.",
            "format": "int32",
            "type": "integer"
          },
          "revokeOnRecovery": {
            "description": "When true, a successful recovery revokes the user's existing credentials\n and forces re-enrollment. When false, recovery adds to the existing set.",
            "type": "boolean"
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Recovery Policy",
        "type": "object",
        "x-speakeasy-entity": "RecoveryPolicy",
        "x-speakeasy-name-override": "RecoveryPolicy"
      },
      "c1.api.credential_inventory.v1.RecoveryPolicyRef": {
        "description": "RecoveryPolicyRef is a lightweight reference to a recovery policy by ID.",
        "properties": {
          "id": {
            "description": "The id field.",
            "type": "string"
          }
        },
        "title": "Recovery Policy Ref",
        "type": "object",
        "x-speakeasy-name-override": "RecoveryPolicyRef"
      },
      "c1.api.credential_inventory.v1.RecoveryPolicyServiceCreateRequest": {
        "description": "The RecoveryPolicyServiceCreateRequest message.",
        "properties": {
          "allowedRecoveryTypes": {
            "description": "The credential types a user may use to recover access.",
            "items": {
              "enum": [
                "CREDENTIAL_TYPE_UNSPECIFIED",
                "CREDENTIAL_TYPE_PASSKEY",
                "CREDENTIAL_TYPE_PASSWORD",
                "CREDENTIAL_TYPE_TOTP",
                "CREDENTIAL_TYPE_EMAIL_OTP",
                "CREDENTIAL_TYPE_RECOVERY_CODE",
                "CREDENTIAL_TYPE_DELEGATED_GOOGLE",
                "CREDENTIAL_TYPE_DELEGATED_MICROSOFT",
                "CREDENTIAL_TYPE_UPSTREAM_IDP"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "displayName": {
            "description": "A human-readable name for the policy.",
            "type": "string"
          },
          "minRecoveryAuthLevel": {
            "description": "The minimum assurance level a recovery ceremony must reach.",
            "enum": [
              "AUTH_LEVEL_UNSPECIFIED",
              "AUTH_LEVEL_NONE",
              "AUTH_LEVEL_SINGLE_FACTOR",
              "AUTH_LEVEL_MULTI_FACTOR",
              "AUTH_LEVEL_PHR",
              "AUTH_LEVEL_PHRH"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "priority": {
            "description": "When a user matches more than one policy, the policy with the highest\n priority applies.",
            "format": "int32",
            "type": "integer"
          },
          "revokeOnRecovery": {
            "description": "When true, a successful recovery revokes existing credentials and forces\n re-enrollment.",
            "type": "boolean"
          }
        },
        "required": [
          "displayName"
        ],
        "title": "Recovery Policy Service Create Request",
        "type": "object",
        "x-speakeasy-entity": "RecoveryPolicy",
        "x-speakeasy-name-override": "RecoveryPolicyServiceCreateRequest"
      },
      "c1.api.credential_inventory.v1.RecoveryPolicyServiceCreateResponse": {
        "description": "The RecoveryPolicyServiceCreateResponse message.",
        "properties": {
          "recoveryPolicy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.credential_inventory.v1.RecoveryPolicy"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Recovery Policy Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "RecoveryPolicyServiceCreateResponse"
      },
      "c1.api.credential_inventory.v1.RecoveryPolicyServiceDeleteRequestInput": {
        "description": "The RecoveryPolicyServiceDeleteRequest message.",
        "title": "Recovery Policy Service Delete Request",
        "type": "object",
        "x-speakeasy-entity": "RecoveryPolicy",
        "x-speakeasy-name-override": "RecoveryPolicyServiceDeleteRequest"
      },
      "c1.api.credential_inventory.v1.RecoveryPolicyServiceDeleteResponse": {
        "description": "The RecoveryPolicyServiceDeleteResponse message.",
        "title": "Recovery Policy Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "RecoveryPolicyServiceDeleteResponse"
      },
      "c1.api.credential_inventory.v1.RecoveryPolicyServiceGetResponse": {
        "description": "The RecoveryPolicyServiceGetResponse message.",
        "properties": {
          "recoveryPolicy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.credential_inventory.v1.RecoveryPolicy"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Recovery Policy Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "RecoveryPolicyServiceGetResponse"
      },
      "c1.api.credential_inventory.v1.RecoveryPolicyServiceListResponse": {
        "description": "The RecoveryPolicyServiceListResponse message.",
        "properties": {
          "list": {
            "description": "The page of policies.",
            "items": {
              "$ref": "#/components/schemas/c1.api.credential_inventory.v1.RecoveryPolicy"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "A token to fetch the next page, or empty if there are no more results.",
            "type": "string"
          }
        },
        "title": "Recovery Policy Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "RecoveryPolicyServiceListResponse"
      },
      "c1.api.credential_inventory.v1.RecoveryPolicyServiceSearchRequest": {
        "description": "The RecoveryPolicyServiceSearchRequest message.",
        "properties": {
          "pageSize": {
            "description": "The maximum number of results to return per page.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "A pagination token from a previous Search response.",
            "type": "string"
          },
          "query": {
            "description": "Free-text search over the policy name. Empty matches all policies.",
            "type": "string"
          },
          "refs": {
            "description": "Restrict results to these specific policies. Empty matches all policies.",
            "items": {
              "$ref": "#/components/schemas/c1.api.credential_inventory.v1.RecoveryPolicyRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Recovery Policy Service Search Request",
        "type": "object",
        "x-speakeasy-name-override": "RecoveryPolicyServiceSearchRequest"
      },
      "c1.api.credential_inventory.v1.RecoveryPolicyServiceSearchResponse": {
        "description": "The RecoveryPolicyServiceSearchResponse message.",
        "properties": {
          "list": {
            "description": "The page of matching policies.",
            "items": {
              "$ref": "#/components/schemas/c1.api.credential_inventory.v1.RecoveryPolicy"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "A token to fetch the next page, or empty if there are no more results.",
            "type": "string"
          }
        },
        "title": "Recovery Policy Service Search Response",
        "type": "object",
        "x-speakeasy-name-override": "RecoveryPolicyServiceSearchResponse"
      },
      "c1.api.credential_inventory.v1.RecoveryPolicyServiceUpdateRequestInput": {
        "description": "The RecoveryPolicyServiceUpdateRequest message.",
        "properties": {
          "recoveryPolicy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.credential_inventory.v1.RecoveryPolicy"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Recovery Policy Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "RecoveryPolicyServiceUpdateRequest"
      },
      "c1.api.credential_inventory.v1.RecoveryPolicyServiceUpdateResponse": {
        "description": "The RecoveryPolicyServiceUpdateResponse message.",
        "properties": {
          "recoveryPolicy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.credential_inventory.v1.RecoveryPolicy"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Recovery Policy Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "RecoveryPolicyServiceUpdateResponse"
      },
      "c1.api.credential_inventory.v1.TOTPConstraints": {
        "description": "TOTPConstraints configures authenticator-app one-time codes (RFC 6238).",
        "properties": {
          "codeLength": {
            "description": "Number of digits in each code.",
            "format": "int32",
            "type": "integer"
          },
          "periodSeconds": {
            "description": "How often a new code is generated, in seconds (typically 30 or 60).",
            "format": "int32",
            "type": "integer"
          },
          "skewTolerance": {
            "description": "How many adjacent time windows to accept, to tolerate clock drift.",
            "format": "int32",
            "type": "integer"
          }
        },
        "title": "Totp Constraints",
        "type": "object",
        "x-speakeasy-name-override": "TOTPConstraints"
      },
      "c1.api.cross_app_access.v1.XAAAccessProfile": {
        "description": "XAAAccessProfile is a requestable bundle of scopes for one resource server.",
        "properties": {
          "appEntitlementId": {
            "description": "The AppEntitlement created for this profile.",
            "type": "string"
          },
          "appId": {
            "description": "The application that owns the resource server.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "Description of what access this profile grants.",
            "type": "string"
          },
          "displayName": {
            "description": "Display name for the profile.",
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for this access profile.",
            "type": "string"
          },
          "scopeCount": {
            "description": "The number of scopes currently bound to this profile.",
            "format": "int32",
            "type": "integer"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "xaaResourceServerId": {
            "description": "The resource server this profile grants access to.",
            "type": "string"
          }
        },
        "title": "Xaa Access Profile",
        "type": "object",
        "x-speakeasy-name-override": "XAAAccessProfile"
      },
      "c1.api.cross_app_access.v1.XAAAccessProfileHistoryEntry": {
        "description": "XAAAccessProfileHistoryEntry is one version of an access profile and its\n history metadata.",
        "properties": {
          "metadata": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.history.v1.HistoryEntryMetadata"
              },
              {
                "type": "null"
              }
            ]
          },
          "snapshot": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAAccessProfile"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Xaa Access Profile History Entry",
        "type": "object",
        "x-speakeasy-name-override": "XAAAccessProfileHistoryEntry"
      },
      "c1.api.cross_app_access.v1.XAAAccessProfileRef": {
        "description": "XAAAccessProfileRef is a lightweight reference to an access profile, used for\n websocket notifications and search filter refs.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          }
        },
        "title": "Xaa Access Profile Ref",
        "type": "object",
        "x-speakeasy-name-override": "XAAAccessProfileRef"
      },
      "c1.api.cross_app_access.v1.XAAAccessProfileScopeBinding": {
        "description": "XAAAccessProfileScopeBinding is a binding between an access profile and a\n scope. Both ends belong to one resource server.",
        "properties": {
          "accessProfileId": {
            "description": "The access profile end of the binding.",
            "type": "string"
          },
          "appId": {
            "description": "The application that owns the resource server.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "xaaResourceServerId": {
            "description": "The resource server both ends belong to.",
            "type": "string"
          },
          "xaaScopeId": {
            "description": "The scope end of the binding.",
            "type": "string"
          }
        },
        "title": "Xaa Access Profile Scope Binding",
        "type": "object",
        "x-speakeasy-name-override": "XAAAccessProfileScopeBinding"
      },
      "c1.api.cross_app_access.v1.XAAAccessProfileScopeBindingRef": {
        "description": "XAAAccessProfileScopeBindingRef is a lightweight reference to a binding, used\n for websocket notifications and search filter refs.",
        "properties": {
          "accessProfileId": {
            "description": "The accessProfileId field.",
            "type": "string"
          },
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "xaaScopeId": {
            "description": "The xaaScopeId field.",
            "type": "string"
          }
        },
        "title": "Xaa Access Profile Scope Binding Ref",
        "type": "object",
        "x-speakeasy-name-override": "XAAAccessProfileScopeBindingRef"
      },
      "c1.api.cross_app_access.v1.XAAAccessProfileScopeBindingServiceCreateRequestInput": {
        "description": "XAAAccessProfileScopeBindingServiceCreateRequest binds scopes to a profile.",
        "properties": {
          "xaaScopeIds": {
            "description": "Scope IDs to bind to the access profile.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Xaa Access Profile Scope Binding Service Create Request",
        "type": "object",
        "x-speakeasy-name-override": "XAAAccessProfileScopeBindingServiceCreateRequest"
      },
      "c1.api.cross_app_access.v1.XAAAccessProfileScopeBindingServiceCreateResponse": {
        "description": "XAAAccessProfileScopeBindingServiceCreateResponse returns created bindings.",
        "properties": {
          "bindings": {
            "description": "The created scope bindings.",
            "items": {
              "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAAccessProfileScopeBinding"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Xaa Access Profile Scope Binding Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "XAAAccessProfileScopeBindingServiceCreateResponse"
      },
      "c1.api.cross_app_access.v1.XAAAccessProfileScopeBindingServiceDeleteRequestInput": {
        "description": "XAAAccessProfileScopeBindingServiceDeleteRequest unbinds scopes from a\n profile.",
        "properties": {
          "xaaScopeIds": {
            "description": "Scope IDs to unbind from the access profile.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Xaa Access Profile Scope Binding Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "XAAAccessProfileScopeBindingServiceDeleteRequest"
      },
      "c1.api.cross_app_access.v1.XAAAccessProfileScopeBindingServiceDeleteResponse": {
        "description": "XAAAccessProfileScopeBindingServiceDeleteResponse confirms deletion.",
        "title": "Xaa Access Profile Scope Binding Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "XAAAccessProfileScopeBindingServiceDeleteResponse"
      },
      "c1.api.cross_app_access.v1.XAAAccessProfileScopeBindingServiceListResponse": {
        "description": "XAAAccessProfileScopeBindingServiceListResponse returns scope bindings.",
        "properties": {
          "bindings": {
            "description": "The page of scope bindings.",
            "items": {
              "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAAccessProfileScopeBinding"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token for the next page, or empty if there are no more results.",
            "type": "string"
          }
        },
        "title": "Xaa Access Profile Scope Binding Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "XAAAccessProfileScopeBindingServiceListResponse"
      },
      "c1.api.cross_app_access.v1.XAAAccessProfileScopeBindingServiceSearchRequest": {
        "description": "XAAAccessProfileScopeBindingServiceSearchRequest searches scope bindings.",
        "properties": {
          "accessProfileIds": {
            "description": "Optional filter by access profiles. Empty matches any access profile.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appId": {
            "description": "The application that owns the resource server (required).",
            "type": "string"
          },
          "pageSize": {
            "description": "Page size (max 100).",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "Page token for pagination.",
            "type": "string"
          },
          "refs": {
            "description": "Optional: fetch a specific set of bindings by ref (used by websocket\n notify to re-fetch individual rows).",
            "items": {
              "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAAccessProfileScopeBindingRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "xaaScopeIds": {
            "description": "Optional filter by scopes (impact analysis: which profiles contain a\n scope). Empty matches any scope.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Xaa Access Profile Scope Binding Service Search Request",
        "type": "object",
        "x-speakeasy-name-override": "XAAAccessProfileScopeBindingServiceSearchRequest"
      },
      "c1.api.cross_app_access.v1.XAAAccessProfileScopeBindingServiceSearchResponse": {
        "description": "XAAAccessProfileScopeBindingServiceSearchResponse returns matching bindings.",
        "properties": {
          "list": {
            "description": "Matching scope bindings.",
            "items": {
              "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAAccessProfileScopeBinding"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token for the next page.",
            "type": "string"
          }
        },
        "title": "Xaa Access Profile Scope Binding Service Search Response",
        "type": "object",
        "x-speakeasy-name-override": "XAAAccessProfileScopeBindingServiceSearchResponse"
      },
      "c1.api.cross_app_access.v1.XAAAccessProfileServiceCreateRequestInput": {
        "description": "XAAAccessProfileServiceCreateRequest creates a new access profile.",
        "properties": {
          "description": {
            "description": "Description of what access this profile grants.",
            "type": "string"
          },
          "displayName": {
            "description": "Display name for the profile.",
            "type": "string"
          },
          "xaaResourceServerId": {
            "description": "The resource server this profile grants access to.",
            "type": "string"
          }
        },
        "title": "Xaa Access Profile Service Create Request",
        "type": "object",
        "x-speakeasy-name-override": "XAAAccessProfileServiceCreateRequest"
      },
      "c1.api.cross_app_access.v1.XAAAccessProfileServiceCreateResponse": {
        "description": "XAAAccessProfileServiceCreateResponse returns the created access profile.",
        "properties": {
          "accessProfile": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAAccessProfile"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Xaa Access Profile Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "XAAAccessProfileServiceCreateResponse"
      },
      "c1.api.cross_app_access.v1.XAAAccessProfileServiceDeleteRequestInput": {
        "description": "XAAAccessProfileServiceDeleteRequest deletes an access profile (soft delete).",
        "title": "Xaa Access Profile Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "XAAAccessProfileServiceDeleteRequest"
      },
      "c1.api.cross_app_access.v1.XAAAccessProfileServiceDeleteResponse": {
        "description": "XAAAccessProfileServiceDeleteResponse confirms deletion.",
        "title": "Xaa Access Profile Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "XAAAccessProfileServiceDeleteResponse"
      },
      "c1.api.cross_app_access.v1.XAAAccessProfileServiceGetByAppEntitlementIdResponse": {
        "description": "XAAAccessProfileServiceGetByAppEntitlementIdResponse returns the matched\n profile.",
        "properties": {
          "accessProfile": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAAccessProfile"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Xaa Access Profile Service Get By App Entitlement Id Response",
        "type": "object",
        "x-speakeasy-name-override": "XAAAccessProfileServiceGetByAppEntitlementIdResponse"
      },
      "c1.api.cross_app_access.v1.XAAAccessProfileServiceGetResponse": {
        "description": "XAAAccessProfileServiceGetResponse returns a single access profile.",
        "properties": {
          "accessProfile": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAAccessProfile"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Xaa Access Profile Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "XAAAccessProfileServiceGetResponse"
      },
      "c1.api.cross_app_access.v1.XAAAccessProfileServiceListHistoryResponse": {
        "description": "XAAAccessProfileServiceListHistoryResponse returns access profile history\n entries.",
        "properties": {
          "list": {
            "description": "The page of history entries, newest first.",
            "items": {
              "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAAccessProfileHistoryEntry"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Pagination token for the next page, or empty if there are no more results.",
            "type": "string"
          }
        },
        "title": "Xaa Access Profile Service List History Response",
        "type": "object",
        "x-speakeasy-name-override": "XAAAccessProfileServiceListHistoryResponse"
      },
      "c1.api.cross_app_access.v1.XAAAccessProfileServiceListResponse": {
        "description": "XAAAccessProfileServiceListResponse returns a page of access profiles.",
        "properties": {
          "accessProfiles": {
            "description": "The page of access profiles.",
            "items": {
              "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAAccessProfile"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token for the next page, or empty if there are no more results.",
            "type": "string"
          }
        },
        "title": "Xaa Access Profile Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "XAAAccessProfileServiceListResponse"
      },
      "c1.api.cross_app_access.v1.XAAAccessProfileServiceSearchRequest": {
        "description": "XAAAccessProfileServiceSearchRequest searches access profiles with filters.",
        "properties": {
          "appIds": {
            "description": "Optional filter by applications. Empty matches any application.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pageSize": {
            "description": "Page size (max 100).",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "Page token for pagination.",
            "type": "string"
          },
          "query": {
            "description": "Optional text query matched against display_name.",
            "type": "string"
          },
          "refs": {
            "description": "Optional: fetch a specific set of access profiles by ref (used by\n websocket notify to re-fetch individual rows).",
            "items": {
              "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAAccessProfileRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "xaaResourceServerIds": {
            "description": "Optional filter by resource servers. Empty matches any resource server.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Xaa Access Profile Service Search Request",
        "type": "object",
        "x-speakeasy-name-override": "XAAAccessProfileServiceSearchRequest"
      },
      "c1.api.cross_app_access.v1.XAAAccessProfileServiceSearchResponse": {
        "description": "XAAAccessProfileServiceSearchResponse returns matching access profiles.",
        "properties": {
          "list": {
            "description": "Matching access profiles.",
            "items": {
              "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAAccessProfile"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token for the next page.",
            "type": "string"
          }
        },
        "title": "Xaa Access Profile Service Search Response",
        "type": "object",
        "x-speakeasy-name-override": "XAAAccessProfileServiceSearchResponse"
      },
      "c1.api.cross_app_access.v1.XAAAccessProfileServiceUpdateRequestInput": {
        "description": "XAAAccessProfileServiceUpdateRequest updates an existing access profile.",
        "properties": {
          "accessProfile": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAAccessProfile"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Xaa Access Profile Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "XAAAccessProfileServiceUpdateRequest"
      },
      "c1.api.cross_app_access.v1.XAAAccessProfileServiceUpdateResponse": {
        "description": "XAAAccessProfileServiceUpdateResponse returns the updated access profile.",
        "properties": {
          "accessProfile": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAAccessProfile"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Xaa Access Profile Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "XAAAccessProfileServiceUpdateResponse"
      },
      "c1.api.cross_app_access.v1.XAAClientAudienceMapping": {
        "description": "XAAClientAudienceMapping maps a client to its identifier at one resource\n server. Never stores credential material.",
        "properties": {
          "audienceClientId": {
            "description": "The client's identifier at the resource authorization server. Stamped\n verbatim into the grant's client_id claim.",
            "type": "string"
          },
          "clientKey": {
            "description": "Stable client registration key. One of: a DCR client_id form\n (dcr://\u003cclient_id\u003e), a CIMD client_id URL, a native C1 form\n (c1://\u003cservice_principal_id\u003e), or a raw client_id.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "disabled": {
            "description": "When true, exchange requests from this client for this resource server are\n rejected without removing the mapping (a kill switch).",
            "type": "boolean"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "xaaResourceServerId": {
            "description": "The resource server this mapping applies to.",
            "type": "string"
          }
        },
        "title": "Xaa Client Audience Mapping",
        "type": "object",
        "x-speakeasy-name-override": "XAAClientAudienceMapping"
      },
      "c1.api.cross_app_access.v1.XAAClientAudienceMappingHistoryEntry": {
        "description": "XAAClientAudienceMappingHistoryEntry is one version of a client audience\n mapping and its history metadata.",
        "properties": {
          "metadata": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.history.v1.HistoryEntryMetadata"
              },
              {
                "type": "null"
              }
            ]
          },
          "snapshot": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAClientAudienceMapping"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Xaa Client Audience Mapping History Entry",
        "type": "object",
        "x-speakeasy-name-override": "XAAClientAudienceMappingHistoryEntry"
      },
      "c1.api.cross_app_access.v1.XAAClientAudienceMappingRef": {
        "description": "XAAClientAudienceMappingRef is a lightweight reference to a mapping, used for\n websocket notifications and search filter refs.",
        "properties": {
          "clientKey": {
            "description": "The clientKey field.",
            "type": "string"
          },
          "xaaResourceServerId": {
            "description": "The xaaResourceServerId field.",
            "type": "string"
          }
        },
        "title": "Xaa Client Audience Mapping Ref",
        "type": "object",
        "x-speakeasy-name-override": "XAAClientAudienceMappingRef"
      },
      "c1.api.cross_app_access.v1.XAAClientAudienceMappingServiceCreateRequestInput": {
        "description": "XAAClientAudienceMappingServiceCreateRequest creates a new mapping.",
        "properties": {
          "audienceClientId": {
            "description": "The client's identifier at the resource authorization server.",
            "type": "string"
          },
          "clientKey": {
            "description": "Stable client registration key.",
            "type": "string"
          },
          "disabled": {
            "description": "When true, the mapping is created but exchange requests are rejected.",
            "type": "boolean"
          }
        },
        "title": "Xaa Client Audience Mapping Service Create Request",
        "type": "object",
        "x-speakeasy-name-override": "XAAClientAudienceMappingServiceCreateRequest"
      },
      "c1.api.cross_app_access.v1.XAAClientAudienceMappingServiceCreateResponse": {
        "description": "XAAClientAudienceMappingServiceCreateResponse returns the created mapping.",
        "properties": {
          "clientAudienceMapping": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAClientAudienceMapping"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Xaa Client Audience Mapping Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "XAAClientAudienceMappingServiceCreateResponse"
      },
      "c1.api.cross_app_access.v1.XAAClientAudienceMappingServiceDeleteRequestInput": {
        "description": "XAAClientAudienceMappingServiceDeleteRequest deletes a mapping (soft delete).",
        "properties": {
          "clientKey": {
            "description": "The client key identifying the mapping.",
            "type": "string"
          }
        },
        "title": "Xaa Client Audience Mapping Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "XAAClientAudienceMappingServiceDeleteRequest"
      },
      "c1.api.cross_app_access.v1.XAAClientAudienceMappingServiceDeleteResponse": {
        "description": "XAAClientAudienceMappingServiceDeleteResponse confirms deletion.",
        "title": "Xaa Client Audience Mapping Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "XAAClientAudienceMappingServiceDeleteResponse"
      },
      "c1.api.cross_app_access.v1.XAAClientAudienceMappingServiceGetResponse": {
        "description": "XAAClientAudienceMappingServiceGetResponse returns a single mapping.",
        "properties": {
          "clientAudienceMapping": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAClientAudienceMapping"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Xaa Client Audience Mapping Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "XAAClientAudienceMappingServiceGetResponse"
      },
      "c1.api.cross_app_access.v1.XAAClientAudienceMappingServiceListHistoryResponse": {
        "description": "XAAClientAudienceMappingServiceListHistoryResponse returns client audience\n mapping history entries.",
        "properties": {
          "list": {
            "description": "The page of history entries, newest first.",
            "items": {
              "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAClientAudienceMappingHistoryEntry"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Pagination token for the next page, or empty if there are no more results.",
            "type": "string"
          }
        },
        "title": "Xaa Client Audience Mapping Service List History Response",
        "type": "object",
        "x-speakeasy-name-override": "XAAClientAudienceMappingServiceListHistoryResponse"
      },
      "c1.api.cross_app_access.v1.XAAClientAudienceMappingServiceListResponse": {
        "description": "XAAClientAudienceMappingServiceListResponse returns a page of mappings.",
        "properties": {
          "clientAudienceMappings": {
            "description": "The page of mappings.",
            "items": {
              "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAClientAudienceMapping"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token for the next page, or empty if there are no more results.",
            "type": "string"
          }
        },
        "title": "Xaa Client Audience Mapping Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "XAAClientAudienceMappingServiceListResponse"
      },
      "c1.api.cross_app_access.v1.XAAClientAudienceMappingServiceSearchRequest": {
        "description": "XAAClientAudienceMappingServiceSearchRequest searches mappings with filters.",
        "properties": {
          "disabled": {
            "description": "Optional filter by disabled state.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "pageSize": {
            "description": "Page size (max 100).",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "Page token for pagination.",
            "type": "string"
          },
          "query": {
            "description": "Optional text query matched against client_key and audience_client_id.",
            "type": "string"
          },
          "refs": {
            "description": "Optional: fetch a specific set of mappings by ref (used by websocket\n notify to re-fetch individual rows).",
            "items": {
              "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAClientAudienceMappingRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "xaaResourceServerIds": {
            "description": "Optional filter by resource servers. Empty matches any resource server.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Xaa Client Audience Mapping Service Search Request",
        "type": "object",
        "x-speakeasy-name-override": "XAAClientAudienceMappingServiceSearchRequest"
      },
      "c1.api.cross_app_access.v1.XAAClientAudienceMappingServiceSearchResponse": {
        "description": "XAAClientAudienceMappingServiceSearchResponse returns matching mappings.",
        "properties": {
          "list": {
            "description": "Matching mappings.",
            "items": {
              "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAClientAudienceMapping"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token for the next page.",
            "type": "string"
          }
        },
        "title": "Xaa Client Audience Mapping Service Search Response",
        "type": "object",
        "x-speakeasy-name-override": "XAAClientAudienceMappingServiceSearchResponse"
      },
      "c1.api.cross_app_access.v1.XAAClientAudienceMappingServiceUpdateRequestInput": {
        "description": "XAAClientAudienceMappingServiceUpdateRequest updates an existing mapping.",
        "properties": {
          "clientAudienceMapping": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAClientAudienceMapping"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Xaa Client Audience Mapping Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "XAAClientAudienceMappingServiceUpdateRequest"
      },
      "c1.api.cross_app_access.v1.XAAClientAudienceMappingServiceUpdateResponse": {
        "description": "XAAClientAudienceMappingServiceUpdateResponse returns the updated mapping.",
        "properties": {
          "clientAudienceMapping": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAClientAudienceMapping"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Xaa Client Audience Mapping Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "XAAClientAudienceMappingServiceUpdateResponse"
      },
      "c1.api.cross_app_access.v1.XAAModifyClaimsHook": {
        "description": "XAAModifyClaimsHook registers a tenant Function invoked just before a grant\n is signed. The function may deny issuance or narrow the outgoing claims. It\n always runs blocking and fails closed: any error, timeout, or invalid result\n denies the grant.",
        "properties": {
          "commitId": {
            "description": "Pin to a specific commit of the function. Empty uses the function's\n published commit, resolved when the resource server is saved.",
            "type": "string"
          },
          "disabled": {
            "description": "When true, the hook is configured but not invoked.",
            "type": "boolean"
          },
          "functionId": {
            "description": "The Function to invoke.",
            "type": "string"
          }
        },
        "title": "Xaa Modify Claims Hook",
        "type": "object",
        "x-speakeasy-name-override": "XAAModifyClaimsHook"
      },
      "c1.api.cross_app_access.v1.XAAResourceServer": {
        "description": "XAAResourceServer is a third-party authorization server registered as a\n permitted cross-app-access audience for one application.",
        "properties": {
          "appId": {
            "description": "The application this resource server fronts.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "Description of the resource server.",
            "type": "string"
          },
          "disabled": {
            "description": "When true, exchange requests for this resource server are rejected without\n removing the registration (a kill switch).",
            "type": "boolean"
          },
          "displayName": {
            "description": "Display name for the resource server.",
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for this resource server.",
            "type": "string"
          },
          "maxGrantLifetime": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "modifyClaimsHook": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAModifyClaimsHook"
              },
              {
                "type": "null"
              }
            ]
          },
          "normalizedAudience": {
            "description": "The resource authorization server's issuer identifier (RFC 8414). Becomes\n the audience of every grant minted for this server. Stored normalized:\n lowercase scheme and host, no trailing slash, https only. Immutable after\n creation. Must not equal your own tenant's issuer.",
            "type": "string"
          },
          "requireProofOfPossession": {
            "description": "When true, mint proof-of-possession-bound grants for clients presenting a\n DPoP proof.",
            "type": "boolean"
          },
          "resourceUris": {
            "description": "The resource identifiers this server governs (RFC 8707). An allowlist for\n the token-exchange resource parameter; empty rejects any request that\n carries a resource parameter.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "sectorId": {
            "description": "Optional pairwise sector override. Empty means the resource server's\n audience is its own sector. Set to the well-known global sentinel sector to\n opt into a correlatable shared `sub`, or to a shared value to share one\n pairwise `sub` across a trust group of audiences. Immutable once set.",
            "type": "string"
          },
          "signingAlgorithm": {
            "description": "JWS algorithm for grants minted for this server. UNSPECIFIED uses the\n tenant default. Minting fails if no active signing key exists for the\n resolved algorithm.",
            "enum": [
              "XAA_SIGNING_ALGORITHM_UNSPECIFIED",
              "XAA_SIGNING_ALGORITHM_EDDSA",
              "XAA_SIGNING_ALGORITHM_RS256",
              "XAA_SIGNING_ALGORITHM_ES256"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Xaa Resource Server",
        "type": "object",
        "x-speakeasy-name-override": "XAAResourceServer"
      },
      "c1.api.cross_app_access.v1.XAAResourceServerHistoryEntry": {
        "description": "XAAResourceServerHistoryEntry is one version of a resource server and its\n history metadata.",
        "properties": {
          "metadata": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.history.v1.HistoryEntryMetadata"
              },
              {
                "type": "null"
              }
            ]
          },
          "snapshot": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAResourceServer"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Xaa Resource Server History Entry",
        "type": "object",
        "x-speakeasy-name-override": "XAAResourceServerHistoryEntry"
      },
      "c1.api.cross_app_access.v1.XAAResourceServerRef": {
        "description": "XAAResourceServerRef is a lightweight reference to a resource server, used\n for websocket notifications and search filter refs.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          }
        },
        "title": "Xaa Resource Server Ref",
        "type": "object",
        "x-speakeasy-name-override": "XAAResourceServerRef"
      },
      "c1.api.cross_app_access.v1.XAAResourceServerServiceCreateRequestInput": {
        "description": "XAAResourceServerServiceCreateRequest registers a new resource server.",
        "properties": {
          "description": {
            "description": "Description of the resource server.",
            "type": "string"
          },
          "disabled": {
            "description": "When true, the resource server is registered but exchange requests are\n rejected.",
            "type": "boolean"
          },
          "displayName": {
            "description": "Display name for the resource server.",
            "type": "string"
          },
          "maxGrantLifetime": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "modifyClaimsHook": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAModifyClaimsHook"
              },
              {
                "type": "null"
              }
            ]
          },
          "normalizedAudience": {
            "description": "The resource authorization server's issuer identifier. Must not equal your\n own tenant's issuer. Normalized and immutable after creation.",
            "type": "string"
          },
          "requireProofOfPossession": {
            "description": "When true, mint proof-of-possession-bound grants.",
            "type": "boolean"
          },
          "resourceUris": {
            "description": "Resource identifiers this server governs (RFC 8707).",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "signingAlgorithm": {
            "description": "JWS algorithm for grants minted for this server. UNSPECIFIED uses the\n tenant default.",
            "enum": [
              "XAA_SIGNING_ALGORITHM_UNSPECIFIED",
              "XAA_SIGNING_ALGORITHM_EDDSA",
              "XAA_SIGNING_ALGORITHM_RS256",
              "XAA_SIGNING_ALGORITHM_ES256"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Xaa Resource Server Service Create Request",
        "type": "object",
        "x-speakeasy-name-override": "XAAResourceServerServiceCreateRequest"
      },
      "c1.api.cross_app_access.v1.XAAResourceServerServiceCreateResponse": {
        "description": "XAAResourceServerServiceCreateResponse returns the registered resource server.",
        "properties": {
          "resourceServer": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAResourceServer"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Xaa Resource Server Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "XAAResourceServerServiceCreateResponse"
      },
      "c1.api.cross_app_access.v1.XAAResourceServerServiceDeleteRequestInput": {
        "description": "XAAResourceServerServiceDeleteRequest deletes a resource server (soft delete).",
        "title": "Xaa Resource Server Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "XAAResourceServerServiceDeleteRequest"
      },
      "c1.api.cross_app_access.v1.XAAResourceServerServiceDeleteResponse": {
        "description": "XAAResourceServerServiceDeleteResponse confirms deletion.",
        "title": "Xaa Resource Server Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "XAAResourceServerServiceDeleteResponse"
      },
      "c1.api.cross_app_access.v1.XAAResourceServerServiceGetResponse": {
        "description": "XAAResourceServerServiceGetResponse returns a single resource server.",
        "properties": {
          "resourceServer": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAResourceServer"
              },
              {
                "type": "null"
              }
            ]
          },
          "scopeDiscoveryStatus": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAScopeDiscoveryStatus"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Xaa Resource Server Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "XAAResourceServerServiceGetResponse"
      },
      "c1.api.cross_app_access.v1.XAAResourceServerServiceListHistoryResponse": {
        "description": "XAAResourceServerServiceListHistoryResponse returns resource server history\n entries.",
        "properties": {
          "list": {
            "description": "The page of history entries, newest first.",
            "items": {
              "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAResourceServerHistoryEntry"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Pagination token for the next page, or empty if there are no more results.",
            "type": "string"
          }
        },
        "title": "Xaa Resource Server Service List History Response",
        "type": "object",
        "x-speakeasy-name-override": "XAAResourceServerServiceListHistoryResponse"
      },
      "c1.api.cross_app_access.v1.XAAResourceServerServiceListResponse": {
        "description": "XAAResourceServerServiceListResponse returns a page of resource servers.",
        "properties": {
          "nextPageToken": {
            "description": "Token for the next page, or empty if there are no more results.",
            "type": "string"
          },
          "resourceServers": {
            "description": "The page of resource servers.",
            "items": {
              "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAResourceServer"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Xaa Resource Server Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "XAAResourceServerServiceListResponse"
      },
      "c1.api.cross_app_access.v1.XAAResourceServerServiceResyncScopesRequestInput": {
        "description": "The XAAResourceServerServiceResyncScopesRequest message.",
        "title": "Xaa Resource Server Service Resync Scopes Request",
        "type": "object",
        "x-speakeasy-name-override": "XAAResourceServerServiceResyncScopesRequest"
      },
      "c1.api.cross_app_access.v1.XAAResourceServerServiceResyncScopesResponse": {
        "description": "The XAAResourceServerServiceResyncScopesResponse message.",
        "title": "Xaa Resource Server Service Resync Scopes Response",
        "type": "object",
        "x-speakeasy-name-override": "XAAResourceServerServiceResyncScopesResponse"
      },
      "c1.api.cross_app_access.v1.XAAResourceServerServiceSearchRequest": {
        "description": "XAAResourceServerServiceSearchRequest searches resource servers with filters.",
        "properties": {
          "appIds": {
            "description": "Optional filter by applications. Empty matches any application.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "disabled": {
            "description": "Optional filter by disabled state.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "pageSize": {
            "description": "Page size (max 100).",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "Page token for pagination.",
            "type": "string"
          },
          "query": {
            "description": "Optional text query matched against display_name and normalized_audience.",
            "type": "string"
          },
          "refs": {
            "description": "Optional: fetch a specific set of resource servers by ref (used by\n websocket notify to re-fetch individual rows).",
            "items": {
              "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAResourceServerRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "signingAlgorithmFilter": {
            "description": "Optional filter by signing algorithm. UNSPECIFIED means no filter.",
            "items": {
              "enum": [
                "XAA_SIGNING_ALGORITHM_UNSPECIFIED",
                "XAA_SIGNING_ALGORITHM_EDDSA",
                "XAA_SIGNING_ALGORITHM_RS256",
                "XAA_SIGNING_ALGORITHM_ES256"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Xaa Resource Server Service Search Request",
        "type": "object",
        "x-speakeasy-name-override": "XAAResourceServerServiceSearchRequest"
      },
      "c1.api.cross_app_access.v1.XAAResourceServerServiceSearchResponse": {
        "description": "XAAResourceServerServiceSearchResponse returns matching resource servers.",
        "properties": {
          "list": {
            "description": "Matching resource servers.",
            "items": {
              "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAResourceServer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token for the next page.",
            "type": "string"
          }
        },
        "title": "Xaa Resource Server Service Search Response",
        "type": "object",
        "x-speakeasy-name-override": "XAAResourceServerServiceSearchResponse"
      },
      "c1.api.cross_app_access.v1.XAAResourceServerServiceUpdateRequestInput": {
        "description": "XAAResourceServerServiceUpdateRequest updates an existing resource server.",
        "properties": {
          "resourceServer": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAResourceServer"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Xaa Resource Server Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "XAAResourceServerServiceUpdateRequest"
      },
      "c1.api.cross_app_access.v1.XAAResourceServerServiceUpdateResponse": {
        "description": "XAAResourceServerServiceUpdateResponse returns the updated resource server.",
        "properties": {
          "resourceServer": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAResourceServer"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Xaa Resource Server Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "XAAResourceServerServiceUpdateResponse"
      },
      "c1.api.cross_app_access.v1.XAAScope": {
        "description": "XAAScope is a single OAuth scope exposed by a resource server, elevated into\n a governable object bound to its own entitlement.",
        "properties": {
          "appEntitlementId": {
            "description": "The AppEntitlement created for this scope.",
            "type": "string"
          },
          "appId": {
            "description": "The application that owns the resource server.",
            "type": "string"
          },
          "classification": {
            "description": "Risk classification.",
            "enum": [
              "XAA_SCOPE_CLASSIFICATION_UNSPECIFIED",
              "XAA_SCOPE_CLASSIFICATION_READ",
              "XAA_SCOPE_CLASSIFICATION_WRITE",
              "XAA_SCOPE_CLASSIFICATION_DESTRUCTIVE",
              "XAA_SCOPE_CLASSIFICATION_SENSITIVE",
              "XAA_SCOPE_CLASSIFICATION_DANGEROUS"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "Description of what the scope grants.",
            "type": "string"
          },
          "displayName": {
            "description": "Display name for the scope.",
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for this scope.",
            "type": "string"
          },
          "lastDiscoveredAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "scopeValue": {
            "description": "The literal OAuth scope string minted into the grant. Immutable after\n creation (RFC 6749 charset, max 256 bytes).",
            "type": "string"
          },
          "source": {
            "description": "How C1 learned of the scope.",
            "enum": [
              "XAA_SCOPE_SOURCE_UNSPECIFIED",
              "XAA_SCOPE_SOURCE_ADMIN_DECLARED",
              "XAA_SCOPE_SOURCE_DISCOVERED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "state": {
            "description": "Approval/lifecycle state.",
            "enum": [
              "XAA_SCOPE_STATE_UNSPECIFIED",
              "XAA_SCOPE_STATE_PENDING_REVIEW",
              "XAA_SCOPE_STATE_ENABLED",
              "XAA_SCOPE_STATE_DISABLED",
              "XAA_SCOPE_STATE_REMOVED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "xaaResourceServerId": {
            "description": "The resource server this scope belongs to.",
            "type": "string"
          }
        },
        "title": "Xaa Scope",
        "type": "object",
        "x-speakeasy-name-override": "XAAScope"
      },
      "c1.api.cross_app_access.v1.XAAScopeDiscoveryFinding": {
        "description": "XAAScopeDiscoveryFinding is one per-URI or per-value observation from a\n scope discovery run.",
        "properties": {
          "code": {
            "description": "What was observed.",
            "enum": [
              "XAA_SCOPE_DISCOVERY_FINDING_CODE_UNSPECIFIED",
              "XAA_SCOPE_DISCOVERY_FINDING_CODE_OK",
              "XAA_SCOPE_DISCOVERY_FINDING_CODE_NOT_FOUND",
              "XAA_SCOPE_DISCOVERY_FINDING_CODE_INVALID",
              "XAA_SCOPE_DISCOVERY_FINDING_CODE_RESOURCE_MISMATCH",
              "XAA_SCOPE_DISCOVERY_FINDING_CODE_AUTHORIZATION_SERVER_MISMATCH",
              "XAA_SCOPE_DISCOVERY_FINDING_CODE_INVALID_SCOPE_VALUE",
              "XAA_SCOPE_DISCOVERY_FINDING_CODE_SCOPE_LIMIT_EXCEEDED",
              "XAA_SCOPE_DISCOVERY_FINDING_CODE_AS_FALLBACK_USED",
              "XAA_SCOPE_DISCOVERY_FINDING_CODE_FETCH_ERROR"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "message": {
            "description": "Human-readable detail.",
            "type": "string"
          },
          "resourceUri": {
            "description": "The resource URI the finding applies to. Empty for the authorization\n server fallback.",
            "type": "string"
          },
          "scopeValue": {
            "description": "The scope value the finding applies to, for per-value findings.",
            "type": "string"
          }
        },
        "title": "Xaa Scope Discovery Finding",
        "type": "object",
        "x-speakeasy-name-override": "XAAScopeDiscoveryFinding"
      },
      "c1.api.cross_app_access.v1.XAAScopeDiscoveryStatus": {
        "description": "XAAScopeDiscoveryStatus is the outcome of the latest scope discovery run\n for a resource server. Read-only.",
        "properties": {
          "completedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "findings": {
            "description": "Per-URI and per-value observations from the latest run.",
            "items": {
              "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAScopeDiscoveryFinding"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "importedScopeValues": {
            "description": "Scope values the latest run created.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "lastError": {
            "description": "Failure cause when state is FAILED.",
            "type": "string"
          },
          "startedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "state": {
            "description": "State of the latest run.",
            "enum": [
              "XAA_SCOPE_DISCOVERY_STATE_UNSPECIFIED",
              "XAA_SCOPE_DISCOVERY_STATE_RUNNING",
              "XAA_SCOPE_DISCOVERY_STATE_SUCCEEDED",
              "XAA_SCOPE_DISCOVERY_STATE_FAILED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "usedAsFallback": {
            "description": "True when scopes came from the authorization server's metadata.",
            "type": "boolean"
          }
        },
        "title": "Xaa Scope Discovery Status",
        "type": "object",
        "x-speakeasy-name-override": "XAAScopeDiscoveryStatus"
      },
      "c1.api.cross_app_access.v1.XAAScopeHistoryEntry": {
        "description": "XAAScopeHistoryEntry is one version of a scope and its history metadata.",
        "properties": {
          "metadata": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.history.v1.HistoryEntryMetadata"
              },
              {
                "type": "null"
              }
            ]
          },
          "snapshot": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAScope"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Xaa Scope History Entry",
        "type": "object",
        "x-speakeasy-name-override": "XAAScopeHistoryEntry"
      },
      "c1.api.cross_app_access.v1.XAAScopeRef": {
        "description": "XAAScopeRef is a lightweight reference to a scope, used for websocket\n notifications and search filter refs.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          }
        },
        "title": "Xaa Scope Ref",
        "type": "object",
        "x-speakeasy-name-override": "XAAScopeRef"
      },
      "c1.api.cross_app_access.v1.XAAScopeServiceCreateRequestInput": {
        "description": "XAAScopeServiceCreateRequest declares a new scope.",
        "properties": {
          "classification": {
            "description": "Risk classification.",
            "enum": [
              "XAA_SCOPE_CLASSIFICATION_UNSPECIFIED",
              "XAA_SCOPE_CLASSIFICATION_READ",
              "XAA_SCOPE_CLASSIFICATION_WRITE",
              "XAA_SCOPE_CLASSIFICATION_DESTRUCTIVE",
              "XAA_SCOPE_CLASSIFICATION_SENSITIVE",
              "XAA_SCOPE_CLASSIFICATION_DANGEROUS"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "description": {
            "description": "Description of what the scope grants.",
            "type": "string"
          },
          "displayName": {
            "description": "Display name for the scope.",
            "type": "string"
          },
          "scopeValue": {
            "description": "The literal OAuth scope string. Immutable after creation.",
            "type": "string"
          },
          "state": {
            "description": "Initial state: PENDING_REVIEW, ENABLED or DISABLED. UNSPECIFIED defaults to PENDING_REVIEW.",
            "enum": [
              "XAA_SCOPE_STATE_UNSPECIFIED",
              "XAA_SCOPE_STATE_PENDING_REVIEW",
              "XAA_SCOPE_STATE_ENABLED",
              "XAA_SCOPE_STATE_DISABLED",
              "XAA_SCOPE_STATE_REMOVED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "xaaResourceServerId": {
            "description": "The resource server this scope belongs to.",
            "type": "string"
          }
        },
        "title": "Xaa Scope Service Create Request",
        "type": "object",
        "x-speakeasy-name-override": "XAAScopeServiceCreateRequest"
      },
      "c1.api.cross_app_access.v1.XAAScopeServiceCreateResponse": {
        "description": "XAAScopeServiceCreateResponse returns the created scope.",
        "properties": {
          "scope": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAScope"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Xaa Scope Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "XAAScopeServiceCreateResponse"
      },
      "c1.api.cross_app_access.v1.XAAScopeServiceDeleteRequestInput": {
        "description": "XAAScopeServiceDeleteRequest deletes a scope (soft delete).",
        "title": "Xaa Scope Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "XAAScopeServiceDeleteRequest"
      },
      "c1.api.cross_app_access.v1.XAAScopeServiceDeleteResponse": {
        "description": "XAAScopeServiceDeleteResponse confirms deletion.",
        "title": "Xaa Scope Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "XAAScopeServiceDeleteResponse"
      },
      "c1.api.cross_app_access.v1.XAAScopeServiceGetResponse": {
        "description": "XAAScopeServiceGetResponse returns a single scope.",
        "properties": {
          "scope": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAScope"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Xaa Scope Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "XAAScopeServiceGetResponse"
      },
      "c1.api.cross_app_access.v1.XAAScopeServiceListHistoryResponse": {
        "description": "XAAScopeServiceListHistoryResponse returns scope history entries.",
        "properties": {
          "list": {
            "description": "The page of history entries, newest first.",
            "items": {
              "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAScopeHistoryEntry"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Pagination token for the next page, or empty if there are no more results.",
            "type": "string"
          }
        },
        "title": "Xaa Scope Service List History Response",
        "type": "object",
        "x-speakeasy-name-override": "XAAScopeServiceListHistoryResponse"
      },
      "c1.api.cross_app_access.v1.XAAScopeServiceListResponse": {
        "description": "XAAScopeServiceListResponse returns a page of scopes.",
        "properties": {
          "nextPageToken": {
            "description": "Token for the next page, or empty if there are no more results.",
            "type": "string"
          },
          "scopes": {
            "description": "The page of scopes.",
            "items": {
              "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAScope"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Xaa Scope Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "XAAScopeServiceListResponse"
      },
      "c1.api.cross_app_access.v1.XAAScopeServiceSearchRequest": {
        "description": "XAAScopeServiceSearchRequest searches scopes with filters.",
        "properties": {
          "appIds": {
            "description": "Optional filter by applications. Empty matches any application.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "classificationFilter": {
            "description": "Optional filter by classification. UNSPECIFIED means no filter.",
            "items": {
              "enum": [
                "XAA_SCOPE_CLASSIFICATION_UNSPECIFIED",
                "XAA_SCOPE_CLASSIFICATION_READ",
                "XAA_SCOPE_CLASSIFICATION_WRITE",
                "XAA_SCOPE_CLASSIFICATION_DESTRUCTIVE",
                "XAA_SCOPE_CLASSIFICATION_SENSITIVE",
                "XAA_SCOPE_CLASSIFICATION_DANGEROUS"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pageSize": {
            "description": "Page size (max 100).",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "Page token for pagination.",
            "type": "string"
          },
          "query": {
            "description": "Optional text query matched against scope_value and display_name.",
            "type": "string"
          },
          "refs": {
            "description": "Optional: fetch a specific set of scopes by ref (used by websocket notify\n to re-fetch individual rows).",
            "items": {
              "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAScopeRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "sourceFilter": {
            "description": "Optional filter by source. UNSPECIFIED means no filter.",
            "items": {
              "enum": [
                "XAA_SCOPE_SOURCE_UNSPECIFIED",
                "XAA_SCOPE_SOURCE_ADMIN_DECLARED",
                "XAA_SCOPE_SOURCE_DISCOVERED"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "stateFilter": {
            "description": "Optional filter by state. UNSPECIFIED means no filter.",
            "items": {
              "enum": [
                "XAA_SCOPE_STATE_UNSPECIFIED",
                "XAA_SCOPE_STATE_PENDING_REVIEW",
                "XAA_SCOPE_STATE_ENABLED",
                "XAA_SCOPE_STATE_DISABLED",
                "XAA_SCOPE_STATE_REMOVED"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "xaaResourceServerIds": {
            "description": "Optional filter by resource servers. Empty matches any resource server.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Xaa Scope Service Search Request",
        "type": "object",
        "x-speakeasy-name-override": "XAAScopeServiceSearchRequest"
      },
      "c1.api.cross_app_access.v1.XAAScopeServiceSearchResponse": {
        "description": "XAAScopeServiceSearchResponse returns matching scopes.",
        "properties": {
          "list": {
            "description": "Matching scopes.",
            "items": {
              "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAScope"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token for the next page.",
            "type": "string"
          }
        },
        "title": "Xaa Scope Service Search Response",
        "type": "object",
        "x-speakeasy-name-override": "XAAScopeServiceSearchResponse"
      },
      "c1.api.cross_app_access.v1.XAAScopeServiceUpdateRequestInput": {
        "description": "XAAScopeServiceUpdateRequest updates an existing scope.",
        "properties": {
          "scope": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Xaa Scope Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "XAAScopeServiceUpdateRequest"
      },
      "c1.api.cross_app_access.v1.XAAScopeServiceUpdateResponse": {
        "description": "XAAScopeServiceUpdateResponse returns the updated scope.",
        "properties": {
          "scope": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAScope"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Xaa Scope Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "XAAScopeServiceUpdateResponse"
      },
      "c1.api.cross_app_access.v1.XAASettings": {
        "description": "XAASettings is the per-tenant cross-app-access issuer configuration.",
        "properties": {
          "allowRefreshTokenSubjects": {
            "description": "When true, accept refresh tokens as the exchange subject. Must remain false\n until that path ships.",
            "type": "boolean"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "defaultGrantLifetime": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "defaultSigningAlgorithm": {
            "description": "Tenant-default signing algorithm. UNSPECIFIED resolves to ES256.",
            "enum": [
              "XAA_SIGNING_ALGORITHM_UNSPECIFIED",
              "XAA_SIGNING_ALGORITHM_EDDSA",
              "XAA_SIGNING_ALGORITHM_RS256",
              "XAA_SIGNING_ALGORITHM_ES256"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "enabled": {
            "description": "Master switch for the cross-app-access issuer and its published metadata.\n C1 also gates the feature behind an operator-controlled rollout flag; this\n is the tenant administrator's intent.",
            "type": "boolean"
          },
          "enabledSigningAlgorithms": {
            "description": "Algorithms this tenant maintains signing-key families for. EdDSA is always\n implicitly present.",
            "items": {
              "enum": [
                "XAA_SIGNING_ALGORITHM_UNSPECIFIED",
                "XAA_SIGNING_ALGORITHM_EDDSA",
                "XAA_SIGNING_ALGORITHM_RS256",
                "XAA_SIGNING_ALGORITHM_ES256"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "xaaIdTokenLifetime": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Xaa Settings",
        "type": "object",
        "x-speakeasy-name-override": "XAASettings"
      },
      "c1.api.cross_app_access.v1.XAASettingsHistoryEntry": {
        "description": "XAASettingsHistoryEntry is one version of the cross-app-access settings and\n its history metadata.",
        "properties": {
          "metadata": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.history.v1.HistoryEntryMetadata"
              },
              {
                "type": "null"
              }
            ]
          },
          "snapshot": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAASettings"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Xaa Settings History Entry",
        "type": "object",
        "x-speakeasy-name-override": "XAASettingsHistoryEntry"
      },
      "c1.api.cross_app_access.v1.XAASettingsServiceGetResponse": {
        "description": "XAASettingsServiceGetResponse returns the tenant's cross-app-access settings.",
        "properties": {
          "settings": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAASettings"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Xaa Settings Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "XAASettingsServiceGetResponse"
      },
      "c1.api.cross_app_access.v1.XAASettingsServiceListHistoryResponse": {
        "description": "XAASettingsServiceListHistoryResponse returns cross-app-access settings\n history entries.",
        "properties": {
          "list": {
            "description": "The page of history entries, newest first.",
            "items": {
              "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAASettingsHistoryEntry"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Pagination token for the next page, or empty if there are no more results.",
            "type": "string"
          }
        },
        "title": "Xaa Settings Service List History Response",
        "type": "object",
        "x-speakeasy-name-override": "XAASettingsServiceListHistoryResponse"
      },
      "c1.api.cross_app_access.v1.XAASettingsServiceUpdateRequest": {
        "description": "XAASettingsServiceUpdateRequest updates the tenant's cross-app-access\n settings.",
        "properties": {
          "settings": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAASettings"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Xaa Settings Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "XAASettingsServiceUpdateRequest"
      },
      "c1.api.cross_app_access.v1.XAASettingsServiceUpdateResponse": {
        "description": "XAASettingsServiceUpdateResponse returns the updated settings.",
        "properties": {
          "settings": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAASettings"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Xaa Settings Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "XAASettingsServiceUpdateResponse"
      },
      "c1.api.decoy.v1.Decoy": {
        "description": "Decoy is the read projection of a planted honey-credential. All\n fields except annotations are server-managed.",
        "properties": {
          "annotations": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Customer-defined grouping/filtering bag. PATCH semantics on Update:\n keys in the request overwrite, keys missing stay, keys set to empty\n string delete. Copied onto the Finding produced when a decoy fires,\n so routing rules can condition on the same keys.",
            "type": "object",
            "x-speakeasy-terraform-plan-modifier": {
              "imports": [
                "github.com/conductorone/terraform-provider-conductorone/internal/annotations"
              ],
              "schemaDefinition": "annotations.PlanModifier()"
            }
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "The description field.",
            "type": "string"
          },
          "disabled": {
            "description": "Admin-disabled.",
            "type": "boolean"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "id": {
            "description": "The id field.",
            "readOnly": true,
            "type": "string"
          },
          "kind": {
            "description": "The kind field.",
            "enum": [
              "DECOY_KIND_UNSPECIFIED",
              "DECOY_KIND_USER_CLIENT_CREDENTIAL",
              "DECOY_KIND_CONNECTOR_CLIENT",
              "DECOY_KIND_WORKLOAD_FEDERATION",
              "DECOY_KIND_ACCESS_TOKEN"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "lastUsedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "materialFingerprintSha256": {
            "description": "Hex-encoded SHA256 of the secret string vended at Create / Rotate.\n Stable for the decoy's current material; changes only on Rotate.\n Empty for WorkloadFederation decoys (no server-vended secret).",
            "readOnly": true,
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Decoy",
        "type": "object",
        "x-speakeasy-name-override": "Decoy"
      },
      "c1.api.decoy.v1.DecoyAccessTokenInput": {
        "description": "DecoyAccessTokenInput mints a session access-token decoy under an\n existing User.",
        "properties": {
          "expiresIn": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "subjectUserId": {
            "description": "Existing User the access token's subject claim references.",
            "type": "string"
          }
        },
        "title": "Decoy Access Token Input",
        "type": "object",
        "x-speakeasy-name-override": "DecoyAccessTokenInput"
      },
      "c1.api.decoy.v1.DecoyAccessTokenMaterial": {
        "description": "DecoyAccessTokenMaterial is returned for AccessToken decoys.",
        "properties": {
          "accessToken": {
            "description": "The accessToken field.",
            "type": "string"
          }
        },
        "title": "Decoy Access Token Material",
        "type": "object",
        "x-speakeasy-name-override": "DecoyAccessTokenMaterial"
      },
      "c1.api.decoy.v1.DecoyClientCredentialMaterial": {
        "description": "DecoyClientCredentialMaterial is returned for UserClientCredential and\n ConnectorClient decoys.",
        "properties": {
          "clientId": {
            "description": "The clientId field.",
            "type": "string"
          },
          "clientSecret": {
            "description": "The clientSecret field.",
            "type": "string"
          }
        },
        "title": "Decoy Client Credential Material",
        "type": "object",
        "x-speakeasy-name-override": "DecoyClientCredentialMaterial"
      },
      "c1.api.decoy.v1.DecoyConnectorClientInput": {
        "description": "DecoyConnectorClientInput plants a connector-shaped credential decoy.\n The server allocates placement under the tenant's ConductorOne app;\n the customer makes no app/connector choice.",
        "title": "Decoy Connector Client Input",
        "type": "object",
        "x-speakeasy-name-override": "DecoyConnectorClientInput"
      },
      "c1.api.decoy.v1.DecoySearchRequest": {
        "description": "The DecoySearchRequest message.",
        "properties": {
          "annotationKeys": {
            "description": "Filter to decoys that have at least one of these annotation keys\n set. Empty means no annotation filter. Per-key constraints match\n the c1api annotation-bag standard (min_len 1, max_len 128, same\n regex used by every annotation-bag-typed field across c1api).",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "hasBeenUsed": {
            "description": "Filter to decoys that have been used at least once. False / unset\n means no filter (show all). The \"never used\" case is not covered\n in this filter; add an explicit field if needed.",
            "type": "boolean"
          },
          "kinds": {
            "description": "Filter by kind (OR within the list). Empty means any kind.",
            "items": {
              "enum": [
                "DECOY_KIND_UNSPECIFIED",
                "DECOY_KIND_USER_CLIENT_CREDENTIAL",
                "DECOY_KIND_CONNECTOR_CLIENT",
                "DECOY_KIND_WORKLOAD_FEDERATION",
                "DECOY_KIND_ACCESS_TOKEN"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pageSize": {
            "description": "The pageSize field.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          },
          "query": {
            "description": "Free-text query against display_name and description. Empty means\n no text filter.",
            "type": "string"
          },
          "statuses": {
            "description": "Filter by status (OR within the list). Empty means any status.",
            "items": {
              "enum": [
                "DECOY_STATUS_FILTER_UNSPECIFIED",
                "DECOY_STATUS_FILTER_ACTIVE",
                "DECOY_STATUS_FILTER_DISABLED"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Decoy Search Request",
        "type": "object",
        "x-speakeasy-name-override": "DecoySearchRequest"
      },
      "c1.api.decoy.v1.DecoySearchResponse": {
        "description": "The DecoySearchResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.decoy.v1.Decoy"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Decoy Search Response",
        "type": "object",
        "x-speakeasy-name-override": "DecoySearchResponse"
      },
      "c1.api.decoy.v1.DecoyServiceCreateRequest": {
        "description": "The DecoyServiceCreateRequest message.\n\nThis message contains a oneof named create_input. Only a single field of the following list may be set at a time:\n  - userClientCredential\n  - connectorClient\n  - workloadFed\n  - accessToken\n",
        "properties": {
          "accessToken": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.decoy.v1.DecoyAccessTokenInput"
              },
              {
                "type": "null"
              }
            ]
          },
          "annotations": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "The annotations field.",
            "type": "object"
          },
          "connectorClient": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.decoy.v1.DecoyConnectorClientInput"
              },
              {
                "type": "null"
              }
            ]
          },
          "description": {
            "description": "The description field.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "userClientCredential": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.decoy.v1.DecoyUserClientCredentialInput"
              },
              {
                "type": "null"
              }
            ]
          },
          "workloadFed": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.decoy.v1.DecoyWorkloadFederationInput"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Decoy Service Create Request",
        "type": "object",
        "x-speakeasy-name-override": "DecoyServiceCreateRequest"
      },
      "c1.api.decoy.v1.DecoyServiceCreateResponse": {
        "description": "The DecoyServiceCreateResponse message.",
        "properties": {
          "decoy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.decoy.v1.Decoy"
              },
              {
                "type": "null"
              }
            ]
          },
          "material": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.decoy.v1.DecoyVendingMaterial"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Decoy Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "DecoyServiceCreateResponse"
      },
      "c1.api.decoy.v1.DecoyServiceDeleteRequestInput": {
        "description": "The DecoyServiceDeleteRequest message.",
        "title": "Decoy Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "DecoyServiceDeleteRequest"
      },
      "c1.api.decoy.v1.DecoyServiceDeleteResponse": {
        "description": "The DecoyServiceDeleteResponse message.",
        "title": "Decoy Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "DecoyServiceDeleteResponse"
      },
      "c1.api.decoy.v1.DecoyServiceGetResponse": {
        "description": "The DecoyServiceGetResponse message.",
        "properties": {
          "decoy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.decoy.v1.Decoy"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Decoy Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "DecoyServiceGetResponse"
      },
      "c1.api.decoy.v1.DecoyServiceListResponse": {
        "description": "The DecoyServiceListResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.decoy.v1.Decoy"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Decoy Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "DecoyServiceListResponse"
      },
      "c1.api.decoy.v1.DecoyServiceRotateRequestInput": {
        "description": "The DecoyServiceRotateRequest message.",
        "title": "Decoy Service Rotate Request",
        "type": "object",
        "x-speakeasy-name-override": "DecoyServiceRotateRequest"
      },
      "c1.api.decoy.v1.DecoyServiceRotateResponse": {
        "description": "The DecoyServiceRotateResponse message.",
        "properties": {
          "decoy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.decoy.v1.Decoy"
              },
              {
                "type": "null"
              }
            ]
          },
          "material": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.decoy.v1.DecoyVendingMaterial"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Decoy Service Rotate Response",
        "type": "object",
        "x-speakeasy-name-override": "DecoyServiceRotateResponse"
      },
      "c1.api.decoy.v1.DecoyServiceUpdateRequestInput": {
        "description": "The DecoyServiceUpdateRequest message.",
        "properties": {
          "decoy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.decoy.v1.Decoy"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Decoy Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "DecoyServiceUpdateRequest"
      },
      "c1.api.decoy.v1.DecoyServiceUpdateResponse": {
        "description": "The DecoyServiceUpdateResponse message.",
        "properties": {
          "decoy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.decoy.v1.Decoy"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Decoy Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "DecoyServiceUpdateResponse"
      },
      "c1.api.decoy.v1.DecoyUserClientCredentialInput": {
        "description": "DecoyUserClientCredentialInput plants a client-credential decoy\n under an existing User. The User must be typ=HUMAN or typ=SERVICE.",
        "properties": {
          "userId": {
            "description": "Existing User to plant the decoy credential under.",
            "type": "string"
          }
        },
        "title": "Decoy User Client Credential Input",
        "type": "object",
        "x-speakeasy-name-override": "DecoyUserClientCredentialInput"
      },
      "c1.api.decoy.v1.DecoyVendingMaterial": {
        "description": "DecoyVendingMaterial carries the freshly-vended secret material returned\n exactly once at Create or Rotate.\n\nThis message contains a oneof named material. Only a single field of the following list may be set at a time:\n  - clientCredential\n  - accessToken\n  - workloadFederation\n",
        "properties": {
          "accessToken": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.decoy.v1.DecoyAccessTokenMaterial"
              },
              {
                "type": "null"
              }
            ]
          },
          "clientCredential": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.decoy.v1.DecoyClientCredentialMaterial"
              },
              {
                "type": "null"
              }
            ]
          },
          "workloadFederation": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.decoy.v1.DecoyWorkloadFederationMaterial"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Decoy Vending Material",
        "type": "object",
        "x-speakeasy-name-override": "DecoyVendingMaterial"
      },
      "c1.api.decoy.v1.DecoyWorkloadFederationInput": {
        "description": "DecoyWorkloadFederationInput plants a workload-federation-trust decoy\n under an existing Provider. The Provider must already be registered\n so its JWKS is reachable for signature verification.",
        "properties": {
          "conditionExpression": {
            "description": "CEL boolean evaluated against the presented JWT's claims map. Same\n shape as the regular WorkloadFederationTrust condition expression.\n Example: `claims.sub.startsWith(\"repo:acme/fake-infra:\")`.",
            "type": "string"
          },
          "providerId": {
            "description": "Existing WorkloadFederationProvider to bind the decoy Trust under.",
            "type": "string"
          },
          "servicePrincipalUserId": {
            "description": "Existing SERVICE-typed User the Trust would act-as on match.",
            "type": "string"
          }
        },
        "title": "Decoy Workload Federation Input",
        "type": "object",
        "x-speakeasy-name-override": "DecoyWorkloadFederationInput"
      },
      "c1.api.decoy.v1.DecoyWorkloadFederationMaterial": {
        "description": "DecoyWorkloadFederationMaterial is returned for WorkloadFederation\n decoys. No vended secret; the operator binds the trust on the IdP side.",
        "properties": {
          "workloadFederationTrustId": {
            "description": "The workloadFederationTrustId field.",
            "type": "string"
          }
        },
        "title": "Decoy Workload Federation Material",
        "type": "object",
        "x-speakeasy-name-override": "DecoyWorkloadFederationMaterial"
      },
      "c1.api.directory.v1.Directory": {
        "description": "This object indicates that an app is also a directory.\n\nThis message contains a oneof named account_filter. Only a single field of the following list may be set at a time:\n  - all\n  - celExpression\n",
        "properties": {
          "all": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.directory.v1.DirectoryAccountFilterAll"
              },
              {
                "type": "null"
              }
            ]
          },
          "appId": {
            "description": "The ID of the app associated with the directory.",
            "readOnly": true,
            "type": "string"
          },
          "celExpression": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.directory.v1.DirectoryAccountFilterCel"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "mergeConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.directory.v1.DirectoryMergeConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Directory",
        "type": "object",
        "x-speakeasy-name-override": "Directory"
      },
      "c1.api.directory.v1.DirectoryAccountFilterAll": {
        "description": "The DirectoryAccountFilterAll message.",
        "title": "Directory Account Filter All",
        "type": "object",
        "x-speakeasy-name-override": "DirectoryAccountFilterAll"
      },
      "c1.api.directory.v1.DirectoryAccountFilterCel": {
        "description": "The DirectoryAccountFilterCel message.",
        "properties": {
          "expression": {
            "description": "The expression field.",
            "type": "string"
          }
        },
        "title": "Directory Account Filter Cel",
        "type": "object",
        "x-speakeasy-name-override": "DirectoryAccountFilterCel"
      },
      "c1.api.directory.v1.DirectoryExpandMask": {
        "description": "The fields to be included in the directory response.",
        "properties": {
          "paths": {
            "description": "An array of fields to be included in the directory response.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Directory Expand Mask",
        "type": "object",
        "x-speakeasy-name-override": "DirectoryExpandMask"
      },
      "c1.api.directory.v1.DirectoryMergeConfig": {
        "description": "DirectoryMergeConfig configures how AppUsers from this directory are matched to C1 Users.",
        "properties": {
          "matchCases": {
            "description": "Ordered list of match cases evaluated in sequence. First match wins.",
            "items": {
              "$ref": "#/components/schemas/c1.api.directory.v1.DirectoryMergeMatchCase"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Directory Merge Config",
        "type": "object",
        "x-speakeasy-name-override": "DirectoryMergeConfig"
      },
      "c1.api.directory.v1.DirectoryMergeMatchCase": {
        "description": "DirectoryMergeMatchCase defines a pair of CEL key extractors for matching.",
        "properties": {
          "appUserKeyCel": {
            "description": "CEL expression evaluated against an AppUser to produce match key(s).",
            "type": "string"
          },
          "userKeyCel": {
            "description": "CEL expression evaluated against a User to produce match key(s).",
            "type": "string"
          }
        },
        "title": "Directory Merge Match Case",
        "type": "object",
        "x-speakeasy-name-override": "DirectoryMergeMatchCase"
      },
      "c1.api.directory.v1.DirectoryServiceCreateRequest": {
        "description": "Uplevel an app into a full directory.\n\nThis message contains a oneof named account_filter. Only a single field of the following list may be set at a time:\n  - all\n  - celExpression\n",
        "properties": {
          "all": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.directory.v1.DirectoryAccountFilterAll"
              },
              {
                "type": "null"
              }
            ]
          },
          "appId": {
            "description": "The AppID to make into a directory, providing identities and more for the C1 app.",
            "type": "string"
          },
          "celExpression": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.directory.v1.DirectoryAccountFilterCel"
              },
              {
                "type": "null"
              }
            ]
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.directory.v1.DirectoryExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "mergeConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.directory.v1.DirectoryMergeConfig"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Directory Service Create Request",
        "type": "object",
        "x-speakeasy-name-override": "DirectoryServiceCreateRequest"
      },
      "c1.api.directory.v1.DirectoryServiceCreateResponse": {
        "description": "The DirectoryServiceCreateResponse message.",
        "properties": {
          "directoryView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.directory.v1.DirectoryView"
              },
              {
                "type": "null"
              }
            ]
          },
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Directory Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "DirectoryServiceCreateResponse"
      },
      "c1.api.directory.v1.DirectoryServiceDeleteRequestInput": {
        "description": "DirectoryServiceDeleteRequest is the request message for deleting a directory. It uses URL values for input.",
        "title": "Directory Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "DirectoryServiceDeleteRequest"
      },
      "c1.api.directory.v1.DirectoryServiceDeleteResponse": {
        "description": "Empty response with a status code indicating success.",
        "title": "Directory Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "DirectoryServiceDeleteResponse"
      },
      "c1.api.directory.v1.DirectoryServiceGetResponse": {
        "description": "The Directory Service Get Response returns a directory view with a directory and JSONPATHs indicating the\n location in the expanded array that items are expanded as indicated by the expand mask in the request.",
        "properties": {
          "directoryView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.directory.v1.DirectoryView"
              },
              {
                "type": "null"
              }
            ]
          },
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Directory Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "DirectoryServiceGetResponse"
      },
      "c1.api.directory.v1.DirectoryServiceListResponse": {
        "description": "The DirectoryServiceListResponse message contains a list of results and a nextPageToken if applicable.",
        "properties": {
          "expanded": {
            "description": "The nextPageToken is shown for the next page if the number of results is larger than the max page size.\n The server returns one page of results and the nextPageToken until all results are retreived.\n To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "list": {
            "description": "The list of results containing up to X results, where X is the page size defined in the request.",
            "items": {
              "$ref": "#/components/schemas/c1.api.directory.v1.DirectoryView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "List of serialized related objects.",
            "type": "string"
          }
        },
        "title": "Directory Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "DirectoryServiceListResponse"
      },
      "c1.api.directory.v1.DirectoryServiceUpdateRequestInput": {
        "description": "Update a directory by app_id.\n\nThis message contains a oneof named account_filter. Only a single field of the following list may be set at a time:\n  - all\n  - celExpression\n",
        "properties": {
          "all": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.directory.v1.DirectoryAccountFilterAll"
              },
              {
                "type": "null"
              }
            ]
          },
          "celExpression": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.directory.v1.DirectoryAccountFilterCel"
              },
              {
                "type": "null"
              }
            ]
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.directory.v1.DirectoryExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "mergeConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.directory.v1.DirectoryMergeConfig"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Directory Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "DirectoryServiceUpdateRequest"
      },
      "c1.api.directory.v1.DirectoryServiceUpdateResponse": {
        "description": "The DirectoryServiceUpdateResponse message.",
        "properties": {
          "directoryView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.directory.v1.DirectoryView"
              },
              {
                "type": "null"
              }
            ]
          },
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Directory Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "DirectoryServiceUpdateResponse"
      },
      "c1.api.directory.v1.DirectoryView": {
        "description": "The directory view contains a directory and an app_path which is a JSONPATH set to the location in the expand mask that the expanded app will live if requested by the expander.",
        "properties": {
          "appPath": {
            "description": "JSONPATH expression indicating the location of the App object in the array.",
            "type": "string"
          },
          "directory": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.directory.v1.Directory"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Directory View",
        "type": "object",
        "x-speakeasy-name-override": "DirectoryView"
      },
      "c1.api.edge.v1.AgentKindCount": {
        "description": "AgentKindCount is one source_principal_kind group -- how many distinct\n agents of that kind were seen in a summary window.",
        "properties": {
          "count": {
            "description": "The count field.",
            "format": "int64",
            "type": "string"
          },
          "kind": {
            "description": "The kind field.",
            "type": "string"
          }
        },
        "title": "Agent Kind Count",
        "type": "object",
        "x-speakeasy-name-override": "AgentKindCount"
      },
      "c1.api.edge.v1.AuthzenRef": {
        "description": "AuthzenRef names an AuthzenServer. An empty app_id means the Edge's own app\n for rules saved before cross-app references were supported.",
        "properties": {
          "appId": {
            "description": "App that owns the AuthzenServer. Empty resolves to the Edge's app.",
            "type": "string"
          },
          "serverId": {
            "description": "ID of the AuthzenServer. It must exist in the target app and be in OBSERVE\n or ENFORCE mode.",
            "type": "string"
          }
        },
        "title": "Authzen Ref",
        "type": "object",
        "x-speakeasy-name-override": "AuthzenRef"
      },
      "c1.api.edge.v1.Edge": {
        "description": "Edge is an application-owned configuration for egress and inference services.",
        "properties": {
          "allowInferenceBearerTokens": {
            "description": "Opt in to short-lived inference Bearer credentials; false by default.\n Enforcement requires a runtime that consumes this setting.",
            "type": "boolean"
          },
          "appId": {
            "description": "App identifier.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "credentialInjections": {
            "description": "Vault-backed headers the hosted Edge adds to matching egress requests.\n Grant the vault's OpenSecret entitlement to the Edge's service principal.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.EdgeCredentialInjection"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "egressConnectEntitlementId": {
            "description": "The minted egress.connect entitlement (derived from the Edge id) -- grant\n it to a caller to let it open an authenticated egress connection. Empty\n when egress is not in enabled_kinds.",
            "type": "string"
          },
          "egressRules": {
            "description": "Ordered egress access rules, evaluated first-match-wins with default\n deny when none match. Order is significant: a customer expresses \"allow\n all except this one user\" by placing the specific rule first.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.EdgeEgressRule"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "egressRulesConfigured": {
            "description": "Whether egress_rules has ever been deliberately set (via an update_mask\n naming it), regardless of the resulting list's length. False means this\n Edge has never touched the feature -- egress is not destination-restricted\n -- even though egress_rules reads empty either way; true with an empty\n egress_rules means every destination is deliberately denied.",
            "type": "boolean"
          },
          "egressTls": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.EdgeTlsSelection"
              },
              {
                "type": "null"
              }
            ]
          },
          "enabledKinds": {
            "description": "The capabilities this Edge currently serves. A request naming a resource\n for a capability outside this set is denied, independent of mode. At\n least one kind is required.",
            "items": {
              "enum": [
                "EDGE_CAPABILITY_KIND_UNSPECIFIED",
                "EDGE_CAPABILITY_KIND_EGRESS",
                "EDGE_CAPABILITY_KIND_INFERENCE"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "inference": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.EdgeInferenceRoute"
              },
              {
                "type": "null"
              }
            ]
          },
          "inferenceInvokeEntitlementId": {
            "description": "The minted inference.invoke entitlement (derived from the Edge id). Empty\n when inference is not in enabled_kinds.",
            "type": "string"
          },
          "inferenceModelsReadEntitlementId": {
            "description": "The minted inference.models.read entitlement (derived from the Edge id).\n Empty when inference is not in enabled_kinds.",
            "type": "string"
          },
          "inferenceRoutes": {
            "description": "Complete ordered set of inference routes; route IDs are unique within this\n Edge, and other Edges may publish the same ID. update_mask\n \"inference_routes\" atomically replaces the entire set (including empty).\n Up to 40 routes per Edge; replacing a set is atomic.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.EdgeInferenceRoute"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "mode": {
            "description": "Hosting state for the service configuration. DISABLED and UNSPECIFIED\n deny every request. ENFORCE and OBSERVE both still require capability\n authorization; content policy and routing remain configured on the Edge\n host. OBSERVE is currently identical to ENFORCE -- it exists so an\n operator can stage an Edge ahead of destination-level policy support,\n which does not exist yet.",
            "enum": [
              "EDGE_MODE_UNSPECIFIED",
              "EDGE_MODE_DISABLED",
              "EDGE_MODE_OBSERVE",
              "EDGE_MODE_ENFORCE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "tokenAudience": {
            "description": "The `audience` to send when exchanging a token for access to this Edge.\n Every Edge deployment in the tenant shares it, so it names the service;\n `token_resources` identify its service endpoints.",
            "type": "string"
          },
          "tokenResources": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.EdgeTokenResources"
              },
              {
                "type": "null"
              }
            ]
          },
          "tokenScopes": {
            "description": "The scopes this Edge can issue. Explicit requests fail if any scope is\n ungranted; an omitted scope requests the granted capabilities of each resource.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Edge",
        "type": "object",
        "x-speakeasy-name-override": "Edge"
      },
      "c1.api.edge.v1.EdgeBuiltinTlsConfig": {
        "description": "EdgeBuiltinTlsConfig selects TLS interception material managed by\n ConductorOne.",
        "properties": {
          "kind": {
            "description": "The kind of managed material. Only EDGE_BUILTIN_TLS_KIND_EDGE_CA is\n supported.",
            "enum": [
              "EDGE_BUILTIN_TLS_KIND_UNSPECIFIED",
              "EDGE_BUILTIN_TLS_KIND_EDGE_CA"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Edge Builtin Tls Config",
        "type": "object",
        "x-speakeasy-name-override": "EdgeBuiltinTlsConfig"
      },
      "c1.api.edge.v1.EdgeCapabilitySummary": {
        "description": "EdgeCapabilitySummary describes the capability reports of a tenant's connected Edge processes.",
        "properties": {
          "lastReportedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "reportingProcesses": {
            "description": "Edge processes with a live report.",
            "format": "uint32",
            "type": "integer"
          }
        },
        "title": "Edge Capability Summary",
        "type": "object",
        "x-speakeasy-name-override": "EdgeCapabilitySummary"
      },
      "c1.api.edge.v1.EdgeCredentialInjection": {
        "description": "EdgeCredentialInjection binds one C1 vault secret to one request header.",
        "properties": {
          "contentType": {
            "description": "The secret's stored content type. Defaults to \"api_key\".",
            "type": "string"
          },
          "headerName": {
            "description": "Header to set, replacing any value supplied by the caller.",
            "type": "string"
          },
          "hostPattern": {
            "description": "Destination host glob, e.g. \"api.example.com\" or \"*.example.com\".",
            "type": "string"
          },
          "pathPattern": {
            "description": "Request path glob, e.g. \"/v1/*\". Empty matches every path.",
            "type": "string"
          },
          "secretId": {
            "description": "Secret to inject.",
            "type": "string"
          },
          "valuePrefix": {
            "description": "Literal text placed before the secret value, e.g. \"Bearer \".",
            "type": "string"
          },
          "vaultId": {
            "description": "Vault holding the secret.",
            "type": "string"
          }
        },
        "title": "Edge Credential Injection",
        "type": "object",
        "x-speakeasy-name-override": "EdgeCredentialInjection"
      },
      "c1.api.edge.v1.EdgeEgressHostChange": {
        "description": "EdgeEgressHostChange compares one host's verdict under the saved rules\n with its verdict under the proposed rules.",
        "properties": {
          "after": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.EdgeEgressHostVerdict"
              },
              {
                "type": "null"
              }
            ]
          },
          "before": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.EdgeEgressHostVerdict"
              },
              {
                "type": "null"
              }
            ]
          },
          "deciderChanged": {
            "description": "A different rule decides the host after the change, compared by rule\n content since indexes shift, or only one side has a deciding rule.",
            "type": "boolean"
          },
          "verdictChanged": {
            "description": "after.allowed differs from before.allowed.",
            "type": "boolean"
          }
        },
        "title": "Edge Egress Host Change",
        "type": "object",
        "x-speakeasy-name-override": "EdgeEgressHostChange"
      },
      "c1.api.edge.v1.EdgeEgressHostVerdict": {
        "description": "EdgeEgressHostVerdict is the rule step's verdict for one host, plus Time\n Bandit's SSRF floor for IP literals. The mode (observe or enforce) and\n content inspection are not part of it.",
        "properties": {
          "allowed": {
            "description": "The allowed field.",
            "type": "boolean"
          },
          "canonicalHost": {
            "description": "The host after canonicalization; empty when it could not be\n canonicalized.",
            "type": "string"
          },
          "delegatedAuthzenServerId": {
            "description": "The AuthzenServer that decides the host at request time, set only with\n EDGE_EGRESS_EVALUATION_OUTCOME_DELEGATED_TO_AUTHZEN.",
            "type": "string"
          },
          "host": {
            "description": "The host as requested.",
            "type": "string"
          },
          "hostError": {
            "description": "Why the host cannot be evaluated; set only with\n EDGE_EGRESS_EVALUATION_OUTCOME_INVALID_HOST.",
            "type": "string"
          },
          "matchedRuleIndex": {
            "description": "Zero-based index of the deciding rule, or -1 when no rule decided.",
            "format": "int32",
            "type": "integer"
          },
          "outcome": {
            "description": "The outcome field.",
            "enum": [
              "EDGE_EGRESS_EVALUATION_OUTCOME_UNSPECIFIED",
              "EDGE_EGRESS_EVALUATION_OUTCOME_NOT_RESTRICTED",
              "EDGE_EGRESS_EVALUATION_OUTCOME_MATCHED_RULE",
              "EDGE_EGRESS_EVALUATION_OUTCOME_DEFAULT_DENY",
              "EDGE_EGRESS_EVALUATION_OUTCOME_INVALID_HOST",
              "EDGE_EGRESS_EVALUATION_OUTCOME_UNRESOLVED_DENY_RULE",
              "EDGE_EGRESS_EVALUATION_OUTCOME_SSRF_BLOCKED",
              "EDGE_EGRESS_EVALUATION_OUTCOME_DELEGATED_TO_AUTHZEN",
              "EDGE_EGRESS_EVALUATION_OUTCOME_REQUEST_GATED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "ruleMatches": {
            "description": "Every rule whose pattern matches the host, in rule order.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.EdgeEgressRuleMatch"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Edge Egress Host Verdict",
        "type": "object",
        "x-speakeasy-name-override": "EdgeEgressHostVerdict"
      },
      "c1.api.edge.v1.EdgeEgressPrincipal": {
        "description": "EdgeEgressPrincipal is the caller a rule matches against. Exactly one arm\n must be set.\n\nThis message contains a oneof named scope. Only a single field of the following list may be set at a time:\n  - all\n  - userId\n  - entitlementId\n",
        "properties": {
          "all": {
            "description": "The all field.\nThis field is part of the `scope` oneof.\nSee the documentation for `c1.api.edge.v1.EdgeEgressPrincipal` for more details.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "entitlementId": {
            "description": "An App Entitlement belonging to the same App the Edge belongs to.\nThis field is part of the `scope` oneof.\nSee the documentation for `c1.api.edge.v1.EdgeEgressPrincipal` for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "userId": {
            "description": "The userId field.\nThis field is part of the `scope` oneof.\nSee the documentation for `c1.api.edge.v1.EdgeEgressPrincipal` for more details.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Edge Egress Principal",
        "type": "object",
        "x-speakeasy-name-override": "EdgeEgressPrincipal"
      },
      "c1.api.edge.v1.EdgeEgressRequestMatch": {
        "description": "EdgeEgressRule is one ordered row of an Edge's egress access policy.\n EdgeEgressRequestMatch selects requests by method, path, query and headers. Every set\n selector must match (AND); an unset selector does not constrain. Within a selector,\n methods match any listed value. Each query or header key constrained by a value glob\n must occur exactly once in the request, or the request is denied.",
        "properties": {
          "headerEquals": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Header name to '*' value glob, matched case-sensitively after OWS trim. Each header\n must occur exactly once. Names are case-insensitive and must be unique after folding.",
            "type": "object"
          },
          "headerPresent": {
            "description": "Header names that must be present (any value). Names are case-insensitive.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "methods": {
            "description": "Methods (any of). Upper-case tokens. Empty means any method.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "path": {
            "description": "Path segment-glob over the canonical path. `*` matches one segment and `**` one or more.\n Empty means any path.",
            "type": "string"
          },
          "queryEquals": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Query key to case-sensitive '*' value glob. Each key must occur exactly once.",
            "type": "object"
          },
          "queryPresent": {
            "description": "Query keys that must be present (any value). Case-sensitive.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Edge Egress Request Match",
        "type": "object",
        "x-speakeasy-name-override": "EdgeEgressRequestMatch"
      },
      "c1.api.edge.v1.EdgeEgressRule": {
        "description": "The EdgeEgressRule message.\n\nThis message contains a oneof named pdp. Only a single field of the following list may be set at a time:\n  - authzen\n",
        "properties": {
          "allowEmptyEncodedBody": {
            "description": "When true, a response or request whose declared Content-Encoding is a supported\n token (gzip, x-gzip, deflate, br, zstd) but whose body is empty or decodes to zero\n bytes is treated as an empty plaintext instead of failing closed. Off by default.\n Only meaningful on ALLOW rules.",
            "type": "boolean"
          },
          "allowResponseDecodeRefusals": {
            "description": "When true, a decode refusal raised while recursively decoding content nested inside a\n RESPONSE body (e.g. a gzip-looking byte run in a binary download that fails to inflate,\n an embedded encoding past the depth/size bounds) is recorded but does not by itself\n block the response. Confirmed findings (credentials, keys, PANs) still apply. Off by\n default. Only meaningful on ALLOW rules.",
            "type": "boolean"
          },
          "authzen": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.AuthzenRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "effect": {
            "description": "The effect field.",
            "enum": [
              "EDGE_EGRESS_EFFECT_UNSPECIFIED",
              "EDGE_EGRESS_EFFECT_ALLOW",
              "EDGE_EGRESS_EFFECT_DENY",
              "EDGE_EGRESS_EFFECT_AUTHZEN"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "endpointPattern": {
            "description": "Destination host to match: exact hostname, or a single leading \"*.\"\n wildcard for subdomains (e.g. \"*.example.com\"). Port and path are out of\n scope for v1.",
            "type": "string"
          },
          "exemptCredentialKinds": {
            "description": "Content-inspection finding classes this rule exempts from blocking on\n the *request* path, since the destination is already trusted for this\n principal. Never applies to response content; see\n exempt_response_credential_kinds for that, deliberately independent.",
            "items": {
              "enum": [
                "CREDENTIAL_KIND_UNSPECIFIED",
                "CREDENTIAL_KIND_JWT",
                "CREDENTIAL_KIND_API_KEY",
                "CREDENTIAL_KIND_PRIVATE_KEY",
                "CREDENTIAL_KIND_VENDOR_CREDENTIAL",
                "CREDENTIAL_KIND_PAN"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "exemptResponseCredentialKinds": {
            "description": "Content-inspection finding classes this rule exempts from blocking on\n the *response* path -- e.g. a destination's own credential-issuance\n reply (temporary cloud credentials, a continuation token) that the\n caller's own service legitimately needs to consume. Deliberately a\n separate list from exempt_credential_kinds, defaulting empty: trusting a\n destination's outbound credential never implies trusting whatever it\n sends back, and an admin must opt a kind into this list explicitly.",
            "items": {
              "enum": [
                "CREDENTIAL_KIND_UNSPECIFIED",
                "CREDENTIAL_KIND_JWT",
                "CREDENTIAL_KIND_API_KEY",
                "CREDENTIAL_KIND_PRIVATE_KEY",
                "CREDENTIAL_KIND_VENDOR_CREDENTIAL",
                "CREDENTIAL_KIND_PAN"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "maxInspectedBodyBytes": {
            "description": "Overrides, for destinations matching this rule, the largest body (in\n bytes) Time Bandit buffers for content inspection. 0 means unset: Time\n Bandit uses its fleet default (1 MiB). A body above the limit is still\n refused (fail closed) and is never forwarded uninspected. Only meaningful\n on ALLOW rules. Applies whether or not skip_content_inspection is set.",
            "format": "uint64",
            "type": "string"
          },
          "principal": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.EdgeEgressPrincipal"
              },
              {
                "type": "null"
              }
            ]
          },
          "request": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.EdgeEgressRequestMatch"
              },
              {
                "type": "null"
              }
            ]
          },
          "skipContentInspection": {
            "description": "When true, decoding is optional for destinations matching this rule; inspection\n is not. Despite the name, this does NOT skip content inspection: every detector,\n guardrail and header scan still runs and any finding still denies. It only\n changes what happens when a body declares a Content-Encoding that Time Bandit\n has no decoder for. Without the flag the body is denied (fail closed); with it,\n the bytes are scanned as-is through the normal cascade. Trade-off: a secret\n inside genuine compression labelled with an unsupported token is not caught\n (plaintext and gzip still are). A supported encoding that is malformed or\n truncated, decoded output over the inspection cap, and bodies over the wire cap\n still fail closed. Off by default. Only meaningful on ALLOW rules.",
            "type": "boolean"
          }
        },
        "title": "Edge Egress Rule",
        "type": "object",
        "x-speakeasy-name-override": "EdgeEgressRule"
      },
      "c1.api.edge.v1.EdgeEgressRuleEntitlementIssue": {
        "description": "EdgeEgressRuleEntitlementIssue is one egress rule whose entitlement does not\n resolve.",
        "properties": {
          "cause": {
            "description": "The cause field.",
            "enum": [
              "EDGE_EGRESS_RULE_ENTITLEMENT_ISSUE_CAUSE_UNSPECIFIED",
              "EDGE_EGRESS_RULE_ENTITLEMENT_ISSUE_CAUSE_DELETED",
              "EDGE_EGRESS_RULE_ENTITLEMENT_ISSUE_CAUSE_MISSING",
              "EDGE_EGRESS_RULE_ENTITLEMENT_ISSUE_CAUSE_OVER_CAP"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "deletedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "enforcement": {
            "description": "What the Edge enforces for this rule.",
            "enum": [
              "EDGE_EGRESS_RULE_ENTITLEMENT_ISSUE_ENFORCEMENT_UNSPECIFIED",
              "EDGE_EGRESS_RULE_ENTITLEMENT_ISSUE_ENFORCEMENT_NOT_ENFORCED",
              "EDGE_EGRESS_RULE_ENTITLEMENT_ISSUE_ENFORCEMENT_DENIES_EVERYONE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "entitlementDisplayName": {
            "description": "The entitlement's name, when its row could be read.",
            "type": "string"
          },
          "entitlementId": {
            "description": "The entitlementId field.",
            "type": "string"
          },
          "ruleIndex": {
            "description": "Zero-based index into the saved rules.",
            "format": "int32",
            "type": "integer"
          }
        },
        "title": "Edge Egress Rule Entitlement Issue",
        "type": "object",
        "x-speakeasy-name-override": "EdgeEgressRuleEntitlementIssue"
      },
      "c1.api.edge.v1.EdgeEgressRuleList": {
        "description": "EdgeEgressRuleList wraps a rule list so an empty list is distinct from none.",
        "properties": {
          "rules": {
            "description": "The rules field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.EdgeEgressRule"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Edge Egress Rule List",
        "type": "object",
        "x-speakeasy-name-override": "EdgeEgressRuleList"
      },
      "c1.api.edge.v1.EdgeEgressRuleListCheck": {
        "description": "EdgeEgressRuleListCheck is Update's save-time verdict on a rule list.",
        "properties": {
          "problems": {
            "description": "Every problem Update would reject the list for, in rule order; empty when\n valid. Update itself reports only the first.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.EdgeEgressRuleProblem"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "valid": {
            "description": "The valid field.",
            "type": "boolean"
          },
          "warnings": {
            "description": "Things worth fixing that do not stop Update from saving the list.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.EdgeEgressRuleWarning"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Edge Egress Rule List Check",
        "type": "object",
        "x-speakeasy-name-override": "EdgeEgressRuleListCheck"
      },
      "c1.api.edge.v1.EdgeEgressRuleMatch": {
        "description": "EdgeEgressRuleMatch is one rule whose pattern matches an evaluated host.",
        "properties": {
          "entitlementOverCap": {
            "description": "A Deny rule whose entitlement has more members than the Edge config\n carries; it applies to every user, so principal_match is MATCHES.",
            "type": "boolean"
          },
          "principalMatch": {
            "description": "The principalMatch field.",
            "enum": [
              "EDGE_EGRESS_PRINCIPAL_MATCH_UNSPECIFIED",
              "EDGE_EGRESS_PRINCIPAL_MATCH_MATCHES",
              "EDGE_EGRESS_PRINCIPAL_MATCH_DOES_NOT_MATCH",
              "EDGE_EGRESS_PRINCIPAL_MATCH_UNKNOWN"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "ruleIndex": {
            "description": "The ruleIndex field.",
            "format": "int32",
            "type": "integer"
          },
          "shadowed": {
            "description": "An earlier rule already decided this host for this caller, so this one\n never applies. Set only with EDGE_EGRESS_PRINCIPAL_MATCH_MATCHES.",
            "type": "boolean"
          }
        },
        "title": "Edge Egress Rule Match",
        "type": "object",
        "x-speakeasy-name-override": "EdgeEgressRuleMatch"
      },
      "c1.api.edge.v1.EdgeEgressRuleProblem": {
        "description": "EdgeEgressRuleProblem is one reason Update would reject a rule list.",
        "properties": {
          "kind": {
            "description": "The kind field.",
            "enum": [
              "EDGE_EGRESS_RULE_PROBLEM_KIND_UNSPECIFIED",
              "EDGE_EGRESS_RULE_PROBLEM_KIND_TOO_MANY_RULES",
              "EDGE_EGRESS_RULE_PROBLEM_KIND_INVALID_PATTERN",
              "EDGE_EGRESS_RULE_PROBLEM_KIND_UNKNOWN_ENTITLEMENT",
              "EDGE_EGRESS_RULE_PROBLEM_KIND_INVALID_BODY_LIMIT",
              "EDGE_EGRESS_RULE_PROBLEM_KIND_AUTHZEN_SERVER_REQUIRED",
              "EDGE_EGRESS_RULE_PROBLEM_KIND_UNEXPECTED_AUTHZEN_SERVER",
              "EDGE_EGRESS_RULE_PROBLEM_KIND_UNKNOWN_AUTHZEN_SERVER",
              "EDGE_EGRESS_RULE_PROBLEM_KIND_INACTIVE_AUTHZEN_SERVER"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "message": {
            "description": "The same text Update returns for this problem.",
            "type": "string"
          },
          "ruleIndex": {
            "description": "Zero-based rule index, or -1 for a problem with the whole list.",
            "format": "int32",
            "type": "integer"
          }
        },
        "title": "Edge Egress Rule Problem",
        "type": "object",
        "x-speakeasy-name-override": "EdgeEgressRuleProblem"
      },
      "c1.api.edge.v1.EdgeEgressRuleWarning": {
        "description": "EdgeEgressRuleWarning is one non-blocking concern about a rule list.",
        "properties": {
          "authzenServerId": {
            "description": "The AuthzenServer an AUTHZEN rule names, for the AUTHZEN warning kinds.",
            "type": "string"
          },
          "kind": {
            "description": "The kind field.",
            "enum": [
              "EDGE_EGRESS_RULE_WARNING_KIND_UNSPECIFIED",
              "EDGE_EGRESS_RULE_WARNING_KIND_AUTHZEN_EVALUATE_GRANT_MISSING",
              "EDGE_EGRESS_RULE_WARNING_KIND_AUTHZEN_NO_EDGE_PRINCIPAL",
              "EDGE_EGRESS_RULE_WARNING_KIND_HOST_DECISION_BYPASSES_AUTHZEN_RULE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "message": {
            "description": "Human-readable explanation, including how to fix it.",
            "type": "string"
          },
          "ruleIndex": {
            "description": "Zero-based rule index, or -1 for a warning about the whole list.",
            "format": "int32",
            "type": "integer"
          },
          "servicePrincipalIds": {
            "description": "The service principals bound to the Edge that lack the grant.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Edge Egress Rule Warning",
        "type": "object",
        "x-speakeasy-name-override": "EdgeEgressRuleWarning"
      },
      "c1.api.edge.v1.EdgeInferenceCatalogEntry": {
        "description": "EdgeInferenceCatalogEntry is a provider that Edge inference routes can target.",
        "properties": {
          "channel": {
            "description": "Release channel; higher values are less stable.",
            "enum": [
              "MCP_SERVER_CATALOG_CHANNEL_UNSPECIFIED",
              "MCP_SERVER_CATALOG_CHANNEL_STABLE",
              "MCP_SERVER_CATALOG_CHANNEL_BETA",
              "MCP_SERVER_CATALOG_CHANNEL_ALPHA"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "credentialKind": {
            "description": "The credentialKind field.",
            "enum": [
              "EDGE_INFERENCE_CATALOG_CREDENTIAL_KIND_UNSPECIFIED",
              "EDGE_INFERENCE_CATALOG_CREDENTIAL_KIND_API_KEY",
              "EDGE_INFERENCE_CATALOG_CREDENTIAL_KIND_AWS_WORKLOAD_IDENTITY_REGION"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "iconKey": {
            "description": "Key the client maps to a provider icon.",
            "type": "string"
          },
          "id": {
            "description": "Entry identifier.",
            "type": "string"
          },
          "secretContentType": {
            "description": "Content type the credential secret must have for API key entries.",
            "type": "string"
          },
          "variants": {
            "description": "The variants field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.EdgeInferenceCatalogVariant"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Edge Inference Catalog Entry",
        "type": "object",
        "x-speakeasy-name-override": "EdgeInferenceCatalogEntry"
      },
      "c1.api.edge.v1.EdgeInferenceCatalogModel": {
        "description": "EdgeInferenceCatalogModel is a suggested upstream model. Suggestions are not exhaustive: any model id the\n variant's grammar accepts can be used.",
        "properties": {
          "displayName": {
            "description": "Human-readable model name.",
            "type": "string"
          },
          "id": {
            "description": "Upstream model id to send.",
            "type": "string"
          },
          "supportedReasoningEfforts": {
            "description": "Reasoning effort levels the model accepts (`none`, `minimal`, `low`, `medium`, `high`), lowest first.\n Empty means C1 does not know, so any level may be offered.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Edge Inference Catalog Model",
        "type": "object",
        "x-speakeasy-name-override": "EdgeInferenceCatalogModel"
      },
      "c1.api.edge.v1.EdgeInferenceCatalogVariant": {
        "description": "EdgeInferenceCatalogVariant is one way to reach a provider: a provider profile with its native format,\n destination, credential source and model id grammar.",
        "properties": {
          "availabilityWarning": {
            "description": "Set when only some connected Edge processes can serve the variant, as during a rollout.",
            "type": "string"
          },
          "credentialRecipe": {
            "description": "Credential recipe for AWS variants; empty otherwise.",
            "type": "string"
          },
          "credentialSource": {
            "description": "The credentialSource field.",
            "enum": [
              "EDGE_INFERENCE_CREDENTIAL_SOURCE_UNSPECIFIED",
              "EDGE_INFERENCE_CREDENTIAL_SOURCE_TENANT_VAULT",
              "EDGE_INFERENCE_CREDENTIAL_SOURCE_AWS_WORKLOAD_IDENTITY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "defaultSupportedReasoningEfforts": {
            "description": "Reasoning effort levels assumed for a model id that is not suggested, lowest first. Empty means unknown.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "destination": {
            "description": "Destination written to the target. AWS variants use a template with {region}.",
            "type": "string"
          },
          "displayName": {
            "description": "Human-readable variant name.",
            "type": "string"
          },
          "id": {
            "description": "Variant identifier, unique within its entry.",
            "type": "string"
          },
          "modelHint": {
            "description": "Placeholder describing the accepted model id shape, for the free-text field.",
            "type": "string"
          },
          "modelIdGrammar": {
            "description": "The modelIdGrammar field.",
            "type": "string"
          },
          "nativeFormat": {
            "description": "Client format the variant serves.",
            "enum": [
              "EDGE_INFERENCE_NATIVE_FORMAT_UNSPECIFIED",
              "EDGE_INFERENCE_NATIVE_FORMAT_OPENAI_RESPONSES",
              "EDGE_INFERENCE_NATIVE_FORMAT_OPENAI_CHAT",
              "EDGE_INFERENCE_NATIVE_FORMAT_ANTHROPIC_MESSAGES"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "providerProfile": {
            "description": "Provider profile written to the target.",
            "type": "string"
          },
          "suggestedModels": {
            "description": "The suggestedModels field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.EdgeInferenceCatalogModel"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "unavailable": {
            "description": "True when every Edge process this tenant has connected has reported that it cannot serve this variant. False,\n including when no Edge has reported, means the variant is offered as before. Region-scoped variants are not\n gated here because the region is chosen later.",
            "type": "boolean"
          },
          "unavailableReason": {
            "description": "Why the variant is unavailable. Set only with unavailable.",
            "type": "string"
          },
          "upstreamPath": {
            "description": "The upstreamPath field.",
            "type": "string"
          }
        },
        "title": "Edge Inference Catalog Variant",
        "type": "object",
        "x-speakeasy-name-override": "EdgeInferenceCatalogVariant"
      },
      "c1.api.edge.v1.EdgeInferenceCircuitBreaker": {
        "description": "The EdgeInferenceCircuitBreaker message.",
        "properties": {
          "cooldownMs": {
            "description": "The cooldownMs field.",
            "format": "uint32",
            "type": "integer"
          },
          "failureThreshold": {
            "description": "The failureThreshold field.",
            "format": "uint32",
            "type": "integer"
          }
        },
        "title": "Edge Inference Circuit Breaker",
        "type": "object",
        "x-speakeasy-name-override": "EdgeInferenceCircuitBreaker"
      },
      "c1.api.edge.v1.EdgeInferenceCredentialFailurePolicy": {
        "description": "The EdgeInferenceCredentialFailurePolicy message.",
        "properties": {
          "notApplicable": {
            "description": "The notApplicable field.",
            "enum": [
              "EDGE_INFERENCE_FAILURE_DISPOSITION_UNSPECIFIED",
              "EDGE_INFERENCE_FAILURE_DISPOSITION_STOP",
              "EDGE_INFERENCE_FAILURE_DISPOSITION_NEXT_TARGET"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "rejected401": {
            "description": "The rejected401 field.",
            "enum": [
              "EDGE_INFERENCE_FAILURE_DISPOSITION_UNSPECIFIED",
              "EDGE_INFERENCE_FAILURE_DISPOSITION_STOP",
              "EDGE_INFERENCE_FAILURE_DISPOSITION_NEXT_TARGET"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "unavailableOrExpired": {
            "description": "The unavailableOrExpired field.",
            "enum": [
              "EDGE_INFERENCE_FAILURE_DISPOSITION_UNSPECIFIED",
              "EDGE_INFERENCE_FAILURE_DISPOSITION_STOP",
              "EDGE_INFERENCE_FAILURE_DISPOSITION_NEXT_TARGET"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Edge Inference Credential Failure Policy",
        "type": "object",
        "x-speakeasy-name-override": "EdgeInferenceCredentialFailurePolicy"
      },
      "c1.api.edge.v1.EdgeInferenceHandoffNotes": {
        "description": "The EdgeInferenceHandoffNotes message.",
        "properties": {
          "deescalationNote": {
            "description": "The deescalationNote field.",
            "type": "string"
          },
          "escalationNote": {
            "description": "The escalationNote field.",
            "type": "string"
          },
          "onlyOnWrongSignalEscalation": {
            "description": "The onlyOnWrongSignalEscalation field.",
            "type": "boolean"
          }
        },
        "title": "Edge Inference Handoff Notes",
        "type": "object",
        "x-speakeasy-name-override": "EdgeInferenceHandoffNotes"
      },
      "c1.api.edge.v1.EdgeInferenceJudge": {
        "description": "The EdgeInferenceJudge message.",
        "properties": {
          "baseThreshold": {
            "description": "The baseThreshold field.",
            "type": "number"
          },
          "maxOutputTokens": {
            "description": "Maximum tokens available to classify a stage result (1 to 16,384).",
            "format": "uint32",
            "type": "integer"
          },
          "prompt": {
            "description": "The prompt field.",
            "type": "string"
          },
          "recentTurnWindow": {
            "description": "The recentTurnWindow field.",
            "format": "uint32",
            "type": "integer"
          },
          "thresholdStep": {
            "description": "The thresholdStep field.",
            "type": "number"
          }
        },
        "title": "Edge Inference Judge",
        "type": "object",
        "x-speakeasy-name-override": "EdgeInferenceJudge"
      },
      "c1.api.edge.v1.EdgeInferenceModelFamily": {
        "description": "EdgeInferenceModelFamily groups registered models, e.g. \"Claude Opus\".",
        "properties": {
          "family": {
            "description": "Family name; models with no family are grouped under their own display name.",
            "type": "string"
          },
          "models": {
            "description": "The models field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.EdgeInferenceRegistryModel"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Edge Inference Model Family",
        "type": "object",
        "x-speakeasy-name-override": "EdgeInferenceModelFamily"
      },
      "c1.api.edge.v1.EdgeInferenceRegistryModel": {
        "description": "EdgeInferenceRegistryModel is a model C1 has registered for use.",
        "properties": {
          "contextWindowTokens": {
            "description": "Zero when unknown.",
            "format": "uint32",
            "type": "integer"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "modelId": {
            "description": "Registry model id, written to EdgeInferenceRoute.registry_model_id.",
            "type": "string"
          },
          "routeId": {
            "description": "Suggested route id: the model's name in route id form.",
            "type": "string"
          },
          "serveOptions": {
            "description": "Ways to serve the model, in C1's preferred order.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.EdgeInferenceServeOption"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Edge Inference Registry Model",
        "type": "object",
        "x-speakeasy-name-override": "EdgeInferenceRegistryModel"
      },
      "c1.api.edge.v1.EdgeInferenceRetry": {
        "description": "Bounds the delay between provider attempts on one route. Only transient\n provider failures (rate limit, provider timeout, overload, a pre-response\n transport failure, a generic upstream error) ever wait; credential, policy,\n configuration and other 4xx rejections stay terminal.",
        "properties": {
          "baseMs": {
            "description": "First backoff ceiling in milliseconds; doubles per consecutive transient\n failure in one provider traversal, up to the cap. Zero disables backoff.",
            "format": "uint32",
            "type": "integer"
          },
          "capMs": {
            "description": "Largest delay in milliseconds, including a clamped provider Retry-After.",
            "format": "uint32",
            "type": "integer"
          },
          "jitter": {
            "description": "Draw each delay uniformly from zero to the ceiling instead of waiting the\n ceiling exactly.",
            "type": "boolean"
          },
          "maxSameTargetRetries": {
            "description": "Extra attempts against the same target after a transient failure, before\n failing over. Each one spends one of the route's attempts.",
            "format": "uint32",
            "type": "integer"
          }
        },
        "title": "Edge Inference Retry",
        "type": "object",
        "x-speakeasy-name-override": "EdgeInferenceRetry"
      },
      "c1.api.edge.v1.EdgeInferenceRoute": {
        "description": "EdgeInferenceRoute declares a caller-visible model selector and a bounded\n provider graph. Legacy scalar fields decode previously stored singletons;\n new configurations use native_format, targets, and selection.",
        "properties": {
          "allowHumanCallers": {
            "description": "Explicitly authorize enabled human users holding per-capability app grants\n to exchange an SSO id_token with DPoP. False preserves workload-only routes.",
            "type": "boolean"
          },
          "callerServicePrincipalId": {
            "description": "Required in workload mode; forbidden when allow_human_callers is true.\n Workload callers must hold both inference capability grants.",
            "type": "string"
          },
          "callerWorkloadFederationTrustId": {
            "description": "The workload caller's exact federation trust; forbidden in human mode.",
            "type": "string"
          },
          "contentType": {
            "description": "The contentType field.",
            "type": "string"
          },
          "expectedSecretVersion": {
            "deprecated": true,
            "description": "Deprecated setup-time pin. New writes must leave it empty; the runtime\n resolves the active version of each target's Vault secret.",
            "type": "string"
          },
          "followedTier": {
            "description": "C1 tier this route follows; UNSPECIFIED means it follows no tier. On write, a route that sets a tier must\n use the route_id c1-\u003ctier\u003e; the server replaces its targets and selection with the tier's current model,\n served through the providers this Edge already has credentials for, and also publishes that model's name\n as a second route. Clearing the tier (and publication) on a published route pins it to its current\n targets.",
            "enum": [
              "EDGE_INFERENCE_TIER_UNSPECIFIED",
              "EDGE_INFERENCE_TIER_FAST",
              "EDGE_INFERENCE_TIER_BALANCED",
              "EDGE_INFERENCE_TIER_BEST"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "nativeFormat": {
            "description": "Accepted native client request format; never inferred from caller headers.",
            "enum": [
              "EDGE_INFERENCE_NATIVE_FORMAT_UNSPECIFIED",
              "EDGE_INFERENCE_NATIVE_FORMAT_OPENAI_RESPONSES",
              "EDGE_INFERENCE_NATIVE_FORMAT_OPENAI_CHAT",
              "EDGE_INFERENCE_NATIVE_FORMAT_ANTHROPIC_MESSAGES"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "publication": {
            "description": "Which C1-published route of a followed tier this is. Set by the server; send back the value you read.\n UNSPECIFIED for a tenant-authored route.",
            "enum": [
              "EDGE_INFERENCE_ROUTE_PUBLICATION_UNSPECIFIED",
              "EDGE_INFERENCE_ROUTE_PUBLICATION_TIER",
              "EDGE_INFERENCE_ROUTE_PUBLICATION_MODEL_ALIAS"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "registryModelId": {
            "description": "Registry model the route was built from; empty for a custom model.",
            "type": "string"
          },
          "routeId": {
            "description": "Tenant-owned route identifier, unique within its Edge; other Edges may\n publish the same ID. ListInferenceRoutes reports routes already configured\n for this application, not an allowlist.",
            "type": "string"
          },
          "secretId": {
            "description": "The secretId field.",
            "type": "string"
          },
          "selection": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.EdgeInferenceSelection"
              },
              {
                "type": "null"
              }
            ]
          },
          "targets": {
            "description": "Explicit upstream targets; no request may choose a target or destination.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.EdgeInferenceTarget"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "upstreamModelId": {
            "description": "Legacy singleton model, empty for graph routes.",
            "type": "string"
          },
          "vaultBoundaryId": {
            "description": "Legacy singleton Vault reference, empty for graph routes.",
            "type": "string"
          }
        },
        "title": "Edge Inference Route",
        "type": "object",
        "x-speakeasy-name-override": "EdgeInferenceRoute"
      },
      "c1.api.edge.v1.EdgeInferenceRouteOption": {
        "description": "EdgeInferenceRouteOption describes an already configured route to callers\n with application management access. It never includes credential material.",
        "properties": {
          "displayName": {
            "description": "Human-readable route name.",
            "type": "string"
          },
          "routeId": {
            "description": "Configured route identifier.",
            "type": "string"
          },
          "upstreamModelId": {
            "description": "First configured target's model, for existing list clients.",
            "type": "string"
          }
        },
        "title": "Edge Inference Route Option",
        "type": "object",
        "x-speakeasy-name-override": "EdgeInferenceRouteOption"
      },
      "c1.api.edge.v1.EdgeInferenceSelection": {
        "description": "The EdgeInferenceSelection message.",
        "properties": {
          "attemptTimeoutMs": {
            "description": "The attemptTimeoutMs field.",
            "format": "uint32",
            "type": "integer"
          },
          "confidenceThreshold": {
            "description": "The confidenceThreshold field.",
            "type": "number"
          },
          "handoffNotes": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.EdgeInferenceHandoffNotes"
              },
              {
                "type": "null"
              }
            ]
          },
          "maxAttempts": {
            "description": "The maxAttempts field.",
            "format": "uint32",
            "type": "integer"
          },
          "pickerMode": {
            "description": "The pickerMode field.",
            "enum": [
              "EDGE_INFERENCE_STAGE_PICKER_MODE_UNSPECIFIED",
              "EDGE_INFERENCE_STAGE_PICKER_MODE_EFFICIENT_FIRST",
              "EDGE_INFERENCE_STAGE_PICKER_MODE_CAPABLE_FIRST"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "recentWindow": {
            "description": "The recentWindow field.",
            "format": "uint32",
            "type": "integer"
          },
          "retry": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.EdgeInferenceRetry"
              },
              {
                "type": "null"
              }
            ]
          },
          "routeDeadlineMs": {
            "description": "The routeDeadlineMs field.",
            "format": "uint32",
            "type": "integer"
          },
          "stages": {
            "description": "The stages field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.EdgeInferenceStage"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "strategy": {
            "description": "The strategy field.",
            "enum": [
              "EDGE_INFERENCE_SELECTION_STRATEGY_UNSPECIFIED",
              "EDGE_INFERENCE_SELECTION_STRATEGY_SINGLE",
              "EDGE_INFERENCE_SELECTION_STRATEGY_FAILOVER",
              "EDGE_INFERENCE_SELECTION_STRATEGY_STAGE_ROUTER"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "targetIds": {
            "description": "The targetIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Edge Inference Selection",
        "type": "object",
        "x-speakeasy-name-override": "EdgeInferenceSelection"
      },
      "c1.api.edge.v1.EdgeInferenceServeOption": {
        "description": "EdgeInferenceServeOption is one way an Edge can serve a registered model: a catalog variant and the exact\n upstream model id to send through it.",
        "properties": {
          "catalogEntryId": {
            "description": "Catalog entry (provider) id.",
            "type": "string"
          },
          "catalogVariantId": {
            "description": "Catalog variant id within the entry.",
            "type": "string"
          },
          "nativeFormat": {
            "description": "Client format the option serves.",
            "enum": [
              "EDGE_INFERENCE_NATIVE_FORMAT_UNSPECIFIED",
              "EDGE_INFERENCE_NATIVE_FORMAT_OPENAI_RESPONSES",
              "EDGE_INFERENCE_NATIVE_FORMAT_OPENAI_CHAT",
              "EDGE_INFERENCE_NATIVE_FORMAT_ANTHROPIC_MESSAGES"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "region": {
            "description": "AWS region the target uses; empty for API-key providers.",
            "type": "string"
          },
          "upstreamModelId": {
            "description": "Upstream model id to send.",
            "type": "string"
          }
        },
        "title": "Edge Inference Serve Option",
        "type": "object",
        "x-speakeasy-name-override": "EdgeInferenceServeOption"
      },
      "c1.api.edge.v1.EdgeInferenceStage": {
        "description": "The EdgeInferenceStage message.",
        "properties": {
          "judge": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.EdgeInferenceJudge"
              },
              {
                "type": "null"
              }
            ]
          },
          "judgeTargetId": {
            "description": "The judgeTargetId field.",
            "type": "string"
          },
          "stageId": {
            "description": "The stageId field.",
            "type": "string"
          },
          "targetIds": {
            "description": "The targetIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "tierPrompt": {
            "description": "The tierPrompt field.",
            "type": "string"
          }
        },
        "title": "Edge Inference Stage",
        "type": "object",
        "x-speakeasy-name-override": "EdgeInferenceStage"
      },
      "c1.api.edge.v1.EdgeInferenceTarget": {
        "description": "The EdgeInferenceTarget message.",
        "properties": {
          "catalogEntryId": {
            "description": "Catalog entry and variant to expand on write. Set both with target_id, upstream_model_id, region (AWS variants) and the\n secret reference; the server fills the provider profile, destination, credential source and recipe, content type,\n upstream path and model id grammar from the variant. Other provider fields must be unset or match the variant.",
            "type": "string"
          },
          "catalogVariantId": {
            "description": "The catalogVariantId field.",
            "type": "string"
          },
          "circuitBreaker": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.EdgeInferenceCircuitBreaker"
              },
              {
                "type": "null"
              }
            ]
          },
          "contentType": {
            "description": "The contentType field.",
            "type": "string"
          },
          "contextLength": {
            "description": "The contextLength field.",
            "format": "uint32",
            "type": "integer"
          },
          "credentialFailurePolicy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.EdgeInferenceCredentialFailurePolicy"
              },
              {
                "type": "null"
              }
            ]
          },
          "credentialRecipe": {
            "description": "The credentialRecipe field.",
            "type": "string"
          },
          "credentialSource": {
            "description": "The credentialSource field.",
            "enum": [
              "EDGE_INFERENCE_CREDENTIAL_SOURCE_UNSPECIFIED",
              "EDGE_INFERENCE_CREDENTIAL_SOURCE_TENANT_VAULT",
              "EDGE_INFERENCE_CREDENTIAL_SOURCE_AWS_WORKLOAD_IDENTITY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "destination": {
            "description": "Empty only when a catalog variant expands it.",
            "type": "string"
          },
          "expectedSecretVersion": {
            "description": "Output-only: resolved active version in the distributed configuration.",
            "type": "string"
          },
          "modelIdGrammar": {
            "description": "The modelIdGrammar field.",
            "type": "string"
          },
          "providerProfile": {
            "description": "Empty only when catalog_entry_id and catalog_variant_id expand it; the expanded target is validated in full.",
            "type": "string"
          },
          "reasoningEffort": {
            "description": "The reasoningEffort field.",
            "type": "string"
          },
          "region": {
            "description": "The region field.",
            "type": "string"
          },
          "secretId": {
            "description": "The secretId field.",
            "type": "string"
          },
          "targetId": {
            "description": "The targetId field.",
            "type": "string"
          },
          "upstreamModelId": {
            "description": "The upstreamModelId field.",
            "type": "string"
          },
          "upstreamPath": {
            "description": "The upstreamPath field.",
            "type": "string"
          },
          "vaultBoundaryId": {
            "description": "The vaultBoundaryId field.",
            "type": "string"
          }
        },
        "title": "Edge Inference Target",
        "type": "object",
        "x-speakeasy-name-override": "EdgeInferenceTarget"
      },
      "c1.api.edge.v1.EdgeInferenceTierOption": {
        "description": "EdgeInferenceTierOption is a C1 tier and the model it uses for the caller's tenant.",
        "properties": {
          "aliasRouteId": {
            "description": "Route id published as the model alias.",
            "type": "string"
          },
          "modelDisplayName": {
            "description": "The modelDisplayName field.",
            "type": "string"
          },
          "modelId": {
            "description": "Registry model id the tier uses.",
            "type": "string"
          },
          "routeId": {
            "description": "Route id published for the tier, e.g. c1-fast.",
            "type": "string"
          },
          "tier": {
            "description": "The tier field.",
            "enum": [
              "EDGE_INFERENCE_TIER_UNSPECIFIED",
              "EDGE_INFERENCE_TIER_FAST",
              "EDGE_INFERENCE_TIER_BALANCED",
              "EDGE_INFERENCE_TIER_BEST"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Edge Inference Tier Option",
        "type": "object",
        "x-speakeasy-name-override": "EdgeInferenceTierOption"
      },
      "c1.api.edge.v1.EdgeInferenceUnservedTarget": {
        "description": "EdgeInferenceUnservedTarget is a target of a configured inference route that connected Edge processes report\n they cannot serve.",
        "properties": {
          "partial": {
            "description": "True when some connected Edge processes can still serve it.",
            "type": "boolean"
          },
          "reason": {
            "description": "The reason field.",
            "type": "string"
          },
          "routeId": {
            "description": "The routeId field.",
            "type": "string"
          },
          "targetId": {
            "description": "The targetId field.",
            "type": "string"
          }
        },
        "title": "Edge Inference Unserved Target",
        "type": "object",
        "x-speakeasy-name-override": "EdgeInferenceUnservedTarget"
      },
      "c1.api.edge.v1.EdgePublicTrustMetadata": {
        "description": "EdgePublicTrustMetadata binds fresh public trust to the authenticated person's selected Edge.",
        "properties": {
          "appId": {
            "description": "Application authorized by the current egress grant.",
            "type": "string"
          },
          "bootstrapUri": {
            "description": "Canonical public bootstrap URL, including the selected application and Edge.",
            "type": "string"
          },
          "canonicalOrigin": {
            "description": "Trusted HTTPS origin of the bootstrap service.",
            "type": "string"
          },
          "edgeId": {
            "description": "Edge authorized by the current egress grant.",
            "type": "string"
          },
          "expiresAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "installationId": {
            "description": "Installation-owned identifier, distinct from tenant-root content identity.",
            "type": "string"
          },
          "observedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "refreshAfter": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "state": {
            "description": "Available authority or explicit withdrawal.",
            "enum": [
              "EDGE_PUBLIC_TRUST_STATE_UNSPECIFIED",
              "EDGE_PUBLIC_TRUST_STATE_AVAILABLE",
              "EDGE_PUBLIC_TRUST_STATE_WITHDRAWN"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "tenantGeneration": {
            "description": "Content identity of the exact tenant root set.",
            "type": "string"
          },
          "tenantId": {
            "description": "Canonical tenant derived from the authenticated session.",
            "type": "string"
          }
        },
        "title": "Edge Public Trust Metadata",
        "type": "object",
        "x-speakeasy-name-override": "EdgePublicTrustMetadata"
      },
      "c1.api.edge.v1.EdgeRef": {
        "description": "The EdgeRef message.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          }
        },
        "title": "Edge Ref",
        "type": "object",
        "x-speakeasy-name-override": "EdgeRef"
      },
      "c1.api.edge.v1.EdgeRollupItem": {
        "description": "EdgeRollupItem identifies one authorized Edge and what it serves.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "enabledKinds": {
            "description": "The enabledKinds field.",
            "items": {
              "enum": [
                "EDGE_CAPABILITY_KIND_UNSPECIFIED",
                "EDGE_CAPABILITY_KIND_EGRESS",
                "EDGE_CAPABILITY_KIND_INFERENCE"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "mode": {
            "description": "The mode field.",
            "enum": [
              "EDGE_MODE_UNSPECIFIED",
              "EDGE_MODE_DISABLED",
              "EDGE_MODE_OBSERVE",
              "EDGE_MODE_ENFORCE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Edge Rollup Item",
        "type": "object",
        "x-speakeasy-name-override": "EdgeRollupItem"
      },
      "c1.api.edge.v1.EdgeServiceCheckInferenceVaultAccessResponse": {
        "description": "EdgeServiceCheckInferenceVaultAccessResponse reports the same Vault grant\n check Update runs before saving an inference route.",
        "properties": {
          "granted": {
            "description": "The granted field.",
            "type": "boolean"
          },
          "openSecretEntitlementId": {
            "description": "The Vault's OpenSecret entitlement on the C1 app. Empty when reason is\n VAULT_NOT_FOUND.",
            "type": "string"
          },
          "reason": {
            "description": "The reason field.",
            "enum": [
              "EDGE_INFERENCE_VAULT_ACCESS_REASON_UNSPECIFIED",
              "EDGE_INFERENCE_VAULT_ACCESS_REASON_GRANTED",
              "EDGE_INFERENCE_VAULT_ACCESS_REASON_NOT_GRANTED",
              "EDGE_INFERENCE_VAULT_ACCESS_REASON_NO_RUNTIME_PRINCIPAL",
              "EDGE_INFERENCE_VAULT_ACCESS_REASON_VAULT_NOT_FOUND"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "runtimeServicePrincipalId": {
            "description": "The Edge's runtime service principal. Empty when reason is\n NO_RUNTIME_PRINCIPAL.",
            "type": "string"
          }
        },
        "title": "Edge Service Check Inference Vault Access Response",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServiceCheckInferenceVaultAccessResponse"
      },
      "c1.api.edge.v1.EdgeServiceCreateRequestInput": {
        "description": "EdgeServiceCreateRequest creates an Edge for an app. The new Edge starts\n disabled and denies every capability until enabled.",
        "properties": {
          "displayName": {
            "description": "Display name for the Edge. Defaults to \"Edge\" when empty.",
            "type": "string"
          },
          "egressTls": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.EdgeTlsSelection"
              },
              {
                "type": "null"
              }
            ]
          },
          "enabledKinds": {
            "description": "The capabilities this Edge will serve. Each mints its own entitlement\n stack; there is no default.",
            "items": {
              "enum": [
                "EDGE_CAPABILITY_KIND_UNSPECIFIED",
                "EDGE_CAPABILITY_KIND_EGRESS",
                "EDGE_CAPABILITY_KIND_INFERENCE"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Edge Service Create Request",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServiceCreateRequest"
      },
      "c1.api.edge.v1.EdgeServiceCreateResponse": {
        "description": "EdgeServiceCreateResponse returns the newly minted Edge,\n including its capability entitlement IDs.",
        "properties": {
          "edge": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.Edge"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Edge Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServiceCreateResponse"
      },
      "c1.api.edge.v1.EdgeServiceDeleteRequestInput": {
        "description": "EdgeServiceDeleteRequest deletes the Edge for an app.",
        "title": "Edge Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServiceDeleteRequest"
      },
      "c1.api.edge.v1.EdgeServiceDeleteResponse": {
        "description": "EdgeServiceDeleteResponse confirms deletion. The Edge's entitlement\n stack cascade-deletes; a replacement Edge mints an all-new stack.",
        "title": "Edge Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServiceDeleteResponse"
      },
      "c1.api.edge.v1.EdgeServiceGetAuditInclusionProofResponse": {
        "description": "The EdgeServiceGetAuditInclusionProofResponse message.",
        "properties": {
          "proof": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.TBAuditInclusionProof"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Edge Service Get Audit Inclusion Proof Response",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServiceGetAuditInclusionProofResponse"
      },
      "c1.api.edge.v1.EdgeServiceGetEgressTrafficEventResponse": {
        "description": "The EdgeServiceGetEgressTrafficEventResponse message.",
        "properties": {
          "event": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.TBTrafficEvent"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Edge Service Get Egress Traffic Event Response",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServiceGetEgressTrafficEventResponse"
      },
      "c1.api.edge.v1.EdgeServiceGetEgressTrafficSummaryResponse": {
        "description": "The EdgeServiceGetEgressTrafficSummaryResponse message.",
        "properties": {
          "agentKindCounts": {
            "description": "Distinct source_principal per source_principal_kind.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.AgentKindCount"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "allowedEvents": {
            "description": "The allowedEvents field.",
            "format": "uint64",
            "type": "string"
          },
          "deniedEvents": {
            "description": "The deniedEvents field.",
            "format": "uint64",
            "type": "string"
          },
          "distinctAgentCount": {
            "description": "The distinctAgentCount field.",
            "format": "uint64",
            "type": "string"
          },
          "distinctDestinationCount": {
            "description": "uniqExact(dest_host) over the window, excluding empty dest_host.",
            "format": "int64",
            "type": "string"
          },
          "distinctToolCount": {
            "description": "The distinctToolCount field.",
            "format": "uint64",
            "type": "string"
          },
          "fallbackAgentCount": {
            "description": "Distinct source_principal with at least one row whose verdict resolved\n via the fail-closed default rather than an explicit policy match --\n the \"policy coverage\" KPI: agents Edge saw but has no rule for yet.",
            "format": "int64",
            "type": "string"
          },
          "p95LatencyMs": {
            "description": "Approximate 95th percentile of counter_latency_ms over the window\n (ClickHouse quantile(0.95)); 0 when the window has no rows.",
            "format": "uint64",
            "type": "string"
          },
          "series": {
            "description": "The series field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.TBTrafficSummaryBucket"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "totalEvents": {
            "description": "The totalEvents field.",
            "format": "uint64",
            "type": "string"
          },
          "totalRequestBytes": {
            "description": "The totalRequestBytes field.",
            "format": "uint64",
            "type": "string"
          },
          "totalResponseBytes": {
            "description": "The totalResponseBytes field.",
            "format": "uint64",
            "type": "string"
          },
          "unspecifiedEvents": {
            "description": "The unspecifiedEvents field.",
            "format": "uint64",
            "type": "string"
          }
        },
        "title": "Edge Service Get Egress Traffic Summary Response",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServiceGetEgressTrafficSummaryResponse"
      },
      "c1.api.edge.v1.EdgeServiceGetEgressTrafficSummaryRollupResponse": {
        "description": "The EdgeServiceGetEgressTrafficSummaryRollupResponse message.",
        "properties": {
          "agentKindCounts": {
            "description": "Distinct source_principal per source_principal_kind.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.AgentKindCount"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "allowedEvents": {
            "description": "The allowedEvents field.",
            "format": "uint64",
            "type": "string"
          },
          "deniedEvents": {
            "description": "The deniedEvents field.",
            "format": "uint64",
            "type": "string"
          },
          "distinctAgentCount": {
            "description": "The distinctAgentCount field.",
            "format": "uint64",
            "type": "string"
          },
          "distinctDestinationCount": {
            "description": "uniqExact(dest_host) over the window, excluding empty dest_host.",
            "format": "int64",
            "type": "string"
          },
          "distinctToolCount": {
            "description": "The distinctToolCount field.",
            "format": "uint64",
            "type": "string"
          },
          "edgeCount": {
            "description": "Number of authorized Edges included. Zero means the caller manages no\n Edges, as distinct from Edges that have no traffic yet.",
            "format": "uint32",
            "type": "integer"
          },
          "fallbackAgentCount": {
            "description": "Distinct source_principal with at least one row whose verdict resolved\n via the fail-closed default rather than an explicit policy match.",
            "format": "int64",
            "type": "string"
          },
          "series": {
            "description": "The series field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.TBTrafficSummaryBucket"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "totalEvents": {
            "description": "The totalEvents field.",
            "format": "uint64",
            "type": "string"
          },
          "totalRequestBytes": {
            "description": "The totalRequestBytes field.",
            "format": "uint64",
            "type": "string"
          },
          "totalResponseBytes": {
            "description": "The totalResponseBytes field.",
            "format": "uint64",
            "type": "string"
          },
          "unspecifiedEvents": {
            "description": "The unspecifiedEvents field.",
            "format": "uint64",
            "type": "string"
          }
        },
        "title": "Edge Service Get Egress Traffic Summary Rollup Response",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServiceGetEgressTrafficSummaryRollupResponse"
      },
      "c1.api.edge.v1.EdgeServiceGetInferenceUsageAttributionResponse": {
        "description": "The EdgeServiceGetInferenceUsageAttributionResponse message.",
        "properties": {
          "rows": {
            "description": "Ordered by (input_tokens + output_tokens) descending, limited to\n page_size.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.TBUsageAttributionRow"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Edge Service Get Inference Usage Attribution Response",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServiceGetInferenceUsageAttributionResponse"
      },
      "c1.api.edge.v1.EdgeServiceGetInferenceUsageAttributionRollupResponse": {
        "description": "The EdgeServiceGetInferenceUsageAttributionRollupResponse message.",
        "properties": {
          "edgeCount": {
            "description": "Number of authorized Edges included. Zero means the caller manages no\n Edges, as distinct from Edges that have no traffic yet.",
            "format": "uint32",
            "type": "integer"
          },
          "rows": {
            "description": "Ordered by (input_tokens + output_tokens) descending, limited to\n page_size.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.TBUsageAttributionRow"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Edge Service Get Inference Usage Attribution Rollup Response",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServiceGetInferenceUsageAttributionRollupResponse"
      },
      "c1.api.edge.v1.EdgeServiceGetInferenceUsageSummaryResponse": {
        "description": "The EdgeServiceGetInferenceUsageSummaryResponse message.",
        "properties": {
          "authRejectedCount": {
            "description": "See TBUsageSummary.auth_rejected_count and auth_rejected_total.",
            "format": "uint64",
            "type": "string"
          },
          "authRejectedTotal": {
            "description": "The authRejectedTotal field.",
            "format": "uint64",
            "type": "string"
          },
          "modelBreakdown": {
            "description": "The modelBreakdown field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.TBUsageModelBreakdown"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "series": {
            "description": "The series field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.TBUsageSummaryBucket"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "totalCacheReadTokens": {
            "description": "The totalCacheReadTokens field.",
            "format": "uint64",
            "type": "string"
          },
          "totalCacheWriteTokens": {
            "description": "The totalCacheWriteTokens field.",
            "format": "uint64",
            "type": "string"
          },
          "totalInputTokens": {
            "description": "The totalInputTokens field.",
            "format": "uint64",
            "type": "string"
          },
          "totalOutputTokens": {
            "description": "The totalOutputTokens field.",
            "format": "uint64",
            "type": "string"
          },
          "totalRequests": {
            "description": "The totalRequests field.",
            "format": "uint64",
            "type": "string"
          }
        },
        "title": "Edge Service Get Inference Usage Summary Response",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServiceGetInferenceUsageSummaryResponse"
      },
      "c1.api.edge.v1.EdgeServiceGetInferenceUsageSummaryRollupResponse": {
        "description": "The EdgeServiceGetInferenceUsageSummaryRollupResponse message.",
        "properties": {
          "authRejectedCount": {
            "description": "See TBUsageSummary.auth_rejected_count and auth_rejected_total.",
            "format": "uint64",
            "type": "string"
          },
          "authRejectedTotal": {
            "description": "The authRejectedTotal field.",
            "format": "uint64",
            "type": "string"
          },
          "edgeCount": {
            "description": "Number of authorized Edges included. Zero means the caller manages no\n Edges, as distinct from Edges that have no traffic yet.",
            "format": "uint32",
            "type": "integer"
          },
          "modelBreakdown": {
            "description": "The modelBreakdown field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.TBUsageModelBreakdown"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "series": {
            "description": "The series field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.TBUsageSummaryBucket"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "totalCacheReadTokens": {
            "description": "The totalCacheReadTokens field.",
            "format": "uint64",
            "type": "string"
          },
          "totalCacheWriteTokens": {
            "description": "The totalCacheWriteTokens field.",
            "format": "uint64",
            "type": "string"
          },
          "totalInputTokens": {
            "description": "The totalInputTokens field.",
            "format": "uint64",
            "type": "string"
          },
          "totalOutputTokens": {
            "description": "The totalOutputTokens field.",
            "format": "uint64",
            "type": "string"
          },
          "totalRequests": {
            "description": "The totalRequests field.",
            "format": "uint64",
            "type": "string"
          }
        },
        "title": "Edge Service Get Inference Usage Summary Rollup Response",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServiceGetInferenceUsageSummaryRollupResponse"
      },
      "c1.api.edge.v1.EdgeServiceGetPublicTrustResponse": {
        "description": "EdgeServiceGetPublicTrustResponse contains public metadata and no signing material.",
        "properties": {
          "metadata": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.EdgePublicTrustMetadata"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Edge Service Get Public Trust Response",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServiceGetPublicTrustResponse"
      },
      "c1.api.edge.v1.EdgeServiceGetResponse": {
        "description": "EdgeServiceGetResponse returns the requested Edge.",
        "properties": {
          "edge": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.Edge"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Edge Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServiceGetResponse"
      },
      "c1.api.edge.v1.EdgeServiceListAuditAttestationKeysResponse": {
        "description": "The EdgeServiceListAuditAttestationKeysResponse message.",
        "properties": {
          "keys": {
            "description": "The keys field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.TBAuditAttestationKey"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Edge Service List Audit Attestation Keys Response",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServiceListAuditAttestationKeysResponse"
      },
      "c1.api.edge.v1.EdgeServiceListAuditAttestationManifestsResponse": {
        "description": "The EdgeServiceListAuditAttestationManifestsResponse message.",
        "properties": {
          "manifests": {
            "description": "The manifests field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.TBAuditAttestationManifest"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Edge Service List Audit Attestation Manifests Response",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServiceListAuditAttestationManifestsResponse"
      },
      "c1.api.edge.v1.EdgeServiceListEdgesRollupResponse": {
        "description": "The EdgeServiceListEdgesRollupResponse message.",
        "properties": {
          "edges": {
            "description": "The edges field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.EdgeRollupItem"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Edge Service List Edges Rollup Response",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServiceListEdgesRollupResponse"
      },
      "c1.api.edge.v1.EdgeServiceListEgressDenialSummaryResponse": {
        "description": "The EdgeServiceListEgressDenialSummaryResponse message.",
        "properties": {
          "groups": {
            "description": "Ordered by count descending.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.TBEgressDenialGroup"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "truncated": {
            "description": "True when more groups matched than were returned; narrow the filters or\n the window.",
            "type": "boolean"
          }
        },
        "title": "Edge Service List Egress Denial Summary Response",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServiceListEgressDenialSummaryResponse"
      },
      "c1.api.edge.v1.EdgeServiceListEgressRuleEntitlementIssuesResponse": {
        "description": "The EdgeServiceListEgressRuleEntitlementIssuesResponse message.",
        "properties": {
          "issues": {
            "description": "One entry per saved Allow or Deny rule whose entitlement does not\n resolve, in rule order. Rules naming more distinct entitlements than the\n evaluation cap are not checked past it.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.EdgeEgressRuleEntitlementIssue"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Edge Service List Egress Rule Entitlement Issues Response",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServiceListEgressRuleEntitlementIssuesResponse"
      },
      "c1.api.edge.v1.EdgeServiceListEgressTopAgentsResponse": {
        "description": "The EdgeServiceListEgressTopAgentsResponse message.",
        "properties": {
          "agents": {
            "description": "Ordered by call_count descending, limited to page_size. No pagination\n cursor -- this is a fixed top-N, not a full list.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.TBTopAgent"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Edge Service List Egress Top Agents Response",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServiceListEgressTopAgentsResponse"
      },
      "c1.api.edge.v1.EdgeServiceListEgressTopAgentsRollupResponse": {
        "description": "The EdgeServiceListEgressTopAgentsRollupResponse message.",
        "properties": {
          "agents": {
            "description": "Ordered by call_count descending, limited to page_size. No pagination\n cursor -- this is a fixed top-N, not a full list.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.TBTopAgent"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "edgeCount": {
            "description": "Number of authorized Edges included. Zero means the caller manages no\n Edges, as distinct from Edges that have no traffic yet.",
            "format": "uint32",
            "type": "integer"
          }
        },
        "title": "Edge Service List Egress Top Agents Rollup Response",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServiceListEgressTopAgentsRollupResponse"
      },
      "c1.api.edge.v1.EdgeServiceListEgressTopDestinationsResponse": {
        "description": "The EdgeServiceListEgressTopDestinationsResponse message.",
        "properties": {
          "destinations": {
            "description": "Ordered by call_count descending, limited to limit. No pagination\n cursor -- this is a fixed top-N, not a full list.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.TBTopDestination"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "distinctDestinationCount": {
            "description": "uniqExact(dest_host) over the whole window, unaffected by any request\n filter -- lets the UI show \"top N of distinct_destination_count\n destinations\".",
            "format": "int64",
            "type": "string"
          },
          "matchingDestinationCount": {
            "description": "Count of destinations matching the request's filters (host_contains,\n verdict, principal_kind, blocked_only), independent of limit/offset --\n the paging total for the Dense table.",
            "format": "int64",
            "type": "string"
          }
        },
        "title": "Edge Service List Egress Top Destinations Response",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServiceListEgressTopDestinationsResponse"
      },
      "c1.api.edge.v1.EdgeServiceListEgressTopToolsRollupResponse": {
        "description": "The EdgeServiceListEgressTopToolsRollupResponse message.",
        "properties": {
          "edgeCount": {
            "description": "Number of authorized Edges included. Zero means the caller manages no\n Edges, as distinct from Edges that have no traffic yet.",
            "format": "uint32",
            "type": "integer"
          },
          "tools": {
            "description": "Ordered by call_count descending, limited to page_size. No pagination\n cursor -- this is a fixed top-N, not a full list.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.TBTopTool"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Edge Service List Egress Top Tools Rollup Response",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServiceListEgressTopToolsRollupResponse"
      },
      "c1.api.edge.v1.EdgeServiceListEgressTrafficEventsResponse": {
        "description": "The EdgeServiceListEgressTrafficEventsResponse message.",
        "properties": {
          "events": {
            "description": "The events field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.TBTrafficEvent"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Edge Service List Egress Traffic Events Response",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServiceListEgressTrafficEventsResponse"
      },
      "c1.api.edge.v1.EdgeServiceListInferenceCatalogResponse": {
        "description": "EdgeServiceListInferenceCatalogResponse contains every catalog entry.",
        "properties": {
          "capabilitySummary": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.EdgeCapabilitySummary"
              },
              {
                "type": "null"
              }
            ]
          },
          "entries": {
            "description": "The entries field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.EdgeInferenceCatalogEntry"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "families": {
            "description": "C1's registered models grouped by family, with the ways an Edge can serve each.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.EdgeInferenceModelFamily"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "tiers": {
            "description": "The model each C1 tier currently uses for the caller's tenant. A tier with no model is left out.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.EdgeInferenceTierOption"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Edge Service List Inference Catalog Response",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServiceListInferenceCatalogResponse"
      },
      "c1.api.edge.v1.EdgeServiceListInferenceRoutesResponse": {
        "description": "EdgeServiceListInferenceRoutesResponse contains configured route metadata\n for an application.",
        "properties": {
          "capabilitySummary": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.EdgeCapabilitySummary"
              },
              {
                "type": "null"
              }
            ]
          },
          "routes": {
            "description": "The routes field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.EdgeInferenceRouteOption"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "unservedTargets": {
            "description": "Targets of this app's routes that connected Edge processes cannot serve. Empty when none has reported.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.EdgeInferenceUnservedTarget"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Edge Service List Inference Routes Response",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServiceListInferenceRoutesResponse"
      },
      "c1.api.edge.v1.EdgeServiceListInferenceTopAgentsResponse": {
        "description": "The EdgeServiceListInferenceTopAgentsResponse message.",
        "properties": {
          "agents": {
            "description": "Ordered by call_count descending, limited to page_size. No pagination\n cursor -- this is a fixed top-N, not a full list.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.TBTopAgent"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Edge Service List Inference Top Agents Response",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServiceListInferenceTopAgentsResponse"
      },
      "c1.api.edge.v1.EdgeServiceListInferenceTopToolsResponse": {
        "description": "The EdgeServiceListInferenceTopToolsResponse message.",
        "properties": {
          "tools": {
            "description": "Ordered by call_count descending, limited to page_size. No pagination\n cursor -- this is a fixed top-N, not a full list.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.TBTopTool"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Edge Service List Inference Top Tools Response",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServiceListInferenceTopToolsResponse"
      },
      "c1.api.edge.v1.EdgeServiceListInferenceTrafficEventsResponse": {
        "description": "The EdgeServiceListInferenceTrafficEventsResponse message.",
        "properties": {
          "events": {
            "description": "The events field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.TBTrafficEvent"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Edge Service List Inference Traffic Events Response",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServiceListInferenceTrafficEventsResponse"
      },
      "c1.api.edge.v1.EdgeServiceListResponse": {
        "description": "EdgeServiceListResponse lists Edges for an app.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.Edge"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token for next page.",
            "type": "string"
          }
        },
        "title": "Edge Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServiceListResponse"
      },
      "c1.api.edge.v1.EdgeServiceListUnattributedInferenceTrafficEventsResponse": {
        "description": "The EdgeServiceListUnattributedInferenceTrafficEventsResponse message.",
        "properties": {
          "events": {
            "description": "The events field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.TBTrafficEvent"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Edge Service List Unattributed Inference Traffic Events Response",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServiceListUnattributedInferenceTrafficEventsResponse"
      },
      "c1.api.edge.v1.EdgeServiceListUsableEdgesResponse": {
        "description": "EdgeServiceListUsableEdgesResponse contains currently authorized connection targets.",
        "properties": {
          "edges": {
            "description": "Usable Edges ordered by application identifier, then Edge identifier.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.UsableEdge"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Continue until this token is empty, including after an empty page.\n Grants and configuration are evaluated live on each page, not snapshotted.",
            "type": "string"
          }
        },
        "title": "Edge Service List Usable Edges Response",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServiceListUsableEdgesResponse"
      },
      "c1.api.edge.v1.EdgeServicePreviewEgressHostDecisionRequestInput": {
        "description": "EdgeServicePreviewEgressHostDecisionRequest asks what blocking or allowing\n one host for every user would do. Nothing is saved.",
        "properties": {
          "draftRules": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.EdgeEgressRuleList"
              },
              {
                "type": "null"
              }
            ]
          },
          "effect": {
            "description": "The effect field.",
            "enum": [
              "EDGE_EGRESS_EFFECT_UNSPECIFIED",
              "EDGE_EGRESS_EFFECT_ALLOW",
              "EDGE_EGRESS_EFFECT_DENY",
              "EDGE_EGRESS_EFFECT_AUTHZEN"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "host": {
            "description": "The host to block or allow.",
            "type": "string"
          }
        },
        "title": "Edge Service Preview Egress Host Decision Request",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServicePreviewEgressHostDecisionRequest"
      },
      "c1.api.edge.v1.EdgeServicePreviewEgressHostDecisionResponse": {
        "description": "EdgeServicePreviewEgressHostDecisionResponse reports what the decision\n would do and the rule list that results.",
        "properties": {
          "after": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.EdgeEgressHostVerdict"
              },
              {
                "type": "null"
              }
            ]
          },
          "before": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.EdgeEgressHostVerdict"
              },
              {
                "type": "null"
              }
            ]
          },
          "canonicalHost": {
            "description": "The host after canonicalization; the new rule's endpoint_pattern.",
            "type": "string"
          },
          "check": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.EdgeEgressRuleListCheck"
              },
              {
                "type": "null"
              }
            ]
          },
          "newRuleIndex": {
            "description": "Zero-based index of the new rule in resulting_rules, or -1 when no rule\n was added.",
            "format": "int32",
            "type": "integer"
          },
          "overridesRuleIndex": {
            "description": "The rule the new one is placed before because it also matches the host,\n as an index in resulting_rules, or -1.",
            "format": "int32",
            "type": "integer"
          },
          "replacedEffect": {
            "description": "The effect of an every-user rule for exactly this host that the decision\n replaced, or unspecified when none was.",
            "enum": [
              "EDGE_EGRESS_EFFECT_UNSPECIFIED",
              "EDGE_EGRESS_EFFECT_ALLOW",
              "EDGE_EGRESS_EFFECT_DENY",
              "EDGE_EGRESS_EFFECT_AUTHZEN"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "resultingRules": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.EdgeEgressRuleList"
              },
              {
                "type": "null"
              }
            ]
          },
          "startsDefaultDeny": {
            "description": "The Edge never configured egress rules, so saving resulting_rules switches\n it to denying every host no rule allows.",
            "type": "boolean"
          },
          "status": {
            "description": "The status field.",
            "enum": [
              "STATUS_UNSPECIFIED",
              "STATUS_READY",
              "STATUS_ALREADY_DECIDED",
              "STATUS_INVALID_HOST",
              "STATUS_SSRF_BLOCKED",
              "STATUS_UNRESOLVED_DENY_RULE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "warnings": {
            "description": "Concerns about the decision that do not stop it from being saved, e.g. an\n Allow that goes before an AUTHZEN rule and so bypasses its server.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.EdgeEgressRuleWarning"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Edge Service Preview Egress Host Decision Response",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServicePreviewEgressHostDecisionResponse"
      },
      "c1.api.edge.v1.EdgeServicePreviewEgressRulesUpdateRequestInput": {
        "description": "EdgeServicePreviewEgressRulesUpdateRequest asks what saving a rule list\n would do: whether Update accepts it, and how each host's verdict changes.\n Nothing is saved.",
        "properties": {
          "hosts": {
            "description": "Hosts to compare before and after, in the order results are returned.\n Empty runs only the save check.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "principalUserId": {
            "description": "The C1 user to evaluate as. Empty: rules naming a user or an entitlement\n report EDGE_EGRESS_PRINCIPAL_MATCH_UNKNOWN and never decide the verdict.",
            "type": "string"
          },
          "proposedRules": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.EdgeEgressRuleList"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Edge Service Preview Egress Rules Update Request",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServicePreviewEgressRulesUpdateRequest"
      },
      "c1.api.edge.v1.EdgeServicePreviewEgressRulesUpdateResponse": {
        "description": "EdgeServicePreviewEgressRulesUpdateResponse reports the save check and each\n host's verdict before and after the change.",
        "properties": {
          "check": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.EdgeEgressRuleListCheck"
              },
              {
                "type": "null"
              }
            ]
          },
          "results": {
            "description": "One result per requested host, in request order.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.EdgeEgressHostChange"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "startsDefaultDeny": {
            "description": "The Edge never configured egress rules, so saving any list, even an\n empty one, switches it to denying every host no rule allows.",
            "type": "boolean"
          }
        },
        "title": "Edge Service Preview Egress Rules Update Response",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServicePreviewEgressRulesUpdateResponse"
      },
      "c1.api.edge.v1.EdgeServiceUpdateRequestInput": {
        "description": "EdgeServiceUpdateRequest updates an existing Edge via update_mask. Editable\n paths: mode, enabled_kinds, egress_rules, credential_injections,\n inference_routes, allow_inference_bearer_tokens, egress_tls. The legacy inference mask\n may clear or replace one graph.",
        "properties": {
          "edge": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.Edge"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Edge Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServiceUpdateRequest"
      },
      "c1.api.edge.v1.EdgeServiceUpdateResponse": {
        "description": "EdgeServiceUpdateResponse returns the updated Edge.",
        "properties": {
          "edge": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.Edge"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Edge Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "EdgeServiceUpdateResponse"
      },
      "c1.api.edge.v1.EdgeTlsSelection": {
        "description": "EdgeTlsSelection chooses the TLS interception material for an Edge's\n egress proxy.\n\nThis message contains a oneof named selection. Only a single field of the following list may be set at a time:\n  - builtin\n",
        "properties": {
          "builtin": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.EdgeBuiltinTlsConfig"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Edge Tls Selection",
        "type": "object",
        "x-speakeasy-name-override": "EdgeTlsSelection"
      },
      "c1.api.edge.v1.EdgeTokenResources": {
        "description": "EdgeTokenResources names the resource URI for each supported Edge service.\n A field is empty when its capability is not in enabled_kinds.",
        "properties": {
          "egress": {
            "description": "Resource URI used with the egress.connect scope.",
            "type": "string"
          },
          "inference": {
            "description": "Resource URI used with the inference.models.read / inference.invoke scopes.",
            "type": "string"
          }
        },
        "title": "Edge Token Resources",
        "type": "object",
        "x-speakeasy-name-override": "EdgeTokenResources"
      },
      "c1.api.edge.v1.TBAuditAttestationKey": {
        "description": "TBAuditAttestationKey is a trusted manifest signing key.",
        "properties": {
          "keyId": {
            "description": "First 16 bytes of the SHA-256 of the raw public key, hex.",
            "type": "string"
          },
          "publicKey": {
            "description": "Raw Ed25519 public key, 32 bytes, hex.",
            "type": "string"
          },
          "status": {
            "description": "The status field.",
            "enum": [
              "TB_AUDIT_ATTESTATION_KEY_STATUS_UNSPECIFIED",
              "TB_AUDIT_ATTESTATION_KEY_STATUS_CURRENT",
              "TB_AUDIT_ATTESTATION_KEY_STATUS_PREVIOUS"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Tb Audit Attestation Key",
        "type": "object",
        "x-speakeasy-name-override": "TBAuditAttestationKey"
      },
      "c1.api.edge.v1.TBAuditAttestationManifest": {
        "description": "TBAuditAttestationManifest is one signed batch manifest of the tenant's\n tamper-evident audit log (Time Bandit warehouse attestation). It carries only\n the manifest's signed fields, so an auditor can rebuild the signed bytes and\n verify the Ed25519 signature offline with the key listed under key_id.",
        "properties": {
          "batchId": {
            "description": "The batchId field.",
            "type": "string"
          },
          "canon": {
            "description": "Canonicalization of the row bytes the leaves hash, for example\n tb-audit-canon-ch-v1.",
            "type": "string"
          },
          "chainSeq": {
            "description": "Zero-based, contiguous position of this batch in its chain.",
            "format": "uint64",
            "type": "string"
          },
          "firstEventTime": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "instanceId": {
            "description": "The instanceId field.",
            "type": "string"
          },
          "keyId": {
            "description": "The keyId field.",
            "type": "string"
          },
          "lastEventTime": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "originId": {
            "description": "The chain is (tenant_id, origin_id, instance_id).",
            "type": "string"
          },
          "prevRoot": {
            "description": "The previous batch's root in this chain, or 64 zeros for the first.",
            "type": "string"
          },
          "root": {
            "description": "RFC 6962 Merkle root of the batch, hex.",
            "type": "string"
          },
          "rowCount": {
            "description": "The rowCount field.",
            "format": "uint64",
            "type": "string"
          },
          "signature": {
            "description": "Ed25519 signature over the domain-separated manifest encoding, hex.",
            "type": "string"
          },
          "tenantId": {
            "description": "The tenantId field.",
            "type": "string"
          },
          "version": {
            "description": "The version field.",
            "format": "uint32",
            "type": "integer"
          }
        },
        "title": "Tb Audit Attestation Manifest",
        "type": "object",
        "x-speakeasy-name-override": "TBAuditAttestationManifest"
      },
      "c1.api.edge.v1.TBAuditInclusionProof": {
        "description": "TBAuditInclusionProof proves one audit row belongs to a signed batch. The\n service checks the path against the manifest root before returning it. It\n carries no row content: auditors verify the row against leaf_hash offline\n with `tb audit verify-proof`.",
        "properties": {
          "leafHash": {
            "description": "The row's stored RFC 6962 leaf hash, hex.",
            "type": "string"
          },
          "leafIndex": {
            "description": "Index of the row's leaf in its batch.",
            "format": "uint64",
            "type": "string"
          },
          "manifest": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.TBAuditAttestationManifest"
              },
              {
                "type": "null"
              }
            ]
          },
          "path": {
            "description": "RFC 6962 audit path, leaf to root, hex.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Tb Audit Inclusion Proof",
        "type": "object",
        "x-speakeasy-name-override": "TBAuditInclusionProof"
      },
      "c1.api.edge.v1.TBEgressDenialGroup": {
        "description": "TBEgressDenialGroup is one group of ListEgressDenialSummary.",
        "properties": {
          "count": {
            "description": "The count field.",
            "format": "int64",
            "type": "string"
          },
          "destHost": {
            "description": "The destHost field.",
            "type": "string"
          },
          "egressEnforcementMode": {
            "description": "The egressEnforcementMode field.",
            "type": "string"
          },
          "egressPolicyVerdict": {
            "description": "The egressPolicyVerdict field.",
            "type": "string"
          },
          "firstSeen": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "lastSeen": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "outcome": {
            "description": "DENIED, WOULD_DENY or ALLOWED. A flow an observe-mode Edge's policy\n denied but a later check also denied is DENIED.",
            "enum": [
              "TB_EGRESS_FLOW_OUTCOME_UNSPECIFIED",
              "TB_EGRESS_FLOW_OUTCOME_DENIED",
              "TB_EGRESS_FLOW_OUTCOME_WOULD_DENY",
              "TB_EGRESS_FLOW_OUTCOME_ALLOWED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "principalUserId": {
            "description": "The C1 user source_principal resolves to; see TBTrafficEvent.",
            "type": "string"
          },
          "reasonClass": {
            "description": "The flow's denial family: rule_deny, ssrf, body_cap, encoding,\n content:\u003cKind\u003e[+\u003cKind\u003e...] (blocking credential kinds),\n content:response, or other.",
            "type": "string"
          },
          "sampleEventId": {
            "description": "The newest flow in the group; pass it with sample_event_time to\n GetEgressTrafficEvent.",
            "type": "string"
          },
          "sampleEventTime": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "sourcePrincipal": {
            "description": "The sourcePrincipal field.",
            "type": "string"
          },
          "sourcePrincipalKind": {
            "description": "The sourcePrincipalKind field.",
            "type": "string"
          }
        },
        "title": "Tb Egress Denial Group",
        "type": "object",
        "x-speakeasy-name-override": "TBEgressDenialGroup"
      },
      "c1.api.edge.v1.TBFederatedSession": {
        "description": "TBFederatedSession is TB's secret-free hosted OAuth session lineage for a\n cryptographically attested call (see AuditFederatedSession in the TB\n sink). grant_jti_hash and proof_key_thumbprint are a hash and a public key\n thumbprint, not secrets.",
        "properties": {
          "clientId": {
            "description": "The clientId field.",
            "type": "string"
          },
          "grantJtiHash": {
            "description": "The grantJtiHash field.",
            "type": "string"
          },
          "issuerName": {
            "description": "The issuerName field.",
            "type": "string"
          },
          "proofKeyThumbprint": {
            "description": "The proofKeyThumbprint field.",
            "type": "string"
          },
          "resource": {
            "description": "The resource field.",
            "type": "string"
          },
          "scopes": {
            "description": "The scopes field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "sessionId": {
            "description": "The sessionId field.",
            "type": "string"
          },
          "tenantId": {
            "description": "The tenantId field.",
            "type": "string"
          }
        },
        "title": "Tb Federated Session",
        "type": "object",
        "x-speakeasy-name-override": "TBFederatedSession"
      },
      "c1.api.edge.v1.TBTopAgent": {
        "description": "TBTopAgent is one source_principal group.",
        "properties": {
          "allowedCount": {
            "description": "The allowedCount field.",
            "format": "uint64",
            "type": "string"
          },
          "callCount": {
            "description": "The callCount field.",
            "format": "uint64",
            "type": "string"
          },
          "deniedCount": {
            "description": "The deniedCount field.",
            "format": "uint64",
            "type": "string"
          },
          "requestBytes": {
            "description": "request_bytes is sum(counter_request_bytes) -- bytes the agent sent out.",
            "format": "uint64",
            "type": "string"
          },
          "responseBytes": {
            "description": "The responseBytes field.",
            "format": "uint64",
            "type": "string"
          },
          "sourcePrincipal": {
            "description": "The sourcePrincipal field.",
            "type": "string"
          },
          "sourcePrincipalKind": {
            "description": "The sourcePrincipalKind field.",
            "type": "string"
          }
        },
        "title": "Tb Top Agent",
        "type": "object",
        "x-speakeasy-name-override": "TBTopAgent"
      },
      "c1.api.edge.v1.TBTopDestination": {
        "description": "TBTopDestination is one dest_host group, excluding rows with an empty\n dest_host (non-egress or unresolved calls).",
        "properties": {
          "allowedCount": {
            "description": "The allowedCount field.",
            "format": "int64",
            "type": "string"
          },
          "callCount": {
            "description": "The callCount field.",
            "format": "int64",
            "type": "string"
          },
          "deniedCount": {
            "description": "The deniedCount field.",
            "format": "int64",
            "type": "string"
          },
          "destHost": {
            "description": "The destHost field.",
            "type": "string"
          },
          "distinctAgentCount": {
            "description": "The distinctAgentCount field.",
            "format": "int64",
            "type": "string"
          },
          "requestBytes": {
            "description": "The requestBytes field.",
            "format": "int64",
            "type": "string"
          },
          "responseBytes": {
            "description": "The responseBytes field.",
            "format": "int64",
            "type": "string"
          },
          "trend": {
            "description": "Zero-filled call_count series of length trend_buckets, oldest first.\n Only populated when the request set include_trend.",
            "items": {
              "format": "int64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "unspecifiedCount": {
            "description": "The unspecifiedCount field.",
            "format": "int64",
            "type": "string"
          }
        },
        "title": "Tb Top Destination",
        "type": "object",
        "x-speakeasy-name-override": "TBTopDestination"
      },
      "c1.api.edge.v1.TBTopTool": {
        "description": "TBTopTool is one (application_name, application_operation) group.",
        "properties": {
          "allowedCount": {
            "description": "The allowedCount field.",
            "format": "uint64",
            "type": "string"
          },
          "callCount": {
            "description": "The callCount field.",
            "format": "uint64",
            "type": "string"
          },
          "deniedCount": {
            "description": "The deniedCount field.",
            "format": "uint64",
            "type": "string"
          },
          "distinctAgentCount": {
            "description": "The distinctAgentCount field.",
            "format": "uint64",
            "type": "string"
          },
          "toolName": {
            "description": "The toolName field.",
            "type": "string"
          },
          "toolOperation": {
            "description": "The toolOperation field.",
            "type": "string"
          },
          "totalResponseBytes": {
            "description": "The totalResponseBytes field.",
            "format": "uint64",
            "type": "string"
          }
        },
        "title": "Tb Top Tool",
        "type": "object",
        "x-speakeasy-name-override": "TBTopTool"
      },
      "c1.api.edge.v1.TBTrafficEvent": {
        "description": "TBTrafficEvent is a curated projection of one ClickHouse audit row -- only\n the columns the Traffic UI needs. dest_host/dest_port/request_authority\n (egress-shaped) and model_route/model_target/logical_model (LLM-shaped)\n are separate raw fields rather than one pre-formatted \"target\" string,\n since which fields apply depends on `capability` and that formatting\n choice belongs to the UI layer, not this API.",
        "properties": {
          "applicationOperation": {
            "description": "The HTTP operation the Edge listener served for this row, e.g.\n \"GET /v1/models\". Lets a row with no upstream dest_host (a request the\n Edge answered locally) still say what it was. Empty on rows written before\n Time Bandit recorded it and on non-application flows.",
            "type": "string"
          },
          "attemptOrdinal": {
            "description": "One-based provider attempt; 0 on the listener-flow row. A retried call\n bills once per attempt.",
            "format": "uint64",
            "type": "string"
          },
          "authRejectionReason": {
            "description": "Why authentication rejected the request. Set only when outcome is\n AUTH_REJECTED.",
            "enum": [
              "TB_AUTH_REJECTION_REASON_UNSPECIFIED",
              "TB_AUTH_REJECTION_REASON_MISSING_CREDENTIAL",
              "TB_AUTH_REJECTION_REASON_INVALID_TOKEN",
              "TB_AUTH_REJECTION_REASON_EXPIRED_TOKEN",
              "TB_AUTH_REJECTION_REASON_UNKNOWN_TENANT",
              "TB_AUTH_REJECTION_REASON_AUDIENCE_MISMATCH",
              "TB_AUTH_REJECTION_REASON_INSUFFICIENT_SCOPE",
              "TB_AUTH_REJECTION_REASON_INVALID_PROOF",
              "TB_AUTH_REJECTION_REASON_CREDENTIAL_UNAVAILABLE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "authRejectionSourceClass": {
            "description": "Set only when outcome is AUTH_REJECTED. Class of the peer address.",
            "enum": [
              "TB_AUTH_REJECTION_SOURCE_CLASS_UNSPECIFIED",
              "TB_AUTH_REJECTION_SOURCE_CLASS_LOOPBACK",
              "TB_AUTH_REJECTION_SOURCE_CLASS_PRIVATE",
              "TB_AUTH_REJECTION_SOURCE_CLASS_PUBLIC",
              "TB_AUTH_REJECTION_SOURCE_CLASS_UNKNOWN"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "authRejectionSuppressedCount": {
            "description": "Set only when outcome is AUTH_REJECTED. Rejections Time Bandit's rate\n limiter dropped since the previous emitted row of the same bucket (scope,\n source class and reason). The total number of rejections is the sum of\n 1 + auth_rejection_suppressed_count over the rows.",
            "format": "uint64",
            "type": "string"
          },
          "cacheReadTokens": {
            "description": "The cacheReadTokens field.",
            "format": "uint64",
            "type": "string"
          },
          "cacheWriteTokens": {
            "description": "The cacheWriteTokens field.",
            "format": "uint64",
            "type": "string"
          },
          "callRole": {
            "description": "answer | auxiliary. An auxiliary call bills on top of the answer call.",
            "type": "string"
          },
          "capability": {
            "description": "The capability field.",
            "enum": [
              "TB_TRAFFIC_CAPABILITY_UNSPECIFIED",
              "TB_TRAFFIC_CAPABILITY_EGRESS",
              "TB_TRAFFIC_CAPABILITY_LLM"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "configGeneration": {
            "description": "Time Bandit's own sha256 content hash of its daemon config -- not an\n Edge/C1 policy generation. Set on LLM rows only; empty on every egress\n row.",
            "type": "string"
          },
          "contactPhase": {
            "description": "How far the attempt got with the provider: not_started | started |\n responded. Empty when not recorded.",
            "type": "string"
          },
          "costLookup": {
            "description": "The costLookup field.",
            "enum": [
              "TB_COST_LOOKUP_UNSPECIFIED",
              "TB_COST_LOOKUP_PRICED",
              "TB_COST_LOOKUP_UNPRICED",
              "TB_COST_LOOKUP_UNMATCHED",
              "TB_COST_LOOKUP_ROUTE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "costNanoUsd": {
            "description": "Computed on read from the token counts above via pkg/inferenceprice; 0\n and not a real price unless cost_lookup is PRICED.",
            "format": "int64",
            "type": "string"
          },
          "counterLatencyMs": {
            "description": "The counterLatencyMs field.",
            "format": "uint64",
            "type": "string"
          },
          "counterRequestBytes": {
            "description": "The counterRequestBytes field.",
            "format": "uint64",
            "type": "string"
          },
          "counterResponseBytes": {
            "description": "The counterResponseBytes field.",
            "format": "uint64",
            "type": "string"
          },
          "destHost": {
            "description": "Egress-shaped destination fields; empty when capability is LLM and no\n egress connection underlies the call.",
            "type": "string"
          },
          "destPort": {
            "description": "The destPort field.",
            "format": "uint32",
            "type": "integer"
          },
          "egressEnforcementMode": {
            "description": "observe | enforce -- the Edge mode the egress access policy ran under\n for this row. Empty when no Edge egress-policy decision was made (every\n LLM/ingress row, and an Edge whose egress rules were never configured).",
            "type": "string"
          },
          "egressPolicyVerdict": {
            "description": "allow | deny -- what the Edge egress access policy decided, which is NOT\n always what was acted on. Under egress_enforcement_mode = \"observe\" a\n deny here rides a row whose outcome is allowed: the policy would have\n refused the CONNECT, and observe let it through anyway. Reading outcome\n alone cannot tell that row apart from one no rule objected to. Empty\n alongside egress_enforcement_mode.",
            "type": "string"
          },
          "eventId": {
            "description": "Deterministic over tenant+flow+event_time.",
            "type": "string"
          },
          "eventTime": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "federatedSession": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.TBFederatedSession"
              },
              {
                "type": "null"
              }
            ]
          },
          "flowId": {
            "description": "The flowId field.",
            "type": "string"
          },
          "ingressEnforcementMode": {
            "description": "enforce | ...; empty alongside ingress_scope.",
            "type": "string"
          },
          "ingressScope": {
            "description": "The direct-listener scope this call authenticated through, e.g.\n \"squire-idjag-llm\"; empty on capture/legacy ingress with no listener\n scope.",
            "type": "string"
          },
          "inputTokens": {
            "description": "LLM token counts; zero on egress rows and on a listener-flow row that\n never reached a provider (see attempt_ordinal).",
            "format": "uint64",
            "type": "string"
          },
          "judgeOutcome": {
            "description": "Whether the routing algorithm could use this judge attempt's reply. Set\n only on judge provider-attempt rows Time Bandit recorded it for.",
            "enum": [
              "TB_JUDGE_OUTCOME_UNSPECIFIED",
              "TB_JUDGE_OUTCOME_USABLE",
              "TB_JUDGE_OUTCOME_UNUSABLE",
              "TB_JUDGE_OUTCOME_CALL_FAILED",
              "TB_JUDGE_OUTCOME_UNREPORTED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "judgeReason": {
            "description": "Stable, content-free code for an UNUSABLE or UNREPORTED judge_outcome,\n e.g. \"truncated_json\", \"verdict_rejected\", \"run_ended\". Empty otherwise.",
            "type": "string"
          },
          "logicalModel": {
            "description": "The logicalModel field.",
            "type": "string"
          },
          "modelName": {
            "description": "The provider-native served model, e.g. \"claude-opus-5\" -- what cost is\n priced against. logical_model is only the caller-facing alias.",
            "type": "string"
          },
          "modelRoute": {
            "description": "LLM-shaped fields; empty when capability is EGRESS.",
            "type": "string"
          },
          "modelTarget": {
            "description": "The modelTarget field.",
            "type": "string"
          },
          "observationStatus": {
            "description": "observed | over_limit | malformed. Anything but \"observed\" means the\n audit body wasn't fully parsed, so the token counts above are a floor,\n not a total.",
            "type": "string"
          },
          "outcome": {
            "description": "The outcome field.",
            "enum": [
              "TB_TRAFFIC_OUTCOME_UNSPECIFIED",
              "TB_TRAFFIC_OUTCOME_ALLOWED",
              "TB_TRAFFIC_OUTCOME_DENIED",
              "TB_TRAFFIC_OUTCOME_AUTH_REJECTED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "outputTokens": {
            "description": "The outputTokens field.",
            "format": "uint64",
            "type": "string"
          },
          "parsedVerdictReasons": {
            "description": "Structured parse of verdict_reasons, one entry per verdict_reasons entry\n in the same order. Populated only when the request asked for it\n (include_parsed_verdict_reasons); verdict_reasons itself is unchanged.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.TBVerdictReason"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "policyVersion": {
            "description": "The configuration version that decided the request: for a hosted Edge, the\n version C1 published for the Edge's configuration. An opaque digest, never\n comparable across planes. Empty when not recorded, including before\n authentication and on rows written before Time Bandit recorded it.",
            "type": "string"
          },
          "principalUserId": {
            "description": "The C1 user id source_principal resolves to, when it's an OIDC\n principal whose subject is a real C1 user; empty for a service/agent\n principal or one c1 couldn't resolve to a user.",
            "type": "string"
          },
          "providerStatus": {
            "description": "The HTTP status the provider answered a failed attempt with, when it\n answered at all (100-599); 0 when there was none.",
            "format": "uint32",
            "type": "integer"
          },
          "reasonCode": {
            "description": "Stable outcome code of the request: allowed, or the public error code the\n caller received. Set on request-level rows only; empty on provider-attempt\n rows and on rows written before Time Bandit recorded it.",
            "type": "string"
          },
          "requestAuthority": {
            "description": "The requestAuthority field.",
            "type": "string"
          },
          "requestedMaxOutputTokens": {
            "description": "The output-token cap this provider attempt asked for; 0 when the request\n set none or the row predates Time Bandit recording it.",
            "format": "uint64",
            "type": "string"
          },
          "responseStopReason": {
            "description": "Normalized stop reason of the provider reply: end_turn | max_tokens |\n tool_use | content_filter | error | unknown. Empty when not observed.",
            "type": "string"
          },
          "routingFailureClass": {
            "description": "Why this provider attempt failed, as Time Bandit's routing classified it:\n one of Switchyard's published failure classes, e.g. \"provider_rejected\",\n \"provider_timeout\", \"transport\". Empty when the attempt did not fail or the\n row predates it. Never carries provider error text.",
            "type": "string"
          },
          "routingRunId": {
            "description": "Joins the listener-flow row and its provider-attempt child row -- one\n LLM request writes both; empty on non-LLM rows.",
            "type": "string"
          },
          "sourceConfidence": {
            "description": "A | B | C | D | \"\" (unresolved).",
            "type": "string"
          },
          "sourcePrincipal": {
            "description": "Caller identity. source_principal_kind and source_confidence qualify\n how source_principal was resolved (see AuditSource in the TB sink).",
            "type": "string"
          },
          "sourcePrincipalKind": {
            "description": "The sourcePrincipalKind field.",
            "type": "string"
          },
          "verdictFromFallback": {
            "description": "True when this row's verdict is the fail-closed default rather than an\n explicit rule match, so an empty verdict_reasons isn't a missing-data\n gap.",
            "type": "boolean"
          },
          "verdictReasons": {
            "description": "Why `outcome` resolved as it did. Can be legitimately empty even on a\n DENY -- see verdict_from_fallback.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "verdictResolvedRaw": {
            "description": "The verdictResolvedRaw field.",
            "type": "string"
          }
        },
        "title": "Tb Traffic Event",
        "type": "object",
        "x-speakeasy-name-override": "TBTrafficEvent"
      },
      "c1.api.edge.v1.TBTrafficSummaryBucket": {
        "description": "TBTrafficSummaryBucket is one point in GetTrafficSummary's time series.",
        "properties": {
          "allowedEvents": {
            "description": "The allowedEvents field.",
            "format": "uint64",
            "type": "string"
          },
          "bucketStart": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "deniedEvents": {
            "description": "The deniedEvents field.",
            "format": "uint64",
            "type": "string"
          },
          "unspecifiedEvents": {
            "description": "The unspecifiedEvents field.",
            "format": "uint64",
            "type": "string"
          }
        },
        "title": "Tb Traffic Summary Bucket",
        "type": "object",
        "x-speakeasy-name-override": "TBTrafficSummaryBucket"
      },
      "c1.api.edge.v1.TBUsageAttributionModelRow": {
        "description": "One provider-native served model within a PROVIDER attribution group.\n Blank model_name is distinct from a model literally named \"Unknown\".",
        "properties": {
          "cacheReadTokens": {
            "description": "The cacheReadTokens field.",
            "format": "uint64",
            "type": "string"
          },
          "cacheWriteTokens": {
            "description": "The cacheWriteTokens field.",
            "format": "uint64",
            "type": "string"
          },
          "costNanoUsd": {
            "description": "The costNanoUsd field.",
            "format": "int64",
            "type": "string"
          },
          "inputTokens": {
            "description": "The inputTokens field.",
            "format": "uint64",
            "type": "string"
          },
          "missingUsageCallCount": {
            "description": "The missingUsageCallCount field.",
            "format": "uint64",
            "type": "string"
          },
          "modelName": {
            "description": "The modelName field.",
            "type": "string"
          },
          "outputTokens": {
            "description": "The outputTokens field.",
            "format": "uint64",
            "type": "string"
          },
          "requestCount": {
            "description": "The requestCount field.",
            "format": "uint64",
            "type": "string"
          },
          "unpricedRequestCount": {
            "description": "The unpricedRequestCount field.",
            "format": "uint64",
            "type": "string"
          }
        },
        "title": "Tb Usage Attribution Model Row",
        "type": "object",
        "x-speakeasy-name-override": "TBUsageAttributionModelRow"
      },
      "c1.api.edge.v1.TBUsageAttributionRow": {
        "description": "TBUsageAttributionRow is one attribution-id group.",
        "properties": {
          "attributionId": {
            "description": "Empty string means unattributed for a user-facing attribution dimension.\n For PROVIDER it is the raw provider_id, and for MODEL it is the raw\n provider-native served model_name. Blank remains distinct from a literal\n \"Unknown\" ID; clients label it Unknown provider/model.",
            "type": "string"
          },
          "cacheReadTokens": {
            "description": "Observed provider-attempt cache usage, not inferred for missing attempts.",
            "format": "uint64",
            "type": "string"
          },
          "cacheWriteTokens": {
            "description": "The cacheWriteTokens field.",
            "format": "uint64",
            "type": "string"
          },
          "costNanoUsd": {
            "description": "List-price estimate for observed usage in this group, in nano-USD.\n Provider/model usage is priced per served model; long-context rates use\n average input per observed attempt. Missing usage or an unpriced model\n makes this a lower bound, not an invoiced amount.",
            "format": "int64",
            "type": "string"
          },
          "deniedRequestCount": {
            "description": "Logical requests denied by policy, counted in request_count. Set for the\n logical-request dimensions (not PROVIDER, MODEL or CALL_ROLE).",
            "format": "uint64",
            "type": "string"
          },
          "inputTokens": {
            "description": "PROVIDER and MODEL values include only provider-reported per-attempt usage.",
            "format": "uint64",
            "type": "string"
          },
          "judgeAttemptCount": {
            "description": "Judge (call_role auxiliary) provider attempts that reached a provider on\n behalf of this group's requests. Only set for the USER and ROUTE\n dimensions. Judge usage is extra usage on top of the answer: it is never\n included in input_tokens, output_tokens or cost_nano_usd above.",
            "format": "uint64",
            "type": "string"
          },
          "judgeCostNanoUsd": {
            "description": "List-price estimate of the observed judge usage, in nano-USD; a lower\n bound when the judge model is unpriced or an attempt reported no usage.",
            "format": "int64",
            "type": "string"
          },
          "judgeInputTokens": {
            "description": "Provider-reported judge usage; judge attempts with no reported usage are\n not counted here and make the judge totals a lower bound.",
            "format": "uint64",
            "type": "string"
          },
          "judgeMissingUsageCount": {
            "description": "Judge attempts that reported no token usage.",
            "format": "uint64",
            "type": "string"
          },
          "judgeOutputTokens": {
            "description": "The judgeOutputTokens field.",
            "format": "uint64",
            "type": "string"
          },
          "missingUsageCallCount": {
            "description": "Provider attempts with contact started but no observed token usage.\n Their cost is unknown even when the model has a list price.",
            "format": "uint64",
            "type": "string"
          },
          "modelBreakdown": {
            "description": "Complete breakdown of this provider's included models, only for PROVIDER.\n Parent counters include these children; do not sum both for scope totals.",
            "items": {
              "$ref": "#/components/schemas/c1.api.edge.v1.TBUsageAttributionModelRow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "outputTokens": {
            "description": "The outputTokens field.",
            "format": "uint64",
            "type": "string"
          },
          "requestCount": {
            "description": "Logical root requests except for PROVIDER and MODEL, where this counts\n contacted provider attempts.",
            "format": "uint64",
            "type": "string"
          },
          "retryAttemptCount": {
            "description": "Provider attempts beyond the first for the same request and call role,\n ranked by event time rather than by the logged attempt ordinal. A judge\n attempt followed by its answer attempt is not a retry. Only set for the\n CALL_ROLE dimension.",
            "format": "uint64",
            "type": "string"
          },
          "unpricedRequestCount": {
            "description": "Observed requests or provider attempts whose model has no list price.",
            "format": "uint64",
            "type": "string"
          }
        },
        "title": "Tb Usage Attribution Row",
        "type": "object",
        "x-speakeasy-name-override": "TBUsageAttributionRow"
      },
      "c1.api.edge.v1.TBUsageModelBreakdown": {
        "description": "TBUsageModelBreakdown is one (logical_model, model_target) group.",
        "properties": {
          "inputTokens": {
            "description": "The inputTokens field.",
            "format": "uint64",
            "type": "string"
          },
          "logicalModel": {
            "description": "The logicalModel field.",
            "type": "string"
          },
          "modelTarget": {
            "description": "The modelTarget field.",
            "type": "string"
          },
          "outputTokens": {
            "description": "The outputTokens field.",
            "format": "uint64",
            "type": "string"
          },
          "requestCount": {
            "description": "The requestCount field.",
            "format": "uint64",
            "type": "string"
          }
        },
        "title": "Tb Usage Model Breakdown",
        "type": "object",
        "x-speakeasy-name-override": "TBUsageModelBreakdown"
      },
      "c1.api.edge.v1.TBUsageSummaryBucket": {
        "description": "TBUsageSummaryBucket is one point in GetUsageSummary's time series.",
        "properties": {
          "bucketStart": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "inputTokens": {
            "description": "The inputTokens field.",
            "format": "uint64",
            "type": "string"
          },
          "outputTokens": {
            "description": "The outputTokens field.",
            "format": "uint64",
            "type": "string"
          }
        },
        "title": "Tb Usage Summary Bucket",
        "type": "object",
        "x-speakeasy-name-override": "TBUsageSummaryBucket"
      },
      "c1.api.edge.v1.TBVerdictReason": {
        "description": "TBVerdictReason is the structured parse of one Time Bandit verdict reason\n string. The raw string is the matching verdict_reasons entry.",
        "properties": {
          "blockingKinds": {
            "description": "Credential kinds of the classes that were not exempted.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "classes": {
            "description": "Content-inspection class labels, e.g. \"high-entropy\", \"jwt\".",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "clean": {
            "description": "True for a content-inspection scan that found nothing.",
            "type": "boolean"
          },
          "context": {
            "description": "The content-inspection location (e.g. \"request_header\",\n \"streaming_response\"); empty for stages other than content and\n response_body.",
            "type": "string"
          },
          "exemptedKinds": {
            "description": "Credential kinds (Time Bandit spelling, e.g. \"ApiKey\") the matching rule\n already exempts.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "response": {
            "description": "True for a response-side finding.",
            "type": "boolean"
          },
          "stage": {
            "description": "rule_deny | ssrf | body_cap | encoding | content | response_body | other.",
            "type": "string"
          }
        },
        "title": "Tb Verdict Reason",
        "type": "object",
        "x-speakeasy-name-override": "TBVerdictReason"
      },
      "c1.api.edge.v1.UsableEdge": {
        "description": "UsableEdge is the secret-free connection target authorized for the calling person.\n It excludes policy, routes, credential configuration, and administrative identities.",
        "properties": {
          "allowInferenceBearerTokens": {
            "description": "Whether short-lived inference Bearer credentials are enabled. False when\n no authorized inference resource is returned.",
            "type": "boolean"
          },
          "appId": {
            "description": "Identifier of the application that owns this Edge.",
            "type": "string"
          },
          "displayName": {
            "description": "Human-readable name of this Edge.",
            "type": "string"
          },
          "grantedScopes": {
            "description": "Scopes the caller currently holds on the returned resources.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "id": {
            "description": "Identifier of this Edge.",
            "type": "string"
          },
          "tokenAudience": {
            "description": "Audience to use when exchanging a token for this Edge.",
            "type": "string"
          },
          "tokenResources": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.EdgeTokenResources"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Usable Edge",
        "type": "object",
        "x-speakeasy-name-override": "UsableEdge"
      },
      "c1.api.editor.v1.EditorMarker": {
        "description": "The EditorMarker message.",
        "properties": {
          "endColumn": {
            "description": "The endColumn field.",
            "format": "int32",
            "type": "integer"
          },
          "endLineNumber": {
            "description": "The endLineNumber field.",
            "format": "int32",
            "type": "integer"
          },
          "message": {
            "description": "The message field.",
            "type": "string"
          },
          "severity": {
            "description": "The severity field.",
            "enum": [
              "UNKNOWN",
              "HINT",
              "INFO",
              "WARNING",
              "ERROR"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "startColumn": {
            "description": "The startColumn field.",
            "format": "int32",
            "type": "integer"
          },
          "startLineNumber": {
            "description": "The startLineNumber field.",
            "format": "int32",
            "type": "integer"
          }
        },
        "title": "Editor Marker",
        "type": "object",
        "x-speakeasy-name-override": "EditorMarker"
      },
      "c1.api.feedback.v1.CreateFeedbackRequest": {
        "description": "The CreateFeedbackRequest message.",
        "properties": {
          "clientContext": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.feedback.v1.CreateFeedbackRequest.ClientContext"
              },
              {
                "type": "null"
              }
            ]
          },
          "datadogContext": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.feedback.v1.CreateFeedbackRequest.DatadogContext"
              },
              {
                "type": "null"
              }
            ]
          },
          "description": {
            "description": "The description field.",
            "type": "string"
          },
          "screenshots": {
            "description": "The screenshots field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.feedback.v1.CreateFeedbackRequest.Screenshot"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Create Feedback Request",
        "type": "object",
        "x-speakeasy-name-override": "CreateFeedbackRequest"
      },
      "c1.api.feedback.v1.CreateFeedbackRequest.ClientContext": {
        "description": "The ClientContext message.",
        "properties": {
          "agentConversationId": {
            "description": "The agentConversationId field.",
            "type": "string"
          },
          "agentSessionId": {
            "description": "The agentSessionId field.",
            "type": "string"
          },
          "appVersion": {
            "description": "The appVersion field.",
            "type": "string"
          },
          "featureFlags": {
            "description": "The featureFlags field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "locale": {
            "description": "The locale field.",
            "type": "string"
          },
          "route": {
            "description": "The route field.",
            "type": "string"
          },
          "url": {
            "description": "The url field.",
            "type": "string"
          },
          "userAgent": {
            "description": "The userAgent field.",
            "type": "string"
          },
          "viewport": {
            "description": "The viewport field.",
            "type": "string"
          }
        },
        "title": "Client Context",
        "type": "object",
        "x-speakeasy-name-override": "ClientContext"
      },
      "c1.api.feedback.v1.CreateFeedbackRequest.DatadogContext": {
        "description": "The DatadogContext message.",
        "properties": {
          "rumSessionId": {
            "description": "The rumSessionId field.",
            "type": "string"
          },
          "rumViewId": {
            "description": "The rumViewId field.",
            "type": "string"
          },
          "rumViewName": {
            "description": "The rumViewName field.",
            "type": "string"
          },
          "traceIds": {
            "description": "The traceIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "windowEnd": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "windowStart": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Datadog Context",
        "type": "object",
        "x-speakeasy-name-override": "DatadogContext"
      },
      "c1.api.feedback.v1.CreateFeedbackRequest.Screenshot": {
        "description": "The Screenshot message.",
        "properties": {
          "contentType": {
            "description": "The contentType field.",
            "type": "string"
          },
          "data": {
            "description": "The data field.",
            "format": "base64",
            "type": "string"
          },
          "kind": {
            "description": "The kind field.",
            "enum": [
              "KIND_UNSPECIFIED",
              "KIND_SCREEN",
              "KIND_REGION",
              "KIND_UPLOAD"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "route": {
            "description": "Parameterized route the shot was taken on — never a raw URL. Optional.",
            "type": "string"
          }
        },
        "title": "Screenshot",
        "type": "object",
        "x-speakeasy-name-override": "Screenshot"
      },
      "c1.api.feedback.v1.CreateFeedbackResponse": {
        "description": "The CreateFeedbackResponse message.",
        "properties": {
          "id": {
            "description": "The stored feedback ID.",
            "type": "string"
          },
          "ticketUrl": {
            "description": "URL of the task created for this feedback. Empty while task delivery is\n unavailable or has not succeeded.",
            "type": "string"
          }
        },
        "title": "Create Feedback Response",
        "type": "object",
        "x-speakeasy-name-override": "CreateFeedbackResponse"
      },
      "c1.api.finding.v1.AcceptRiskAction": {
        "description": "AcceptRiskAction parameters for UpdateFindingState.",
        "properties": {
          "expiresAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "justification": {
            "description": "The justification field.",
            "type": "string"
          }
        },
        "title": "Accept Risk Action",
        "type": "object",
        "x-speakeasy-name-override": "AcceptRiskAction"
      },
      "c1.api.finding.v1.AcceptRiskRoutingAction": {
        "description": "AcceptRiskRoutingAction accepts the risk for a matched finding for a\n relative duration (resolved to risk_acceptance_expires_at = now + duration\n at execution time).",
        "properties": {
          "duration": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "reason": {
            "description": "The reason field.",
            "type": "string"
          }
        },
        "title": "Accept Risk Routing Action",
        "type": "object",
        "x-speakeasy-name-override": "AcceptRiskRoutingAction"
      },
      "c1.api.finding.v1.AppResourceTarget": {
        "description": "AppResourceTarget points at the app resource the finding is about.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "appResourceId": {
            "description": "The appResourceId field.",
            "type": "string"
          },
          "appResourceTypeId": {
            "description": "The appResourceTypeId field.",
            "type": "string"
          }
        },
        "title": "App Resource Target",
        "type": "object",
        "x-speakeasy-name-override": "AppResourceTarget"
      },
      "c1.api.finding.v1.AppUserTarget": {
        "description": "The AppUserTarget message.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "appUserId": {
            "description": "The appUserId field.",
            "type": "string"
          }
        },
        "title": "App User Target",
        "type": "object",
        "x-speakeasy-name-override": "AppUserTarget"
      },
      "c1.api.finding.v1.BulkAcceptRiskAction": {
        "description": "The BulkAcceptRiskAction message.",
        "properties": {
          "expiresAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "justification": {
            "description": "The justification field.",
            "type": "string"
          }
        },
        "title": "Bulk Accept Risk Action",
        "type": "object",
        "x-speakeasy-name-override": "BulkAcceptRiskAction"
      },
      "c1.api.finding.v1.BulkAssignOwnerAction": {
        "description": "The BulkAssignOwnerAction message.",
        "properties": {
          "assigneeIdentityUserId": {
            "description": "Empty is allowed: rpc.go falls back to the deprecated owner field's\n identity_user_id arm when this is unset.",
            "type": "string"
          },
          "owner": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.FindingOwnerRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Bulk Assign Owner Action",
        "type": "object",
        "x-speakeasy-name-override": "BulkAssignOwnerAction"
      },
      "c1.api.finding.v1.BulkCreateFindingTasksRequest": {
        "description": "The BulkCreateFindingTasksRequest message.",
        "properties": {
          "policyId": {
            "description": "Optional policy ID to use for the created tasks. Defaults to the app's grant policy.",
            "type": "string"
          },
          "refs": {
            "description": "Individual finding references to create tasks for (by-ID mode).",
            "items": {
              "$ref": "#/components/schemas/c1.api.finding.v1.FindingRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "searchRequest": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.FindingSearchRequest"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Bulk Create Finding Tasks Request",
        "type": "object",
        "x-speakeasy-name-override": "BulkCreateFindingTasksRequest"
      },
      "c1.api.finding.v1.BulkCreateFindingTasksResponse": {
        "description": "The BulkCreateFindingTasksResponse message.",
        "properties": {
          "bulkActionId": {
            "description": "The ID of the asynchronous bulk action, which can be used to track progress.",
            "type": "string"
          }
        },
        "title": "Bulk Create Finding Tasks Response",
        "type": "object",
        "x-speakeasy-name-override": "BulkCreateFindingTasksResponse"
      },
      "c1.api.finding.v1.BulkReopenAction": {
        "description": "The BulkReopenAction message.",
        "title": "Bulk Reopen Action",
        "type": "object",
        "x-speakeasy-name-override": "BulkReopenAction"
      },
      "c1.api.finding.v1.BulkReprocessAction": {
        "description": "BulkReprocessAction re-evaluates eligible findings against transformation\n and routing rules using each finding's original detector-created state\n (original severity, original annotations) rather than any rule-mutated\n current state.\n\n `override_human_edits` chooses how far re-derivation goes for\n human-attributed edits:\n\n   - Open findings are re-derived and re-routed in both modes.\n   - Findings parked by a rule (snoozed, suppressed, or risk-accepted by a\n     routing rule with no subsequent human action) are released to open,\n     re-derived, and re-routed in both modes.\n   - Findings parked by a person re-derive their content in both modes, but\n     the state is only released, and a human severity override or assignment\n     only cleared, when `override_human_edits` is true.\n   - Findings in progress re-derive their content and keep both their state\n     and any linked ticket in both modes.\n   - Resolved, archived, and deleted findings are skipped in both modes.\n\n Ticket links are never touched. No routing rule derives an assignee, but a\n transformation rule's set_assignee transform does, so a reprocess can\n reassign a finding -- unless a person assigned it, which is sticky in the\n same way a human severity override is, and yields only to\n `override_human_edits`.",
        "properties": {
          "overrideHumanEdits": {
            "description": "When false (the default), a person's parked state, severity override and\n assignment survive the re-derivation. When true, reprocessing additionally\n releases findings a person parked, clears human severity overrides, and\n lets a matching set_assignee rule reassign a person-assigned finding.",
            "type": "boolean"
          },
          "runDispatchers": {
            "description": "When true, matched rules may re-send notification dispatches for\n findings your team may have already seen. Off by default.",
            "type": "boolean"
          }
        },
        "title": "Bulk Reprocess Action",
        "type": "object",
        "x-speakeasy-name-override": "BulkReprocessAction"
      },
      "c1.api.finding.v1.BulkSnoozeAction": {
        "description": "The BulkSnoozeAction message.",
        "properties": {
          "reason": {
            "description": "The reason field.",
            "type": "string"
          },
          "snoozeUntil": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Bulk Snooze Action",
        "type": "object",
        "x-speakeasy-name-override": "BulkSnoozeAction"
      },
      "c1.api.finding.v1.BulkSuppressAction": {
        "description": "The BulkSuppressAction message.",
        "properties": {
          "reason": {
            "description": "The reason field.",
            "type": "string"
          }
        },
        "title": "Bulk Suppress Action",
        "type": "object",
        "x-speakeasy-name-override": "BulkSuppressAction"
      },
      "c1.api.finding.v1.BulkUnsuppressAction": {
        "deprecated": true,
        "description": "The BulkUnsuppressAction message.",
        "title": "Bulk Unsuppress Action",
        "type": "object",
        "x-speakeasy-name-override": "BulkUnsuppressAction"
      },
      "c1.api.finding.v1.BulkUpdateFindingStateRequest": {
        "description": "The BulkUpdateFindingStateRequest message.\n\nThis message contains a oneof named action. Only a single field of the following list may be set at a time:\n  - snooze\n  - suppress\n  - acceptRisk\n  - unsuppress\n  - assignOwner\n  - reopen\n  - reprocess\n",
        "properties": {
          "acceptRisk": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.BulkAcceptRiskAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "assignOwner": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.BulkAssignOwnerAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "refs": {
            "description": "By-ID mode: specify individual finding refs.",
            "items": {
              "$ref": "#/components/schemas/c1.api.finding.v1.FindingRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "reopen": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.BulkReopenAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "reprocess": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.BulkReprocessAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "searchRequest": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.FindingSearchRequest"
              },
              {
                "type": "null"
              }
            ]
          },
          "snooze": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.BulkSnoozeAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "suppress": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.BulkSuppressAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "unsuppress": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.BulkUnsuppressAction"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Bulk Update Finding State Request",
        "type": "object",
        "x-speakeasy-name-override": "BulkUpdateFindingStateRequest"
      },
      "c1.api.finding.v1.BulkUpdateFindingStateResponse": {
        "description": "The BulkUpdateFindingStateResponse message.",
        "properties": {
          "bulkActionId": {
            "description": "The ID of the asynchronous bulk action, which can be used to track progress.",
            "type": "string"
          }
        },
        "title": "Bulk Update Finding State Response",
        "type": "object",
        "x-speakeasy-name-override": "BulkUpdateFindingStateResponse"
      },
      "c1.api.finding.v1.ConnectorAnomalyDetectionDisabledType": {
        "description": "ConnectorAnomalyDetectionDisabledType: a connector has sync anomaly\n detection turned off, so a sudden drop in synced data will not trip the\n circuit breaker. Target: ConnectorTarget.",
        "title": "Connector Anomaly Detection Disabled Type",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorAnomalyDetectionDisabledType"
      },
      "c1.api.finding.v1.ConnectorSyncFailingEvidence": {
        "description": "ConnectorSyncFailingEvidence describes the failure streak behind a\n CONNECTOR_SYNC_FAILING finding, refreshed on every re-observation.",
        "properties": {
          "consecutiveFailureCount": {
            "description": "The consecutiveFailureCount field.",
            "format": "uint32",
            "type": "integer"
          },
          "lastFailedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "lastSyncLifecycleId": {
            "description": "Id of the newest failing sync run, not a copy of its error text -- see the\n c1models message for why the error itself is deliberately not carried here.",
            "type": "string"
          },
          "streakStartedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Connector Sync Failing Evidence",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorSyncFailingEvidence"
      },
      "c1.api.finding.v1.ConnectorSyncFailingType": {
        "description": "ConnectorSyncFailingType: a connector's completed sync runs have ended in\n error for at least two consecutive runs, with no intervening success.\n Target: ConnectorTarget.",
        "title": "Connector Sync Failing Type",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorSyncFailingType"
      },
      "c1.api.finding.v1.ConnectorTarget": {
        "description": "ConnectorTarget points at the connector that produced this finding.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "connectorId": {
            "description": "The connectorId field.",
            "type": "string"
          }
        },
        "title": "Connector Target",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorTarget"
      },
      "c1.api.finding.v1.CreateFindingRequest": {
        "description": "The CreateFindingRequest message.\n\nThis message contains a oneof named target. Only a single field of the following list may be set at a time:\n  - identityUserTarget\n  - appUserTarget\n  - decoyTarget\n  - appResourceTarget\n  - connectorTarget\n  - tenantTarget\n",
        "properties": {
          "annotations": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Arbitrary metadata attached to the finding; filterable by routing rules.",
            "type": "object"
          },
          "appResourceTarget": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.AppResourceTarget"
              },
              {
                "type": "null"
              }
            ]
          },
          "appUserTarget": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.AppUserTarget"
              },
              {
                "type": "null"
              }
            ]
          },
          "connectorTarget": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.ConnectorTarget"
              },
              {
                "type": "null"
              }
            ]
          },
          "customSubType": {
            "description": "User-supplied sub-classification (e.g. \"shadow_it\"). Part of the dedup\n identity and filterable via FindingSearch.",
            "type": "string"
          },
          "decoyTarget": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.DecoyTarget"
              },
              {
                "type": "null"
              }
            ]
          },
          "dedupKeyParts": {
            "description": "Caller-supplied dedup identity. The fingerprint is a domain-separated\n SHA-256 over (\"custom\", custom_sub_type, dedup_key_parts...) — see\n pkg/uhash; parts cannot collide regardless of their byte content. Two\n creates with the same parts collapse onto one finding. Must be non-empty\n and every part must be non-empty.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "description": {
            "description": "Optional finding body (markdown by convention).",
            "type": "string"
          },
          "identityUserTarget": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.IdentityUserTarget"
              },
              {
                "type": "null"
              }
            ]
          },
          "remediationDescription": {
            "description": "Optional remediation guidance, used as the body of any task created from\n this finding.",
            "type": "string"
          },
          "severity": {
            "description": "Severity of the finding. Must be a defined, non-unspecified value.",
            "enum": [
              "FINDING_SEVERITY_UNSPECIFIED",
              "FINDING_SEVERITY_INFO",
              "FINDING_SEVERITY_LOW",
              "FINDING_SEVERITY_MEDIUM",
              "FINDING_SEVERITY_HIGH",
              "FINDING_SEVERITY_CRITICAL"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "tenantTarget": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.TenantTarget"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create Finding Request",
        "type": "object",
        "x-speakeasy-name-override": "CreateFindingRequest"
      },
      "c1.api.finding.v1.CreateFindingResponse": {
        "description": "The CreateFindingResponse message.",
        "properties": {
          "finding": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.Finding"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create Finding Response",
        "type": "object",
        "x-speakeasy-name-override": "CreateFindingResponse"
      },
      "c1.api.finding.v1.CreateFindingRoutingRuleRequest": {
        "description": "The CreateFindingRoutingRuleRequest message.",
        "properties": {
          "routingRule": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.FindingRoutingRule"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create Finding Routing Rule Request",
        "type": "object",
        "x-speakeasy-name-override": "CreateFindingRoutingRuleRequest"
      },
      "c1.api.finding.v1.CreateFindingRoutingRuleResponse": {
        "description": "The CreateFindingRoutingRuleResponse message.",
        "properties": {
          "routingRule": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.FindingRoutingRule"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create Finding Routing Rule Response",
        "type": "object",
        "x-speakeasy-name-override": "CreateFindingRoutingRuleResponse"
      },
      "c1.api.finding.v1.CreateFindingTaskRequestInput": {
        "description": "The CreateFindingTaskRequest message.",
        "properties": {
          "policyId": {
            "description": "Optional policy ID. Defaults to the app's grant policy or the built-in\n \"Finding Review\" policy.",
            "type": "string"
          }
        },
        "title": "Create Finding Task Request",
        "type": "object",
        "x-speakeasy-name-override": "CreateFindingTaskRequest"
      },
      "c1.api.finding.v1.CreateFindingTaskResponse": {
        "description": "The CreateFindingTaskResponse message.",
        "properties": {
          "finding": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.Finding"
              },
              {
                "type": "null"
              }
            ]
          },
          "taskId": {
            "description": "The ID of the created task.",
            "type": "string"
          }
        },
        "title": "Create Finding Task Response",
        "type": "object",
        "x-speakeasy-name-override": "CreateFindingTaskResponse"
      },
      "c1.api.finding.v1.CreateFindingTransformationRuleRequest": {
        "description": "The CreateFindingTransformationRuleRequest message.",
        "properties": {
          "transformationRule": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.FindingTransformationRule"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create Finding Transformation Rule Request",
        "type": "object",
        "x-speakeasy-name-override": "CreateFindingTransformationRuleRequest"
      },
      "c1.api.finding.v1.CreateFindingTransformationRuleResponse": {
        "description": "The CreateFindingTransformationRuleResponse message.",
        "properties": {
          "transformationRule": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.FindingTransformationRule"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create Finding Transformation Rule Response",
        "type": "object",
        "x-speakeasy-name-override": "CreateFindingTransformationRuleResponse"
      },
      "c1.api.finding.v1.CreateTaskAction": {
        "description": "The CreateTaskAction message.",
        "properties": {
          "policyId": {
            "description": "The policyId field.",
            "type": "string"
          }
        },
        "title": "Create Task Action",
        "type": "object",
        "x-speakeasy-name-override": "CreateTaskAction"
      },
      "c1.api.finding.v1.CredentialExpiringEvidence": {
        "description": "The CredentialExpiringEvidence message.",
        "properties": {
          "expired": {
            "description": "Whether the expiry was already past when last observed.",
            "type": "boolean"
          },
          "expiresAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Credential Expiring Evidence",
        "type": "object",
        "x-speakeasy-name-override": "CredentialExpiringEvidence"
      },
      "c1.api.finding.v1.CredentialExpiringType": {
        "description": "CredentialExpiringType: a credential is inside the detector's expiry\n warning window, or already past it. Covers both ConductorOne-managed\n credentials and connector-synced secret-trait AppResources. Dedup is\n (credential arm, credential_id/target triple). Target: IdentityUserTarget\n for a service-principal credential, or AppResourceTarget for a\n connector-synced secret.\n\nThis message contains a oneof named credential. Only a single field of the following list may be set at a time:\n  - userClientId\n  - appResourceSecret\n",
        "properties": {
          "appResourceSecret": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.AppResourceTarget"
              },
              {
                "type": "null"
              }
            ]
          },
          "credentialDisplayName": {
            "description": "The credentialDisplayName field.",
            "type": "string"
          },
          "userClientId": {
            "description": "Service-principal credential.\nThis field is part of the `credential` oneof.\nSee the documentation for `c1.api.finding.v1.CredentialExpiringType` for more details.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Credential Expiring Type",
        "type": "object",
        "x-speakeasy-name-override": "CredentialExpiringType"
      },
      "c1.api.finding.v1.CredentialPubliclyExposedEvidence": {
        "description": "CredentialPubliclyExposedEvidence carries scanner attribution for a public exposure.",
        "properties": {
          "credentialRevoked": {
            "description": "The credentialRevoked field.",
            "type": "boolean"
          },
          "fingerprintPrefix": {
            "description": "The fingerprintPrefix field.",
            "type": "string"
          },
          "firstObservedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "firstScannerId": {
            "description": "The firstScannerId field.",
            "type": "string"
          },
          "reportingScanners": {
            "description": "The reportingScanners field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "revokedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "sourceKind": {
            "description": "The sourceKind field.",
            "type": "string"
          },
          "sourceUrl": {
            "description": "The sourceUrl field.",
            "type": "string"
          }
        },
        "title": "Credential Publicly Exposed Evidence",
        "type": "object",
        "x-speakeasy-name-override": "CredentialPubliclyExposedEvidence"
      },
      "c1.api.finding.v1.CredentialPubliclyExposedType": {
        "description": "CredentialPubliclyExposedType: a live credential was reported as publicly exposed.\n Dedup is (credential arm, credential_id).\n\nThis message contains a oneof named credential. Only a single field of the following list may be set at a time:\n  - userClientId\n  - connectorClientId\n  - connectorManagedCredentialId\n  - functionClientId\n",
        "properties": {
          "connectorClientId": {
            "description": "The connectorClientId field.\nThis field is part of the `credential` oneof.\nSee the documentation for `c1.api.finding.v1.CredentialPubliclyExposedType` for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "connectorManagedCredentialId": {
            "description": "The connectorManagedCredentialId field.\nThis field is part of the `credential` oneof.\nSee the documentation for `c1.api.finding.v1.CredentialPubliclyExposedType` for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "credentialDisplayName": {
            "description": "The credentialDisplayName field.",
            "type": "string"
          },
          "functionClientId": {
            "description": "The functionClientId field.\nThis field is part of the `credential` oneof.\nSee the documentation for `c1.api.finding.v1.CredentialPubliclyExposedType` for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "userClientId": {
            "description": "The userClientId field.\nThis field is part of the `credential` oneof.\nSee the documentation for `c1.api.finding.v1.CredentialPubliclyExposedType` for more details.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Credential Publicly Exposed Type",
        "type": "object",
        "x-speakeasy-name-override": "CredentialPubliclyExposedType"
      },
      "c1.api.finding.v1.CustomFindingType": {
        "description": "CustomFindingType: a user- or integration-authored finding. The discriminator\n carries no payload; the finding's content lives in description /\n remediation_description / custom_tags.",
        "title": "Custom Finding Type",
        "type": "object",
        "x-speakeasy-name-override": "CustomFindingType"
      },
      "c1.api.finding.v1.DeactivatedOwnerDetail": {
        "description": "DeactivatedOwnerDetail is one deactivated owner found for the target at\n detection time. A target can have more than one owner, and more than one\n can read as deactivated.",
        "properties": {
          "reason": {
            "description": "The reason field.",
            "enum": [
              "DEACTIVATED_OWNER_REASON_UNSPECIFIED",
              "DEACTIVATED_OWNER_REASON_USER_DELETED",
              "DEACTIVATED_OWNER_REASON_USER_DISABLED",
              "DEACTIVATED_OWNER_REASON_EMPLOYMENT_INACTIVE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "userId": {
            "description": "The userId field.",
            "type": "string"
          }
        },
        "title": "Deactivated Owner Detail",
        "type": "object",
        "x-speakeasy-name-override": "DeactivatedOwnerDetail"
      },
      "c1.api.finding.v1.DeactivatedOwnerEvidence": {
        "description": "The DeactivatedOwnerEvidence message.",
        "properties": {
          "deactivatedOwners": {
            "description": "The deactivatedOwners field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.finding.v1.DeactivatedOwnerDetail"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Deactivated Owner Evidence",
        "type": "object",
        "x-speakeasy-name-override": "DeactivatedOwnerEvidence"
      },
      "c1.api.finding.v1.DeactivatedOwnerType": {
        "description": "DeactivatedOwnerType: the human responsible for a target -- either the\n AppUser's own correlated identity, an ownership_v2-assigned owner, or a\n secret's run-as identity is deactivated. Target: AppUserTarget or\n AppResourceTarget.",
        "properties": {
          "source": {
            "description": "The source field.",
            "enum": [
              "DEACTIVATED_OWNER_SOURCE_UNSPECIFIED",
              "DEACTIVATED_OWNER_SOURCE_IDENTITY_CORRELATION",
              "DEACTIVATED_OWNER_SOURCE_OWNERSHIP_ASSIGNED",
              "DEACTIVATED_OWNER_SOURCE_SECRET_RUN_AS_IDENTITY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Deactivated Owner Type",
        "type": "object",
        "x-speakeasy-name-override": "DeactivatedOwnerType"
      },
      "c1.api.finding.v1.DecoyCredentialUsedType": {
        "description": "DecoyCredentialUsedType: a planted decoy credential authenticated\n successfully.",
        "properties": {
          "decoyId": {
            "description": "The decoyId field.",
            "type": "string"
          },
          "kind": {
            "description": "The kind field.",
            "enum": [
              "DECOY_CREDENTIAL_KIND_UNSPECIFIED",
              "DECOY_CREDENTIAL_KIND_USER_CLIENT_CREDENTIAL",
              "DECOY_CREDENTIAL_KIND_CONNECTOR_CLIENT",
              "DECOY_CREDENTIAL_KIND_WORKLOAD_FEDERATION",
              "DECOY_CREDENTIAL_KIND_ACCESS_TOKEN"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Decoy Credential Used Type",
        "type": "object",
        "x-speakeasy-name-override": "DecoyCredentialUsedType"
      },
      "c1.api.finding.v1.DecoyPubliclyExposedEvidence": {
        "description": "DecoyPubliclyExposedEvidence mirrors CredentialPubliclyExposedEvidence for decoys.",
        "properties": {
          "credentialRevoked": {
            "description": "The credentialRevoked field.",
            "type": "boolean"
          },
          "fingerprintPrefix": {
            "description": "The fingerprintPrefix field.",
            "type": "string"
          },
          "firstObservedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "firstScannerId": {
            "description": "The firstScannerId field.",
            "type": "string"
          },
          "reportingScanners": {
            "description": "The reportingScanners field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "revokedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "sourceKind": {
            "description": "The sourceKind field.",
            "type": "string"
          },
          "sourceUrl": {
            "description": "The sourceUrl field.",
            "type": "string"
          }
        },
        "title": "Decoy Publicly Exposed Evidence",
        "type": "object",
        "x-speakeasy-name-override": "DecoyPubliclyExposedEvidence"
      },
      "c1.api.finding.v1.DecoyPubliclyExposedType": {
        "description": "DecoyPubliclyExposedType: a planted decoy was reported as publicly exposed.\n Dedup is decoy_id.",
        "properties": {
          "decoyDisplayName": {
            "description": "The decoyDisplayName field.",
            "type": "string"
          },
          "decoyId": {
            "description": "The decoyId field.",
            "type": "string"
          }
        },
        "title": "Decoy Publicly Exposed Type",
        "type": "object",
        "x-speakeasy-name-override": "DecoyPubliclyExposedType"
      },
      "c1.api.finding.v1.DecoyTarget": {
        "description": "DecoyTarget points at the planted decoy that produced this finding.\n Populated for findings whose subject is the decoy artifact itself\n (e.g. decoy_credential_used), giving the UI and routing rules a\n uniform handle to the decoy alongside the finding_type payload.",
        "properties": {
          "decoyId": {
            "description": "The decoyId field.",
            "type": "string"
          }
        },
        "title": "Decoy Target",
        "type": "object",
        "x-speakeasy-name-override": "DecoyTarget"
      },
      "c1.api.finding.v1.DeleteFindingRoutingRuleRequestInput": {
        "description": "The DeleteFindingRoutingRuleRequest message.",
        "title": "Delete Finding Routing Rule Request",
        "type": "object",
        "x-speakeasy-name-override": "DeleteFindingRoutingRuleRequest"
      },
      "c1.api.finding.v1.DeleteFindingRoutingRuleResponse": {
        "description": "The DeleteFindingRoutingRuleResponse message.",
        "title": "Delete Finding Routing Rule Response",
        "type": "object",
        "x-speakeasy-name-override": "DeleteFindingRoutingRuleResponse"
      },
      "c1.api.finding.v1.DeleteFindingTransformationRuleRequestInput": {
        "description": "The DeleteFindingTransformationRuleRequest message.",
        "title": "Delete Finding Transformation Rule Request",
        "type": "object",
        "x-speakeasy-name-override": "DeleteFindingTransformationRuleRequest"
      },
      "c1.api.finding.v1.DeleteFindingTransformationRuleResponse": {
        "description": "The DeleteFindingTransformationRuleResponse message.",
        "title": "Delete Finding Transformation Rule Response",
        "type": "object",
        "x-speakeasy-name-override": "DeleteFindingTransformationRuleResponse"
      },
      "c1.api.finding.v1.DirectAssignee": {
        "description": "DirectAssignee names the assignee outright, in contrast to the derived arms\n reserved above.",
        "properties": {
          "identityUserId": {
            "description": "Non-optional by design: contrast UpdateFindingAssigneeRequest, whose\n \"^([a-zA-Z0-9]{27})?$\" admits empty because that RPC is how a human clears.",
            "type": "string"
          }
        },
        "title": "Direct Assignee",
        "type": "object",
        "x-speakeasy-name-override": "DirectAssignee"
      },
      "c1.api.finding.v1.EdgeFindingCategorySetting": {
        "description": "EdgeFindingCategorySetting is one Edge finding category's resolved switch.",
        "properties": {
          "category": {
            "description": "The category field.",
            "enum": [
              "EDGE_FINDING_CATEGORY_UNSPECIFIED",
              "EDGE_FINDING_CATEGORY_DESTINATION_RISK",
              "EDGE_FINDING_CATEGORY_POLICY_HEALTH",
              "EDGE_FINDING_CATEGORY_DATA_VOLUME",
              "EDGE_FINDING_CATEGORY_IDENTITY",
              "EDGE_FINDING_CATEGORY_AI_USAGE",
              "EDGE_FINDING_CATEGORY_TRANSPORT",
              "EDGE_FINDING_CATEGORY_BEHAVIOR",
              "EDGE_FINDING_CATEGORY_EDGE_HEALTH"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "enabled": {
            "description": "Whether rules in this category run.",
            "type": "boolean"
          }
        },
        "title": "Edge Finding Category Setting",
        "type": "object",
        "x-speakeasy-name-override": "EdgeFindingCategorySetting"
      },
      "c1.api.finding.v1.EdgeFindingEvidence": {
        "description": "EdgeFindingEvidence is the detail the Edge Findings tab renders.",
        "properties": {
          "appId": {
            "description": "Mirrors EdgeFindingType.app_id.",
            "type": "string"
          },
          "category": {
            "description": "The category field.",
            "enum": [
              "EDGE_FINDING_CATEGORY_UNSPECIFIED",
              "EDGE_FINDING_CATEGORY_DESTINATION_RISK",
              "EDGE_FINDING_CATEGORY_POLICY_HEALTH",
              "EDGE_FINDING_CATEGORY_DATA_VOLUME",
              "EDGE_FINDING_CATEGORY_IDENTITY",
              "EDGE_FINDING_CATEGORY_AI_USAGE",
              "EDGE_FINDING_CATEGORY_TRANSPORT",
              "EDGE_FINDING_CATEGORY_BEHAVIOR",
              "EDGE_FINDING_CATEGORY_EDGE_HEALTH"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "edgeId": {
            "description": "Mirrors EdgeFindingType.edge_id.",
            "type": "string"
          },
          "evidence": {
            "description": "The evidence field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.finding.v1.EdgeFindingEvidence.KeyValue"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "kind": {
            "description": "Human-readable rule label, e.g. \"First-seen destination\".",
            "type": "string"
          },
          "rank": {
            "description": "Rule-specific measure of how much the rule matters for this subject (for\n example denied calls); higher is more suspicious; 0 when the rule defines\n none. Used to order findings within a rule.",
            "format": "uint64",
            "type": "string"
          },
          "resourceKind": {
            "description": "Which traffic the rule read: \"egress\" or \"inference\".",
            "type": "string"
          },
          "ruleId": {
            "description": "Mirrors EdgeFindingType.rule_id.",
            "type": "string"
          },
          "subcategory": {
            "description": "Mirrors EdgeFindingType.subcategory.",
            "enum": [
              "EDGE_FINDING_SUBCATEGORY_UNSPECIFIED",
              "EDGE_FINDING_SUBCATEGORY_AI_MODEL_GOVERNANCE",
              "EDGE_FINDING_SUBCATEGORY_AI_USAGE_COST",
              "EDGE_FINDING_SUBCATEGORY_AI_ATTRIBUTION",
              "EDGE_FINDING_SUBCATEGORY_AI_RELIABILITY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "subject": {
            "description": "Mirrors EdgeFindingType.subject.",
            "type": "string"
          },
          "summary": {
            "description": "The summary field.",
            "type": "string"
          },
          "windowDays": {
            "description": "Length of the detection window in days.",
            "format": "int32",
            "type": "integer"
          }
        },
        "title": "Edge Finding Evidence",
        "type": "object",
        "x-speakeasy-name-override": "EdgeFindingEvidence"
      },
      "c1.api.finding.v1.EdgeFindingEvidence.KeyValue": {
        "description": "The KeyValue message.",
        "properties": {
          "key": {
            "description": "The key field.",
            "type": "string"
          },
          "value": {
            "description": "The value field.",
            "type": "string"
          }
        },
        "title": "Key Value",
        "type": "object",
        "x-speakeasy-name-override": "EdgeFindingEvidenceKeyValue"
      },
      "c1.api.finding.v1.EdgeFindingSettingsEntry": {
        "description": "EdgeFindingSettingsEntry is a requested change to one category. Separate\n from EdgeFindingCategorySetting for the same reason FindingSettingsEntry is:\n an update needs enum validation and presence on `enabled`.",
        "properties": {
          "category": {
            "description": "The category field.",
            "enum": [
              "EDGE_FINDING_CATEGORY_UNSPECIFIED",
              "EDGE_FINDING_CATEGORY_DESTINATION_RISK",
              "EDGE_FINDING_CATEGORY_POLICY_HEALTH",
              "EDGE_FINDING_CATEGORY_DATA_VOLUME",
              "EDGE_FINDING_CATEGORY_IDENTITY",
              "EDGE_FINDING_CATEGORY_AI_USAGE",
              "EDGE_FINDING_CATEGORY_TRANSPORT",
              "EDGE_FINDING_CATEGORY_BEHAVIOR",
              "EDGE_FINDING_CATEGORY_EDGE_HEALTH"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "enabled": {
            "description": "Target state. Required: an omitted field must not read as false.",
            "type": [
              "boolean",
              "null"
            ]
          }
        },
        "title": "Edge Finding Settings Entry",
        "type": "object",
        "x-speakeasy-name-override": "EdgeFindingSettingsEntry"
      },
      "c1.api.finding.v1.EdgeFindingSubcategorySetting": {
        "description": "EdgeFindingSubcategorySetting is one AI usage subcategory's resolved switch.\n It only takes effect while EDGE_FINDING_CATEGORY_AI_USAGE is on.",
        "properties": {
          "enabled": {
            "description": "Whether rules in this subcategory run when AI usage is on.",
            "type": "boolean"
          },
          "subcategory": {
            "description": "The subcategory field.",
            "enum": [
              "EDGE_FINDING_SUBCATEGORY_UNSPECIFIED",
              "EDGE_FINDING_SUBCATEGORY_AI_MODEL_GOVERNANCE",
              "EDGE_FINDING_SUBCATEGORY_AI_USAGE_COST",
              "EDGE_FINDING_SUBCATEGORY_AI_ATTRIBUTION",
              "EDGE_FINDING_SUBCATEGORY_AI_RELIABILITY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Edge Finding Subcategory Setting",
        "type": "object",
        "x-speakeasy-name-override": "EdgeFindingSubcategorySetting"
      },
      "c1.api.finding.v1.EdgeFindingSubcategorySettingsEntry": {
        "description": "EdgeFindingSubcategorySettingsEntry is a requested change to one\n subcategory.",
        "properties": {
          "enabled": {
            "description": "Target state. Required: an omitted field must not read as false.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "subcategory": {
            "description": "The subcategory field.",
            "enum": [
              "EDGE_FINDING_SUBCATEGORY_UNSPECIFIED",
              "EDGE_FINDING_SUBCATEGORY_AI_MODEL_GOVERNANCE",
              "EDGE_FINDING_SUBCATEGORY_AI_USAGE_COST",
              "EDGE_FINDING_SUBCATEGORY_AI_ATTRIBUTION",
              "EDGE_FINDING_SUBCATEGORY_AI_RELIABILITY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Edge Finding Subcategory Settings Entry",
        "type": "object",
        "x-speakeasy-name-override": "EdgeFindingSubcategorySettingsEntry"
      },
      "c1.api.finding.v1.EdgeFindingType": {
        "description": "EdgeFindingType identifies an Edge finding: one rule matching one subject on\n one Edge. Target: TenantTarget.",
        "properties": {
          "appId": {
            "description": "The app the Edge belongs to.",
            "type": "string"
          },
          "category": {
            "description": "The category field.",
            "enum": [
              "EDGE_FINDING_CATEGORY_UNSPECIFIED",
              "EDGE_FINDING_CATEGORY_DESTINATION_RISK",
              "EDGE_FINDING_CATEGORY_POLICY_HEALTH",
              "EDGE_FINDING_CATEGORY_DATA_VOLUME",
              "EDGE_FINDING_CATEGORY_IDENTITY",
              "EDGE_FINDING_CATEGORY_AI_USAGE",
              "EDGE_FINDING_CATEGORY_TRANSPORT",
              "EDGE_FINDING_CATEGORY_BEHAVIOR",
              "EDGE_FINDING_CATEGORY_EDGE_HEALTH"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "edgeId": {
            "description": "The Edge (app resource id) whose traffic matched.",
            "type": "string"
          },
          "ruleId": {
            "description": "Stable rule id, e.g. \"EDGE-DEST-FIRST-SEEN\".",
            "type": "string"
          },
          "subcategory": {
            "description": "Set only for EDGE_FINDING_CATEGORY_AI_USAGE.",
            "enum": [
              "EDGE_FINDING_SUBCATEGORY_UNSPECIFIED",
              "EDGE_FINDING_SUBCATEGORY_AI_MODEL_GOVERNANCE",
              "EDGE_FINDING_SUBCATEGORY_AI_USAGE_COST",
              "EDGE_FINDING_SUBCATEGORY_AI_ATTRIBUTION",
              "EDGE_FINDING_SUBCATEGORY_AI_RELIABILITY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "subject": {
            "description": "What the finding is about, e.g. a destination host.",
            "type": "string"
          }
        },
        "title": "Edge Finding Type",
        "type": "object",
        "x-speakeasy-name-override": "EdgeFindingType"
      },
      "c1.api.finding.v1.Finding": {
        "description": "The Finding message.\n\nThis message contains a oneof named finding_type. Only a single field of the following list may be set at a time:\n  - similarUsernameMatch\n  - serviceAccountMisclassification\n  - nhiUnowned\n  - serviceAccountUnowned\n  - decoyCredentialUsed\n  - custom\n  - connectorAnomalyDetectionDisabled\n  - deactivatedOwner\n  - unusedSecret\n  - credentialPubliclyExposed\n  - decoyPubliclyExposed\n  - credentialExpiring\n  - connectorSyncFailing\n  - shadowMcp\n  - shadowApp\n  - mcpGatewayToolCallRisk\n  - edgeFinding\n\n\nThis message contains a oneof named target. Only a single field of the following list may be set at a time:\n  - identityUserTarget\n  - appUserTarget\n  - decoyTarget\n  - appResourceTarget\n  - tenantTarget\n  - connectorTarget\n  - usageResourceTarget\n\n\nThis message contains a oneof named evidence. Only a single field of the following list may be set at a time:\n  - similarUsernameMatchEvidence\n  - serviceAccountMisclassificationEvidence\n  - nhiUnownedEvidence\n  - deactivatedOwnerEvidence\n  - unusedSecretEvidence\n  - credentialPubliclyExposedEvidence\n  - decoyPubliclyExposedEvidence\n  - credentialExpiringEvidence\n  - connectorSyncFailingEvidence\n  - shadowMcpEvidence\n  - mcpGatewayToolCallRiskEvidence\n  - edgeFindingEvidence\n",
        "properties": {
          "annotations": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Bounded key/value metadata bag. Limits: ≤16 entries; keys 1-128 chars\n matching ^[A-Za-z][A-Za-z0-9._/-]{0,127}$; values 0-256 chars; total\n serialized ≤4096 bytes. Keys matching ^c1/ are reserved. Also readable\n (and settable) via CEL as both finding.annotations and finding.custom_tags.",
            "type": "object",
            "x-speakeasy-terraform-plan-modifier": {
              "imports": [
                "github.com/conductorone/terraform-provider-conductorone/internal/annotations"
              ],
              "schemaDefinition": "annotations.PlanModifier()"
            }
          },
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "appResourceTarget": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.AppResourceTarget"
              },
              {
                "type": "null"
              }
            ]
          },
          "appUserTarget": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.AppUserTarget"
              },
              {
                "type": "null"
              }
            ]
          },
          "assignedOwner": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.FindingOwnerRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "assigneeIdentityUserId": {
            "description": "Identity user this finding is assigned to. Empty when unassigned.",
            "type": "string"
          },
          "computedOwner": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.FindingOwnerRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "connectorAnomalyDetectionDisabled": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.ConnectorAnomalyDetectionDisabledType"
              },
              {
                "type": "null"
              }
            ]
          },
          "connectorSyncFailing": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.ConnectorSyncFailingType"
              },
              {
                "type": "null"
              }
            ]
          },
          "connectorSyncFailingEvidence": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.ConnectorSyncFailingEvidence"
              },
              {
                "type": "null"
              }
            ]
          },
          "connectorTarget": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.ConnectorTarget"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "credentialExpiring": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.CredentialExpiringType"
              },
              {
                "type": "null"
              }
            ]
          },
          "credentialExpiringEvidence": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.CredentialExpiringEvidence"
              },
              {
                "type": "null"
              }
            ]
          },
          "credentialPubliclyExposed": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.CredentialPubliclyExposedType"
              },
              {
                "type": "null"
              }
            ]
          },
          "credentialPubliclyExposedEvidence": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.CredentialPubliclyExposedEvidence"
              },
              {
                "type": "null"
              }
            ]
          },
          "custom": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.CustomFindingType"
              },
              {
                "type": "null"
              }
            ]
          },
          "customSubType": {
            "description": "User-supplied sub-classification for custom findings (e.g. \"shadow_it\").",
            "type": "string"
          },
          "customTags": {
            "additionalProperties": {
              "type": "string"
            },
            "deprecated": true,
            "description": "Deprecated: use annotations instead. Read-only mirror of annotations;\n writes to this field are ignored.",
            "type": "object"
          },
          "deactivatedOwner": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.DeactivatedOwnerType"
              },
              {
                "type": "null"
              }
            ]
          },
          "deactivatedOwnerEvidence": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.DeactivatedOwnerEvidence"
              },
              {
                "type": "null"
              }
            ]
          },
          "decoyCredentialUsed": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.DecoyCredentialUsedType"
              },
              {
                "type": "null"
              }
            ]
          },
          "decoyPubliclyExposed": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.DecoyPubliclyExposedType"
              },
              {
                "type": "null"
              }
            ]
          },
          "decoyPubliclyExposedEvidence": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.DecoyPubliclyExposedEvidence"
              },
              {
                "type": "null"
              }
            ]
          },
          "decoyTarget": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.DecoyTarget"
              },
              {
                "type": "null"
              }
            ]
          },
          "dedupKeyParts": {
            "description": "Caller-supplied dedup identity for custom findings; echoed back so IaC\n clients can roundtrip it. Empty for detector findings.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "description": {
            "description": "User-authored finding body (markdown by convention). Set for custom findings.",
            "type": "string"
          },
          "edgeFinding": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.EdgeFindingType"
              },
              {
                "type": "null"
              }
            ]
          },
          "edgeFindingEvidence": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.EdgeFindingEvidence"
              },
              {
                "type": "null"
              }
            ]
          },
          "fingerprint": {
            "description": "The fingerprint field.",
            "type": "string"
          },
          "firstObservedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "identityUserTarget": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.IdentityUserTarget"
              },
              {
                "type": "null"
              }
            ]
          },
          "lastAppearedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "lastObservedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "mcpGatewayToolCallRisk": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.McpGatewayToolCallRiskType"
              },
              {
                "type": "null"
              }
            ]
          },
          "mcpGatewayToolCallRiskEvidence": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.McpGatewayToolCallRiskEvidence"
              },
              {
                "type": "null"
              }
            ]
          },
          "nhiUnowned": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.NhiUnownedType"
              },
              {
                "type": "null"
              }
            ]
          },
          "nhiUnownedEvidence": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.NhiUnownedEvidence"
              },
              {
                "type": "null"
              }
            ]
          },
          "objectPermissions": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.authorization.v1.ActorObjectPermissions"
              },
              {
                "type": "null"
              }
            ]
          },
          "recurrenceCount": {
            "description": "The recurrenceCount field.",
            "format": "uint32",
            "type": "integer"
          },
          "remediationDescription": {
            "description": "The remediationDescription field.",
            "type": "string"
          },
          "resolvedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "riskAcceptanceExpiresAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "riskAcceptanceJustification": {
            "description": "The riskAcceptanceJustification field.",
            "type": "string"
          },
          "riskScore": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.FindingRiskScore"
              },
              {
                "type": "null"
              }
            ]
          },
          "serviceAccountMisclassification": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.ServiceAccountMisclassificationType"
              },
              {
                "type": "null"
              }
            ]
          },
          "serviceAccountMisclassificationEvidence": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.ServiceAccountMisclassificationEvidence"
              },
              {
                "type": "null"
              }
            ]
          },
          "serviceAccountUnowned": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.ServiceAccountUnownedType"
              },
              {
                "type": "null"
              }
            ]
          },
          "severity": {
            "description": "The severity field.",
            "enum": [
              "FINDING_SEVERITY_UNSPECIFIED",
              "FINDING_SEVERITY_INFO",
              "FINDING_SEVERITY_LOW",
              "FINDING_SEVERITY_MEDIUM",
              "FINDING_SEVERITY_HIGH",
              "FINDING_SEVERITY_CRITICAL"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "shadowApp": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.ShadowAppType"
              },
              {
                "type": "null"
              }
            ]
          },
          "shadowMcp": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.ShadowMcpType"
              },
              {
                "type": "null"
              }
            ]
          },
          "shadowMcpEvidence": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.ShadowMcpEvidence"
              },
              {
                "type": "null"
              }
            ]
          },
          "similarUsernameMatch": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.SimilarUsernameMatchType"
              },
              {
                "type": "null"
              }
            ]
          },
          "similarUsernameMatchEvidence": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.SimilarUsernameMatchEvidence"
              },
              {
                "type": "null"
              }
            ]
          },
          "snoozeReason": {
            "description": "The snoozeReason field.",
            "type": "string"
          },
          "snoozeUntil": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "sourceDetectorId": {
            "description": "The sourceDetectorId field.",
            "type": "string"
          },
          "sourceKind": {
            "description": "Who authored the finding (detector, user, external).",
            "enum": [
              "FINDING_SOURCE_KIND_UNSPECIFIED",
              "FINDING_SOURCE_KIND_DETECTOR",
              "FINDING_SOURCE_KIND_EXTERNAL"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "state": {
            "description": "The state field.",
            "enum": [
              "FINDING_STATE_UNSPECIFIED",
              "FINDING_STATE_OPEN",
              "FINDING_STATE_IN_PROGRESS",
              "FINDING_STATE_RESOLVED",
              "FINDING_STATE_SNOOZED",
              "FINDING_STATE_RISK_ACCEPTED",
              "FINDING_STATE_SUPPRESSED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "stateUpdatedById": {
            "description": "The human who authored the CURRENT state. Empty when a routing rule or the\n system authored it, so do not read a populated value as \"this finding has a\n human owner\" -- read it as \"a human set the state it is in right now\".",
            "type": "string"
          },
          "suppressReason": {
            "description": "The suppressReason field.",
            "type": "string"
          },
          "taskId": {
            "description": "The taskId field.",
            "type": "string"
          },
          "tenantTarget": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.TenantTarget"
              },
              {
                "type": "null"
              }
            ]
          },
          "unusedSecret": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.UnusedSecretType"
              },
              {
                "type": "null"
              }
            ]
          },
          "unusedSecretEvidence": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.UnusedSecretEvidence"
              },
              {
                "type": "null"
              }
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "usageResourceTarget": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.usage_event.v1.UsageResourceRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Finding",
        "type": "object",
        "x-speakeasy-name-override": "Finding"
      },
      "c1.api.finding.v1.FindingAudience": {
        "description": "FindingAudience resolves to a set of identity user IDs to notify. Step-less:\n notifications have no escalation ladder. An empty resolution falls back to\n enabled system owners rather than notifying nobody.\n\nThis message contains a oneof named typ. Only a single field of the following list may be set at a time:\n  - users\n",
        "properties": {
          "users": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.FindingAudienceUsers"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Finding Audience",
        "type": "object",
        "x-speakeasy-name-override": "FindingAudience"
      },
      "c1.api.finding.v1.FindingAudienceUsers": {
        "description": "The FindingAudienceUsers message.",
        "properties": {
          "userIds": {
            "description": "The userIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Finding Audience Users",
        "type": "object",
        "x-speakeasy-name-override": "FindingAudienceUsers"
      },
      "c1.api.finding.v1.FindingAuditEvent": {
        "description": "FindingAuditEvent is one row in a finding's audit stream. The metadata\n columns are denormalized from the side-index so the list view renders\n without hydrating the full OCSF payload for every row; ocsf is set to\n the parsed OCSF event JSON for callers that want the per-event detail.",
        "properties": {
          "actorPrincipalId": {
            "description": "Principal id of the actor that performed the action. Empty for\n system-driven events (snooze expiry, risk-acceptance expiry).",
            "type": "string"
          },
          "actorSubject": {
            "description": "Display string for the actor (email for human users, \"system\" for\n cron sweeps).",
            "type": "string"
          },
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "bulkOperationId": {
            "description": "Stable id grouping events from the same bulk operation.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "eventId": {
            "description": "The eventId field.",
            "type": "string"
          },
          "eventType": {
            "description": "The eventType field.",
            "enum": [
              "FINDING_AUDIT_EVENT_TYPE_UNSPECIFIED",
              "FINDING_AUDIT_EVENT_TYPE_CREATED",
              "FINDING_AUDIT_EVENT_TYPE_STATE_CHANGED",
              "FINDING_AUDIT_EVENT_TYPE_SNOOZED",
              "FINDING_AUDIT_EVENT_TYPE_SNOOZE_EXPIRED",
              "FINDING_AUDIT_EVENT_TYPE_RISK_ACCEPTED",
              "FINDING_AUDIT_EVENT_TYPE_RISK_ACCEPTANCE_EXPIRED",
              "FINDING_AUDIT_EVENT_TYPE_SUPPRESSED",
              "FINDING_AUDIT_EVENT_TYPE_UNSUPPRESSED",
              "FINDING_AUDIT_EVENT_TYPE_RESOLVED",
              "FINDING_AUDIT_EVENT_TYPE_REOPENED",
              "FINDING_AUDIT_EVENT_TYPE_OWNER_CHANGED",
              "FINDING_AUDIT_EVENT_TYPE_SEVERITY_OVERRIDDEN",
              "FINDING_AUDIT_EVENT_TYPE_COMMENT",
              "FINDING_AUDIT_EVENT_TYPE_TASK_CREATED",
              "FINDING_AUDIT_EVENT_TYPE_TASK_CANCELLED",
              "FINDING_AUDIT_EVENT_TYPE_EVIDENCE_UPDATED",
              "FINDING_AUDIT_EVENT_TYPE_ROUTING_EVALUATED",
              "FINDING_AUDIT_EVENT_TYPE_TRANSFORMED",
              "FINDING_AUDIT_EVENT_TYPE_REPROCESS_REQUESTED",
              "FINDING_AUDIT_EVENT_TYPE_REPROCESS_COMPLETED",
              "FINDING_AUDIT_EVENT_TYPE_ASSIGNEE_CHANGED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "findingId": {
            "description": "The findingId field.",
            "type": "string"
          },
          "ocsf": {
            "additionalProperties": true,
            "type": [
              "object",
              "null"
            ]
          },
          "severityAtEvent": {
            "description": "The severityAtEvent field.",
            "enum": [
              "FINDING_SEVERITY_UNSPECIFIED",
              "FINDING_SEVERITY_INFO",
              "FINDING_SEVERITY_LOW",
              "FINDING_SEVERITY_MEDIUM",
              "FINDING_SEVERITY_HIGH",
              "FINDING_SEVERITY_CRITICAL"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "stateAtEvent": {
            "description": "The stateAtEvent field.",
            "enum": [
              "FINDING_STATE_UNSPECIFIED",
              "FINDING_STATE_OPEN",
              "FINDING_STATE_IN_PROGRESS",
              "FINDING_STATE_RESOLVED",
              "FINDING_STATE_SNOOZED",
              "FINDING_STATE_RISK_ACCEPTED",
              "FINDING_STATE_SUPPRESSED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "ticketId": {
            "description": "Ticket id when the event involved one; empty otherwise.",
            "type": "string"
          }
        },
        "title": "Finding Audit Event",
        "type": "object",
        "x-speakeasy-name-override": "FindingAuditEvent"
      },
      "c1.api.finding.v1.FindingAuditServiceSearchRequest": {
        "description": "The FindingAuditServiceSearchRequest message.",
        "properties": {
          "actorPrincipalId": {
            "description": "The actorPrincipalId field.",
            "type": "string"
          },
          "actorSubject": {
            "description": "Partial match via full-text search over the denormalized actor email\n / display name column.",
            "type": "string"
          },
          "appId": {
            "description": "Empty skips the filter; non-empty must be a 27-char alphanumeric id.",
            "type": "string"
          },
          "eventTypes": {
            "description": "Filter by one or more event types. Empty means any.",
            "items": {
              "enum": [
                "FINDING_AUDIT_EVENT_TYPE_UNSPECIFIED",
                "FINDING_AUDIT_EVENT_TYPE_CREATED",
                "FINDING_AUDIT_EVENT_TYPE_STATE_CHANGED",
                "FINDING_AUDIT_EVENT_TYPE_SNOOZED",
                "FINDING_AUDIT_EVENT_TYPE_SNOOZE_EXPIRED",
                "FINDING_AUDIT_EVENT_TYPE_RISK_ACCEPTED",
                "FINDING_AUDIT_EVENT_TYPE_RISK_ACCEPTANCE_EXPIRED",
                "FINDING_AUDIT_EVENT_TYPE_SUPPRESSED",
                "FINDING_AUDIT_EVENT_TYPE_UNSUPPRESSED",
                "FINDING_AUDIT_EVENT_TYPE_RESOLVED",
                "FINDING_AUDIT_EVENT_TYPE_REOPENED",
                "FINDING_AUDIT_EVENT_TYPE_OWNER_CHANGED",
                "FINDING_AUDIT_EVENT_TYPE_SEVERITY_OVERRIDDEN",
                "FINDING_AUDIT_EVENT_TYPE_COMMENT",
                "FINDING_AUDIT_EVENT_TYPE_TASK_CREATED",
                "FINDING_AUDIT_EVENT_TYPE_TASK_CANCELLED",
                "FINDING_AUDIT_EVENT_TYPE_EVIDENCE_UPDATED",
                "FINDING_AUDIT_EVENT_TYPE_ROUTING_EVALUATED",
                "FINDING_AUDIT_EVENT_TYPE_TRANSFORMED",
                "FINDING_AUDIT_EVENT_TYPE_REPROCESS_REQUESTED",
                "FINDING_AUDIT_EVENT_TYPE_REPROCESS_COMPLETED",
                "FINDING_AUDIT_EVENT_TYPE_ASSIGNEE_CHANGED"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "findingId": {
            "description": "Filter to a single finding. The detail-page timeline uses this.\n Empty skips the filter; non-empty must be a 27-char alphanumeric id.",
            "type": "string"
          },
          "pageSize": {
            "description": "The pageSize field.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          },
          "since": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "until": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Finding Audit Service Search Request",
        "type": "object",
        "x-speakeasy-name-override": "FindingAuditServiceSearchRequest"
      },
      "c1.api.finding.v1.FindingAuditServiceSearchResponse": {
        "description": "The FindingAuditServiceSearchResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.finding.v1.FindingAuditEvent"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Finding Audit Service Search Response",
        "type": "object",
        "x-speakeasy-name-override": "FindingAuditServiceSearchResponse"
      },
      "c1.api.finding.v1.FindingDispatchOutcomeNotify": {
        "description": "FindingDispatchOutcomeNotify notifies recipients once a dispatch settles.",
        "properties": {
          "onDone": {
            "description": "The onDone field.",
            "type": "boolean"
          },
          "onError": {
            "description": "The onError field.",
            "type": "boolean"
          },
          "recipients": {
            "description": "The recipients field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Finding Dispatch Outcome Notify",
        "type": "object",
        "x-speakeasy-name-override": "FindingDispatchOutcomeNotify"
      },
      "c1.api.finding.v1.FindingDispatcher": {
        "description": "FindingDispatcher is one dispatch that fires when a routing rule matches (the\n \"Then dispatch\" authoring step). A rule carries zero-to-many; every enabled\n dispatcher fires, order-independent.\n\nThis message contains a oneof named kind. Only a single field of the following list may be set at a time:\n  - triggerAutomation\n  - invokeFunction\n  - webhook\n  - notify\n",
        "properties": {
          "displayName": {
            "deprecated": true,
            "description": "Deprecated: never rendered anywhere. Still accepted and round-tripped so a\n stored label is not destroyed.",
            "type": "string"
          },
          "enabled": {
            "description": "Per-dispatcher kill switch.",
            "type": "boolean"
          },
          "invokeFunction": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.InvokeFunctionDispatcher"
              },
              {
                "type": "null"
              }
            ]
          },
          "key": {
            "description": "Stable id within the rule; survives edits, part of the dispatch idempotency\n key. Minted server-side when empty.",
            "type": "string"
          },
          "notify": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.NotifyDispatcher"
              },
              {
                "type": "null"
              }
            ]
          },
          "notifyOnOutcome": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.FindingDispatchOutcomeNotify"
              },
              {
                "type": "null"
              }
            ]
          },
          "tierOverride": {
            "description": "Author tier override; may only tighten the derived tier.",
            "enum": [
              "FINDING_DISPATCH_TIER_UNSPECIFIED",
              "FINDING_DISPATCH_TIER_AUTO",
              "FINDING_DISPATCH_TIER_REQUIRES_APPROVAL"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "triggerAutomation": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.TriggerAutomationDispatcher"
              },
              {
                "type": "null"
              }
            ]
          },
          "webhook": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.WebhookDispatcher"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Finding Dispatcher",
        "type": "object",
        "x-speakeasy-name-override": "FindingDispatcher"
      },
      "c1.api.finding.v1.FindingOwnerRef": {
        "description": "The FindingOwnerRef message.\n\nThis message contains a oneof named owner. Only a single field of the following list may be set at a time:\n  - identityUserId\n  - appOwnerAppId\n  - managerOfUserId\n  - userSetId\n",
        "properties": {
          "appOwnerAppId": {
            "description": "The appOwnerAppId field.\nThis field is part of the `owner` oneof.\nSee the documentation for `c1.api.finding.v1.FindingOwnerRef` for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "identityUserId": {
            "description": "The identityUserId field.\nThis field is part of the `owner` oneof.\nSee the documentation for `c1.api.finding.v1.FindingOwnerRef` for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "managerOfUserId": {
            "description": "The managerOfUserId field.\nThis field is part of the `owner` oneof.\nSee the documentation for `c1.api.finding.v1.FindingOwnerRef` for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "userSetId": {
            "description": "The userSetId field.\nThis field is part of the `owner` oneof.\nSee the documentation for `c1.api.finding.v1.FindingOwnerRef` for more details.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Finding Owner Ref",
        "type": "object",
        "x-speakeasy-name-override": "FindingOwnerRef"
      },
      "c1.api.finding.v1.FindingRef": {
        "description": "The FindingRef message.",
        "properties": {
          "id": {
            "description": "The ID of the finding.",
            "type": "string"
          }
        },
        "title": "Finding Ref",
        "type": "object",
        "x-speakeasy-name-override": "FindingRef"
      },
      "c1.api.finding.v1.FindingRiskFactor": {
        "description": "The FindingRiskFactor message.",
        "properties": {
          "description": {
            "description": "The description field.",
            "type": "string"
          },
          "name": {
            "description": "The name field.",
            "type": "string"
          },
          "severity": {
            "description": "The severity field.",
            "enum": [
              "FINDING_SEVERITY_UNSPECIFIED",
              "FINDING_SEVERITY_INFO",
              "FINDING_SEVERITY_LOW",
              "FINDING_SEVERITY_MEDIUM",
              "FINDING_SEVERITY_HIGH",
              "FINDING_SEVERITY_CRITICAL"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "weight": {
            "description": "The weight field.",
            "format": "uint32",
            "type": "integer"
          }
        },
        "title": "Finding Risk Factor",
        "type": "object",
        "x-speakeasy-name-override": "FindingRiskFactor"
      },
      "c1.api.finding.v1.FindingRiskScore": {
        "description": "The FindingRiskScore message.",
        "properties": {
          "originalScore": {
            "description": "The originalScore field.",
            "format": "uint32",
            "type": "integer"
          },
          "overrideByUserId": {
            "description": "The overrideByUserId field.",
            "type": "string"
          },
          "overrideScore": {
            "description": "The overrideScore field.",
            "format": "uint32",
            "type": "integer"
          },
          "riskFactors": {
            "description": "The riskFactors field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.finding.v1.FindingRiskFactor"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "score": {
            "description": "The score field.",
            "format": "uint32",
            "type": "integer"
          },
          "systemScore": {
            "description": "The systemScore field.",
            "format": "uint32",
            "type": "integer"
          }
        },
        "title": "Finding Risk Score",
        "type": "object",
        "x-speakeasy-name-override": "FindingRiskScore"
      },
      "c1.api.finding.v1.FindingRoutingRule": {
        "description": "The FindingRoutingRule message.",
        "properties": {
          "action": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.FindingRoutingRuleAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "condition": {
            "description": "The condition field.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "The description field.",
            "type": "string"
          },
          "dispatchers": {
            "description": "Dispatchers that fire when the rule matches (\"Then dispatch\"). Max 10.",
            "items": {
              "$ref": "#/components/schemas/c1.api.finding.v1.FindingDispatcher"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "enabled": {
            "description": "The enabled field.",
            "type": "boolean"
          },
          "findingType": {
            "description": "The findingType field.",
            "enum": [
              "FINDING_TYPE_UNSPECIFIED",
              "FINDING_TYPE_SIMILAR_USERNAME_MATCH",
              "FINDING_TYPE_SERVICE_ACCOUNT_MISCLASSIFICATION",
              "FINDING_TYPE_NHI_UNOWNED",
              "FINDING_TYPE_SERVICE_ACCOUNT_UNOWNED",
              "FINDING_TYPE_DECOY_CREDENTIAL_USED",
              "FINDING_TYPE_CUSTOM",
              "FINDING_TYPE_CONNECTOR_ANOMALY_DETECTION_DISABLED",
              "FINDING_TYPE_DEACTIVATED_OWNER",
              "FINDING_TYPE_UNUSED_SECRET",
              "FINDING_TYPE_CREDENTIAL_PUBLICLY_EXPOSED",
              "FINDING_TYPE_DECOY_PUBLICLY_EXPOSED",
              "FINDING_TYPE_CREDENTIAL_EXPIRING",
              "FINDING_TYPE_CONNECTOR_SYNC_FAILING",
              "FINDING_TYPE_SHADOW_MCP",
              "FINDING_TYPE_SHADOW_APP",
              "FINDING_TYPE_MCP_GATEWAY_TOOL_CALL_RISK",
              "FINDING_TYPE_EDGE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "priority": {
            "description": "The priority field.",
            "format": "int32",
            "type": "integer"
          },
          "templateId": {
            "description": "The templateId field.",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Finding Routing Rule",
        "type": "object",
        "x-speakeasy-name-override": "FindingRoutingRule"
      },
      "c1.api.finding.v1.FindingRoutingRuleAction": {
        "description": "The FindingRoutingRuleAction message.\n\nThis message contains a oneof named action. Only a single field of the following list may be set at a time:\n  - createTask\n  - suppress\n  - snooze\n  - acceptRisk\n",
        "properties": {
          "acceptRisk": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.AcceptRiskRoutingAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "createTask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.CreateTaskAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "snooze": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.SnoozeRoutingAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "suppress": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.SuppressRoutingAction"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Finding Routing Rule Action",
        "type": "object",
        "x-speakeasy-name-override": "FindingRoutingRuleAction"
      },
      "c1.api.finding.v1.FindingSearchRequest": {
        "description": "The FindingSearchRequest message.",
        "properties": {
          "appIds": {
            "description": "Filter by app IDs (OR within field).",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appResourceIds": {
            "description": "Filter by app resource IDs (OR within field). Matches findings whose\n target.app_resource_target.app_resource_id is in this list. An app resource\n is app-scoped, so pair with app_ids (and app_resource_type_ids) to hit the\n composite (tenant_id, app_id, app_resource_type_id, app_resource_id) index.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appResourceTraitIds": {
            "description": "Filter to findings whose target resource's type carries any of these traits\n (e.g. the builtin agent / secret trait ids). OR within field; empty = not\n applied.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appResourceTypeIds": {
            "description": "Filter by app resource type IDs (OR within field). Matches findings whose\n target.app_resource_target.app_resource_type_id is in this list.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appUserIds": {
            "description": "Filter by app user IDs (OR within field). Matches findings whose\n target.app_user_target.app_user_id is in this list.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appUserTypes": {
            "description": "Filter to findings whose target is an app user of these types (OR within\n field). Empty = not applied.",
            "items": {
              "enum": [
                "APP_USER_TYPE_UNSPECIFIED",
                "APP_USER_TYPE_USER",
                "APP_USER_TYPE_SERVICE_ACCOUNT",
                "APP_USER_TYPE_SYSTEM_ACCOUNT"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "assigneeIdentityUserIds": {
            "description": "Filter by assignee identity-user IDs (OR within field). Matches findings\n whose assignee_identity_user_id is in this list. The reserved\n \"unassigned\" sentinel token selects findings with no assignee; real\n identity-user IDs are exactly 27 alphanumerics so the token cannot collide.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "connectorIds": {
            "description": "Filter by connector IDs (OR within field). Matches findings whose\n target.connector_target.connector_id is in this list.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "customSubTypes": {
            "description": "Filter by custom sub-type (OR within field). Matches custom findings whose\n custom_sub_type equals any listed value.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "decoyIds": {
            "description": "Filter by decoy IDs (OR within field). Matches findings whose\n target.decoy_target.decoy_id is in this list.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "edgeIds": {
            "description": "Filter by Edge IDs (OR within field): Edge findings (FINDING_TYPE_EDGE)\n raised on any listed Edge. Edge findings carry no app_id, so do not pair\n this with app_ids. Empty = not applied.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "findingTypes": {
            "description": "Filter by finding type (OR within field).",
            "items": {
              "enum": [
                "FINDING_TYPE_UNSPECIFIED",
                "FINDING_TYPE_SIMILAR_USERNAME_MATCH",
                "FINDING_TYPE_SERVICE_ACCOUNT_MISCLASSIFICATION",
                "FINDING_TYPE_NHI_UNOWNED",
                "FINDING_TYPE_SERVICE_ACCOUNT_UNOWNED",
                "FINDING_TYPE_DECOY_CREDENTIAL_USED",
                "FINDING_TYPE_CUSTOM",
                "FINDING_TYPE_CONNECTOR_ANOMALY_DETECTION_DISABLED",
                "FINDING_TYPE_DEACTIVATED_OWNER",
                "FINDING_TYPE_UNUSED_SECRET",
                "FINDING_TYPE_CREDENTIAL_PUBLICLY_EXPOSED",
                "FINDING_TYPE_DECOY_PUBLICLY_EXPOSED",
                "FINDING_TYPE_CREDENTIAL_EXPIRING",
                "FINDING_TYPE_CONNECTOR_SYNC_FAILING",
                "FINDING_TYPE_SHADOW_MCP",
                "FINDING_TYPE_SHADOW_APP",
                "FINDING_TYPE_MCP_GATEWAY_TOOL_CALL_RISK",
                "FINDING_TYPE_EDGE"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "includeUnassigned": {
            "description": "When true, includes findings with no assignee. An explicit predicate for\n direct API callers who prefer a bool over the \"unassigned\" sentinel in\n assignee_identity_user_ids; both signals are accepted.",
            "type": "boolean"
          },
          "nhiTypes": {
            "description": "Filter to findings whose target resource's nhi_type is one of these (OR\n within field). Empty = not applied; pass all NhiType values to match any\n nhi resource.",
            "items": {
              "enum": [
                "NHI_TYPE_UNSPECIFIED",
                "NHI_TYPE_APP_REGISTRATION",
                "NHI_TYPE_ASSUMABLE_ROLE",
                "NHI_TYPE_MANAGED_IDENTITY"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "ownerIdentityUserIds": {
            "deprecated": true,
            "description": "Deprecated: use assignee_identity_user_ids instead.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pageSize": {
            "description": "Maximum number of findings to return per page.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "Pagination token from a previous response.",
            "type": "string"
          },
          "query": {
            "description": "Free text search query.",
            "type": "string"
          },
          "refs": {
            "description": "Restrict results to these finding refs by ID (OR within field). Backs the\n websocket-notify re-query, which refetches just the changed finding(s) to\n patch a row in place or detect it dropping out of the filter; empty = not\n applied. Hits the (tenant_id, id) primary key.",
            "items": {
              "$ref": "#/components/schemas/c1.api.finding.v1.FindingRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "scopeToAppOwner": {
            "description": "When true, restricts results to findings for apps you own. The caller is\n resolved from request credentials (no user id is read from the request),\n so results are always limited to your own apps.",
            "type": "boolean"
          },
          "severities": {
            "description": "Filter by severities (OR within field).",
            "items": {
              "enum": [
                "FINDING_SEVERITY_UNSPECIFIED",
                "FINDING_SEVERITY_INFO",
                "FINDING_SEVERITY_LOW",
                "FINDING_SEVERITY_MEDIUM",
                "FINDING_SEVERITY_HIGH",
                "FINDING_SEVERITY_CRITICAL"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "sourceKinds": {
            "description": "Filter by source kind (OR within field).",
            "items": {
              "enum": [
                "FINDING_SOURCE_KIND_UNSPECIFIED",
                "FINDING_SOURCE_KIND_DETECTOR",
                "FINDING_SOURCE_KIND_EXTERNAL"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "states": {
            "description": "Filter by states (OR within field).",
            "items": {
              "enum": [
                "FINDING_STATE_UNSPECIFIED",
                "FINDING_STATE_OPEN",
                "FINDING_STATE_IN_PROGRESS",
                "FINDING_STATE_RESOLVED",
                "FINDING_STATE_SNOOZED",
                "FINDING_STATE_RISK_ACCEPTED",
                "FINDING_STATE_SUPPRESSED"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Finding Search Request",
        "type": "object",
        "x-speakeasy-name-override": "FindingSearchRequest"
      },
      "c1.api.finding.v1.FindingSearchResponse": {
        "description": "The FindingSearchResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.finding.v1.Finding"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Finding Search Response",
        "type": "object",
        "x-speakeasy-name-override": "FindingSearchResponse"
      },
      "c1.api.finding.v1.FindingSettingsEntry": {
        "description": "FindingSettingsEntry is a requested change to one type, which is why it is a\n separate message from FindingTypeSetting rather than the same one reused: an\n update needs enum validation and presence on `enabled` so an omitted field is\n an error, while a response always carries a value and must not make callers\n handle an absent one.",
        "properties": {
          "enabled": {
            "description": "Target state. Required: explicit presence keeps an omitted field from\n reading as false and silently switching a detector off.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "findingType": {
            "description": "The finding type to configure. Must be a detector-backed type.",
            "enum": [
              "FINDING_TYPE_UNSPECIFIED",
              "FINDING_TYPE_SIMILAR_USERNAME_MATCH",
              "FINDING_TYPE_SERVICE_ACCOUNT_MISCLASSIFICATION",
              "FINDING_TYPE_NHI_UNOWNED",
              "FINDING_TYPE_SERVICE_ACCOUNT_UNOWNED",
              "FINDING_TYPE_DECOY_CREDENTIAL_USED",
              "FINDING_TYPE_CUSTOM",
              "FINDING_TYPE_CONNECTOR_ANOMALY_DETECTION_DISABLED",
              "FINDING_TYPE_DEACTIVATED_OWNER",
              "FINDING_TYPE_UNUSED_SECRET",
              "FINDING_TYPE_CREDENTIAL_PUBLICLY_EXPOSED",
              "FINDING_TYPE_DECOY_PUBLICLY_EXPOSED",
              "FINDING_TYPE_CREDENTIAL_EXPIRING",
              "FINDING_TYPE_CONNECTOR_SYNC_FAILING",
              "FINDING_TYPE_SHADOW_MCP",
              "FINDING_TYPE_SHADOW_APP",
              "FINDING_TYPE_MCP_GATEWAY_TOOL_CALL_RISK",
              "FINDING_TYPE_EDGE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Finding Settings Entry",
        "type": "object",
        "x-speakeasy-name-override": "FindingSettingsEntry"
      },
      "c1.api.finding.v1.FindingTransform": {
        "description": "FindingTransform is a single mutation applied to a finding by a matched\n transformation rule. Structured ops are the authoring surface; a future\n raw-CEL arm continues numbering at 104.\n\nThis message contains a oneof named kind. Only a single field of the following list may be set at a time:\n  - setSeverity\n  - setTags\n  - removeTags\n  - setAssignee\n",
        "properties": {
          "removeTags": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.RemoveTags"
              },
              {
                "type": "null"
              }
            ]
          },
          "setAssignee": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.SetAssignee"
              },
              {
                "type": "null"
              }
            ]
          },
          "setSeverity": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.SetSeverity"
              },
              {
                "type": "null"
              }
            ]
          },
          "setTags": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.SetTags"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Finding Transform",
        "type": "object",
        "x-speakeasy-name-override": "FindingTransform"
      },
      "c1.api.finding.v1.FindingTransformationRule": {
        "description": "FindingTransformationRule transforms a finding at processing time, before\n routing runs. Rules fall through: every matching rule applies its transforms\n in ascending evaluation_order; the last rule to write a given field wins.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "condition": {
            "description": "CEL boolean over the Finding object; empty matches all. Evaluated over\n base/immutable inputs only (see the transformation env).",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "The description field.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "enabled": {
            "description": "The enabled field.",
            "type": "boolean"
          },
          "evaluationOrder": {
            "description": "Application order (ascending; last-applied rule wins per field). A sequence,\n not a precedence rank.",
            "format": "int32",
            "type": "integer"
          },
          "findingType": {
            "description": "The findingType field.",
            "enum": [
              "FINDING_TYPE_UNSPECIFIED",
              "FINDING_TYPE_SIMILAR_USERNAME_MATCH",
              "FINDING_TYPE_SERVICE_ACCOUNT_MISCLASSIFICATION",
              "FINDING_TYPE_NHI_UNOWNED",
              "FINDING_TYPE_SERVICE_ACCOUNT_UNOWNED",
              "FINDING_TYPE_DECOY_CREDENTIAL_USED",
              "FINDING_TYPE_CUSTOM",
              "FINDING_TYPE_CONNECTOR_ANOMALY_DETECTION_DISABLED",
              "FINDING_TYPE_DEACTIVATED_OWNER",
              "FINDING_TYPE_UNUSED_SECRET",
              "FINDING_TYPE_CREDENTIAL_PUBLICLY_EXPOSED",
              "FINDING_TYPE_DECOY_PUBLICLY_EXPOSED",
              "FINDING_TYPE_CREDENTIAL_EXPIRING",
              "FINDING_TYPE_CONNECTOR_SYNC_FAILING",
              "FINDING_TYPE_SHADOW_MCP",
              "FINDING_TYPE_SHADOW_APP",
              "FINDING_TYPE_MCP_GATEWAY_TOOL_CALL_RISK",
              "FINDING_TYPE_EDGE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "templateId": {
            "description": "The templateId field.",
            "type": "string"
          },
          "transforms": {
            "description": "Ordered transforms applied when the rule matches.",
            "items": {
              "$ref": "#/components/schemas/c1.api.finding.v1.FindingTransform"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Finding Transformation Rule",
        "type": "object",
        "x-speakeasy-name-override": "FindingTransformationRule"
      },
      "c1.api.finding.v1.FindingTypeSetting": {
        "description": "FindingTypeSetting is one finding type's detection switch as it currently\n stands. Named for a single type on purpose: the stored model\n c1.models.finding.v1.FindingSettings is the tenant-wide object holding every\n type, and one name for both granularities reads as the same thing twice.\n Display copy for the type is client-owned; this carries state only.",
        "properties": {
          "enabled": {
            "description": "Whether the system detects this finding type. Types never configured read\n back their shipped default, which is per type rather than uniformly on.",
            "type": "boolean"
          },
          "findingType": {
            "description": "The findingType field.",
            "enum": [
              "FINDING_TYPE_UNSPECIFIED",
              "FINDING_TYPE_SIMILAR_USERNAME_MATCH",
              "FINDING_TYPE_SERVICE_ACCOUNT_MISCLASSIFICATION",
              "FINDING_TYPE_NHI_UNOWNED",
              "FINDING_TYPE_SERVICE_ACCOUNT_UNOWNED",
              "FINDING_TYPE_DECOY_CREDENTIAL_USED",
              "FINDING_TYPE_CUSTOM",
              "FINDING_TYPE_CONNECTOR_ANOMALY_DETECTION_DISABLED",
              "FINDING_TYPE_DEACTIVATED_OWNER",
              "FINDING_TYPE_UNUSED_SECRET",
              "FINDING_TYPE_CREDENTIAL_PUBLICLY_EXPOSED",
              "FINDING_TYPE_DECOY_PUBLICLY_EXPOSED",
              "FINDING_TYPE_CREDENTIAL_EXPIRING",
              "FINDING_TYPE_CONNECTOR_SYNC_FAILING",
              "FINDING_TYPE_SHADOW_MCP",
              "FINDING_TYPE_SHADOW_APP",
              "FINDING_TYPE_MCP_GATEWAY_TOOL_CALL_RISK",
              "FINDING_TYPE_EDGE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "hasRemediationPlaybook": {
            "deprecated": true,
            "description": "Deprecated: always true, because remediation is available for all finding types.\n Kept for wire compatibility; clients should not gate on it.",
            "type": "boolean"
          }
        },
        "title": "Finding Type Setting",
        "type": "object",
        "x-speakeasy-name-override": "FindingTypeSetting"
      },
      "c1.api.finding.v1.GetEdgeFindingSettingsResponse": {
        "description": "The GetEdgeFindingSettingsResponse message.",
        "properties": {
          "list": {
            "description": "One entry per Edge finding category, in EdgeFindingCategory declaration\n order.",
            "items": {
              "$ref": "#/components/schemas/c1.api.finding.v1.EdgeFindingCategorySetting"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "subcategories": {
            "description": "One entry per AI usage subcategory, in EdgeFindingSubcategory\n declaration order.",
            "items": {
              "$ref": "#/components/schemas/c1.api.finding.v1.EdgeFindingSubcategorySetting"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Get Edge Finding Settings Response",
        "type": "object",
        "x-speakeasy-name-override": "GetEdgeFindingSettingsResponse"
      },
      "c1.api.finding.v1.GetFindingResponse": {
        "description": "The GetFindingResponse message.",
        "properties": {
          "expanded": {
            "description": "The expanded field.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "finding": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.Finding"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get Finding Response",
        "type": "object",
        "x-speakeasy-name-override": "GetFindingResponse"
      },
      "c1.api.finding.v1.GetFindingRoutingRuleResponse": {
        "description": "The GetFindingRoutingRuleResponse message.",
        "properties": {
          "routingRule": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.FindingRoutingRule"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get Finding Routing Rule Response",
        "type": "object",
        "x-speakeasy-name-override": "GetFindingRoutingRuleResponse"
      },
      "c1.api.finding.v1.GetFindingTransformationRuleResponse": {
        "description": "The GetFindingTransformationRuleResponse message.",
        "properties": {
          "transformationRule": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.FindingTransformationRule"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get Finding Transformation Rule Response",
        "type": "object",
        "x-speakeasy-name-override": "GetFindingTransformationRuleResponse"
      },
      "c1.api.finding.v1.IdentityUserTarget": {
        "description": "The IdentityUserTarget message.",
        "properties": {
          "identityUserId": {
            "description": "The identityUserId field.",
            "type": "string"
          }
        },
        "title": "Identity User Target",
        "type": "object",
        "x-speakeasy-name-override": "IdentityUserTarget"
      },
      "c1.api.finding.v1.InvokeFunctionDispatcher": {
        "description": "InvokeFunctionDispatcher runs a published C1 function by id.",
        "properties": {
          "args": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Arguments passed to the function, keyed by arg name (v0: verbatim values;\n CEL evaluation is a later phase).",
            "type": "object"
          },
          "functionCommitId": {
            "description": "Optional pinned function commit; empty floats to the published commit.",
            "type": "string"
          },
          "functionId": {
            "description": "ID of the published function to invoke.",
            "type": "string"
          }
        },
        "title": "Invoke Function Dispatcher",
        "type": "object",
        "x-speakeasy-name-override": "InvokeFunctionDispatcher"
      },
      "c1.api.finding.v1.ListFindingRoutingRulesResponse": {
        "description": "The ListFindingRoutingRulesResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.finding.v1.FindingRoutingRule"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "List Finding Routing Rules Response",
        "type": "object",
        "x-speakeasy-name-override": "ListFindingRoutingRulesResponse"
      },
      "c1.api.finding.v1.ListFindingSettingsResponse": {
        "description": "The ListFindingSettingsResponse message.",
        "properties": {
          "configured": {
            "description": "True once the tenant has explicitly saved their finding-type settings at\n least once, regardless of whether any value differs from default. False\n means the tenant has never saved, so every entry in `list` is the\n shipped default, unconfirmed by the tenant.",
            "type": "boolean"
          },
          "list": {
            "description": "One entry per configurable finding type, in FindingType declaration order.\n Custom findings are excluded: they arrive over CreateFinding rather than\n from a detector, so there is nothing to switch off.",
            "items": {
              "$ref": "#/components/schemas/c1.api.finding.v1.FindingTypeSetting"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "List Finding Settings Response",
        "type": "object",
        "x-speakeasy-name-override": "ListFindingSettingsResponse"
      },
      "c1.api.finding.v1.ListFindingTransformationRulesResponse": {
        "description": "The ListFindingTransformationRulesResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.finding.v1.FindingTransformationRule"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "List Finding Transformation Rules Response",
        "type": "object",
        "x-speakeasy-name-override": "ListFindingTransformationRulesResponse"
      },
      "c1.api.finding.v1.McpGatewayToolCallRiskEvidence": {
        "description": "McpGatewayToolCallRiskEvidence carries the rule that fired and the\n subject/summary the UI renders. No detector writes this yet -- see\n FINDING_TYPE_MCP_GATEWAY_TOOL_CALL_RISK.",
        "properties": {
          "evidence": {
            "description": "The evidence field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.finding.v1.McpGatewayToolCallRiskEvidence.KeyValue"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "kind": {
            "description": "Human-readable rule category, e.g. \"Prompt injection in tool output\".",
            "type": "string"
          },
          "ruleId": {
            "description": "Detection rule id, e.g. \"MCP-201\".",
            "type": "string"
          },
          "subject": {
            "description": "Human-readable subject, e.g. \"agent-support-triage -\u003e okta/reset_password\".",
            "type": "string"
          },
          "summary": {
            "description": "The summary field.",
            "type": "string"
          }
        },
        "title": "Mcp Gateway Tool Call Risk Evidence",
        "type": "object",
        "x-speakeasy-name-override": "McpGatewayToolCallRiskEvidence"
      },
      "c1.api.finding.v1.McpGatewayToolCallRiskEvidence.KeyValue": {
        "description": "The KeyValue message.",
        "properties": {
          "key": {
            "description": "The key field.",
            "type": "string"
          },
          "value": {
            "description": "The value field.",
            "type": "string"
          }
        },
        "title": "Key Value",
        "type": "object",
        "x-speakeasy-name-override": "KeyValue"
      },
      "c1.api.finding.v1.McpGatewayToolCallRiskType": {
        "description": "McpGatewayToolCallRiskType: the discriminator carries no payload beyond\n itself -- the specific detection rule and subject live on\n McpGatewayToolCallRiskEvidence, since which fields are meaningful (a\n tool-call trace vs. a volume baseline vs. an unregistered server) varies\n per rule, not per dedup identity.",
        "title": "Mcp Gateway Tool Call Risk Type",
        "type": "object",
        "x-speakeasy-name-override": "McpGatewayToolCallRiskType"
      },
      "c1.api.finding.v1.NhiUnownedEvidence": {
        "description": "The NhiUnownedEvidence message.",
        "properties": {
          "checkedRoleSlug": {
            "description": "The checkedRoleSlug field.",
            "type": "string"
          },
          "ownerCount": {
            "description": "The ownerCount field.",
            "format": "uint32",
            "type": "integer"
          },
          "suggestedOwners": {
            "description": "The suggestedOwners field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.finding.v1.SuggestedOwner"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Nhi Unowned Evidence",
        "type": "object",
        "x-speakeasy-name-override": "NhiUnownedEvidence"
      },
      "c1.api.finding.v1.NhiUnownedType": {
        "description": "NhiUnownedType: an AppResource with a non-human-identity type has no\n primary owner. Target: AppResourceTarget (the unowned NHI resource).",
        "title": "Nhi Unowned Type",
        "type": "object",
        "x-speakeasy-name-override": "NhiUnownedType"
      },
      "c1.api.finding.v1.NotifyDispatcher": {
        "description": "NotifyDispatcher emits a notifications_v2 notification about the matched\n finding. Exactly one of audience / slack_channel is set: audience notifies\n people (each on whichever channels they enabled in their own notification\n settings), slack_channel posts to one channel.",
        "properties": {
          "audience": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.FindingAudience"
              },
              {
                "type": "null"
              }
            ]
          },
          "batchWindowSeconds": {
            "deprecated": true,
            "description": "Deprecated: no longer honored. Grouping is owned by notifications_v2, which\n batches finding notifications on its shared debounce window. Still accepted\n and round-tripped so a stored value is not destroyed.",
            "format": "uint32",
            "type": "integer"
          },
          "detailLevel": {
            "deprecated": true,
            "description": "Deprecated: no longer honored. Every finding notification renders full\n detail. Still accepted and round-tripped so a stored value is not\n destroyed.",
            "enum": [
              "FINDING_NOTIFY_DETAIL_LEVEL_UNSPECIFIED",
              "FINDING_NOTIFY_DETAIL_LEVEL_SUMMARY",
              "FINDING_NOTIFY_DETAIL_LEVEL_FULL_DETAIL"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "slackChannel": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.SlackChannelTarget"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Notify Dispatcher",
        "type": "object",
        "x-speakeasy-name-override": "NotifyDispatcher"
      },
      "c1.api.finding.v1.RemoveTags": {
        "description": "The RemoveTags message.",
        "properties": {
          "keys": {
            "description": "The keys field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Remove Tags",
        "type": "object",
        "x-speakeasy-name-override": "RemoveTags"
      },
      "c1.api.finding.v1.ReopenAction": {
        "description": "ReopenAction parameters for UpdateFindingState.",
        "title": "Reopen Action",
        "type": "object",
        "x-speakeasy-name-override": "ReopenAction"
      },
      "c1.api.finding.v1.ResolveAction": {
        "description": "ResolveAction parameters for UpdateFindingState (manual resolve).",
        "properties": {
          "reason": {
            "description": "The reason field.",
            "type": "string"
          }
        },
        "title": "Resolve Action",
        "type": "object",
        "x-speakeasy-name-override": "ResolveAction"
      },
      "c1.api.finding.v1.ServiceAccountMisclassificationEvidence": {
        "description": "The ServiceAccountMisclassificationEvidence message.",
        "properties": {
          "detectionReason": {
            "description": "The detectionReason field.",
            "type": "string"
          }
        },
        "title": "Service Account Misclassification Evidence",
        "type": "object",
        "x-speakeasy-name-override": "ServiceAccountMisclassificationEvidence"
      },
      "c1.api.finding.v1.ServiceAccountMisclassificationType": {
        "description": "The ServiceAccountMisclassificationType message.",
        "properties": {
          "currentAccountType": {
            "description": "The currentAccountType field.",
            "enum": [
              "APP_USER_TYPE_UNSPECIFIED",
              "APP_USER_TYPE_USER",
              "APP_USER_TYPE_SERVICE_ACCOUNT",
              "APP_USER_TYPE_SYSTEM_ACCOUNT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "detectedAccountType": {
            "description": "The detectedAccountType field.",
            "enum": [
              "APP_USER_TYPE_UNSPECIFIED",
              "APP_USER_TYPE_USER",
              "APP_USER_TYPE_SERVICE_ACCOUNT",
              "APP_USER_TYPE_SYSTEM_ACCOUNT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Service Account Misclassification Type",
        "type": "object",
        "x-speakeasy-name-override": "ServiceAccountMisclassificationType"
      },
      "c1.api.finding.v1.ServiceAccountUnownedType": {
        "description": "ServiceAccountUnownedType: a service-account-classified AppUser has no\n primary owner. Target: AppUserTarget (the unowned service account).",
        "title": "Service Account Unowned Type",
        "type": "object",
        "x-speakeasy-name-override": "ServiceAccountUnownedType"
      },
      "c1.api.finding.v1.SetAssignee": {
        "description": "SetAssignee sets the finding's assignee. Each arm names WHO, so derived arms\n can resolve the assignee from the finding's context without a schema break.\n\n Resolves to exactly one identity user id, or to none. There is deliberately no\n RemoveAssignee kind and no arm naming nobody: a transformation rule never\n clears an assignee, which stays a human action via UpdateFindingAssignee.\n\nThis message contains a oneof named typ. Only a single field of the following list may be set at a time:\n  - directAssignee\n",
        "properties": {
          "directAssignee": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.DirectAssignee"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Set Assignee",
        "type": "object",
        "x-speakeasy-name-override": "SetAssignee"
      },
      "c1.api.finding.v1.SetSeverity": {
        "description": "The SetSeverity message.",
        "properties": {
          "severity": {
            "description": "The severity field.",
            "enum": [
              "FINDING_SEVERITY_UNSPECIFIED",
              "FINDING_SEVERITY_INFO",
              "FINDING_SEVERITY_LOW",
              "FINDING_SEVERITY_MEDIUM",
              "FINDING_SEVERITY_HIGH",
              "FINDING_SEVERITY_CRITICAL"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Set Severity",
        "type": "object",
        "x-speakeasy-name-override": "SetSeverity"
      },
      "c1.api.finding.v1.SetTags": {
        "description": "The SetTags message.",
        "properties": {
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "The tags field.",
            "type": "object"
          }
        },
        "title": "Set Tags",
        "type": "object",
        "x-speakeasy-name-override": "SetTags"
      },
      "c1.api.finding.v1.ShadowAppType": {
        "description": "ShadowAppType: a UsageResource was discovered outside the tenant's\n governed connector reach. Dedup is the full UsageResource identity, so the\n type payload carries nothing beyond the discriminator itself -- the\n complete identity lives on usage_resource_target.",
        "title": "Shadow App Type",
        "type": "object",
        "x-speakeasy-name-override": "ShadowAppType"
      },
      "c1.api.finding.v1.ShadowMcpEvidence": {
        "description": "ShadowMcpEvidence carries counts only -- occurrence detail (which users,\n devices, harnesses) is resolved dynamically, not stored here.",
        "properties": {
          "deviceCount": {
            "description": "Distinct devices observed running the product outside the governed gateway.",
            "format": "uint32",
            "type": "integer"
          },
          "userCount": {
            "description": "Distinct users observed running the product outside the governed gateway.",
            "format": "uint32",
            "type": "integer"
          }
        },
        "title": "Shadow Mcp Evidence",
        "type": "object",
        "x-speakeasy-name-override": "ShadowMcpEvidence"
      },
      "c1.api.finding.v1.ShadowMcpOccurrence": {
        "description": "ShadowMcpOccurrence is one device running a shadow-mcp finding's MCP\n product, resolved live from DeviceInventoryMcpObservation rather than\n stored on the Finding -- see ShadowMcpEvidence's own doc for why occurrence\n detail isn't persisted there.",
        "properties": {
          "deviceId": {
            "description": "The deviceId field.",
            "type": "string"
          },
          "firstSeenAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "harnessKind": {
            "description": "The harnessKind field.",
            "type": "string"
          },
          "lastSeenAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "userId": {
            "description": "Resolved owner of the device (device_registration's user_principal_id).\n Empty when the device has no resolved owner.",
            "type": "string"
          }
        },
        "title": "Shadow Mcp Occurrence",
        "type": "object",
        "x-speakeasy-name-override": "ShadowMcpOccurrence"
      },
      "c1.api.finding.v1.ShadowMcpOccurrenceServiceSearchRequest": {
        "description": "The ShadowMcpOccurrenceServiceSearchRequest message.",
        "properties": {
          "findingId": {
            "description": "The shadow-mcp finding to resolve occurrences for.",
            "type": "string"
          },
          "pageSize": {
            "description": "The pageSize field.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          }
        },
        "title": "Shadow Mcp Occurrence Service Search Request",
        "type": "object",
        "x-speakeasy-name-override": "ShadowMcpOccurrenceServiceSearchRequest"
      },
      "c1.api.finding.v1.ShadowMcpOccurrenceServiceSearchResponse": {
        "description": "The ShadowMcpOccurrenceServiceSearchResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.finding.v1.ShadowMcpOccurrence"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Shadow Mcp Occurrence Service Search Response",
        "type": "object",
        "x-speakeasy-name-override": "ShadowMcpOccurrenceServiceSearchResponse"
      },
      "c1.api.finding.v1.ShadowMcpType": {
        "description": "ShadowMcpType: a device is running an MCP server that isn't reached through\n the tenant's governed MCP gateway. Dedup is mcp_identifier -- one finding\n per tenant per distinct MCP product, regardless of how many\n users/devices/harnesses run it. Target: TenantTarget.",
        "properties": {
          "mcpIdentifier": {
            "description": "Stable identity of the MCP product, shared across every user/device/harness\n that runs it. Maps to DeviceInventoryMcpObservation.logical_product_key;\n display name is resolved from there, not duplicated here.",
            "type": "string"
          },
          "transport": {
            "description": "Denormalized from DeviceInventoryMcpObservation.transport at detection\n time. Distinguishes a locally-launched (STDIO) product, which has no\n address to connect to, from a remote one, which does.",
            "enum": [
              "SHADOW_MCP_TRANSPORT_UNSPECIFIED",
              "SHADOW_MCP_TRANSPORT_STDIO",
              "SHADOW_MCP_TRANSPORT_REMOTE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Shadow Mcp Type",
        "type": "object",
        "x-speakeasy-name-override": "ShadowMcpType"
      },
      "c1.api.finding.v1.SimilarUsernameMatchEvidence": {
        "description": "The SimilarUsernameMatchEvidence message.",
        "properties": {
          "appUsername": {
            "description": "The appUsername field.",
            "type": "string"
          },
          "identityUsername": {
            "description": "The identityUsername field.",
            "type": "string"
          },
          "similarityScore": {
            "description": "The similarityScore field.",
            "type": "number"
          }
        },
        "title": "Similar Username Match Evidence",
        "type": "object",
        "x-speakeasy-name-override": "SimilarUsernameMatchEvidence"
      },
      "c1.api.finding.v1.SimilarUsernameMatchType": {
        "description": "The SimilarUsernameMatchType message.",
        "properties": {
          "proposedIdentityUserId": {
            "description": "The proposedIdentityUserId field.",
            "type": "string"
          }
        },
        "title": "Similar Username Match Type",
        "type": "object",
        "x-speakeasy-name-override": "SimilarUsernameMatchType"
      },
      "c1.api.finding.v1.SlackChannelTarget": {
        "description": "SlackChannelTarget names one Slack channel. Exactly one of channel_name /\n channel_id is set; a name is resolved at send time, so an unresolvable name\n fails the dispatch rather than the rule edit.",
        "properties": {
          "channelId": {
            "description": "The channelId field.",
            "type": "string"
          },
          "channelName": {
            "description": "The channelName field.",
            "type": "string"
          }
        },
        "title": "Slack Channel Target",
        "type": "object",
        "x-speakeasy-name-override": "SlackChannelTarget"
      },
      "c1.api.finding.v1.SnoozeAction": {
        "description": "SnoozeAction parameters for UpdateFindingState.",
        "properties": {
          "reason": {
            "description": "The reason field.",
            "type": "string"
          },
          "snoozeUntil": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Snooze Action",
        "type": "object",
        "x-speakeasy-name-override": "SnoozeAction"
      },
      "c1.api.finding.v1.SnoozeRoutingAction": {
        "description": "SnoozeRoutingAction snoozes a matched finding for a relative duration\n (resolved to snooze_until = now + duration at execution time).",
        "properties": {
          "duration": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "reason": {
            "description": "The reason field.",
            "type": "string"
          }
        },
        "title": "Snooze Routing Action",
        "type": "object",
        "x-speakeasy-name-override": "SnoozeRoutingAction"
      },
      "c1.api.finding.v1.SuggestedOwner": {
        "description": "SuggestedOwner is a candidate owner for an unowned NHI.",
        "properties": {
          "confidencePercent": {
            "description": "Max of reasons[].percent at detection time.",
            "format": "uint32",
            "type": "integer"
          },
          "reasons": {
            "description": "The reasons field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.finding.v1.SuggestedOwnerReason"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "userId": {
            "description": "C1 User ID; readers resolve the name.",
            "type": "string"
          }
        },
        "title": "Suggested Owner",
        "type": "object",
        "x-speakeasy-name-override": "SuggestedOwner"
      },
      "c1.api.finding.v1.SuggestedOwnerReason": {
        "description": "The SuggestedOwnerReason message.",
        "properties": {
          "denominator": {
            "description": "The denominator field.",
            "format": "uint32",
            "type": "integer"
          },
          "kind": {
            "description": "The kind field.",
            "enum": [
              "SUGGESTED_OWNER_REASON_KIND_UNSPECIFIED",
              "SUGGESTED_OWNER_REASON_KIND_CONNECTOR_REPORTED_OWNER",
              "SUGGESTED_OWNER_REASON_KIND_GRANT_ON_RESOURCE",
              "SUGGESTED_OWNER_REASON_KIND_CREDENTIAL_CREATOR",
              "SUGGESTED_OWNER_REASON_KIND_SIBLING_NHI_OWNER",
              "SUGGESTED_OWNER_REASON_KIND_APP_OWNER",
              "SUGGESTED_OWNER_REASON_KIND_MANAGER_OF_INACTIVE_CANDIDATE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "numerator": {
            "description": "The numerator field.",
            "format": "uint32",
            "type": "integer"
          },
          "percent": {
            "description": "0..100, derived from numerator / denominator.",
            "format": "uint32",
            "type": "integer"
          },
          "relatedId": {
            "description": "Entitlement, sibling resource or replaced user ID; never free text.",
            "type": "string"
          }
        },
        "title": "Suggested Owner Reason",
        "type": "object",
        "x-speakeasy-name-override": "SuggestedOwnerReason"
      },
      "c1.api.finding.v1.SuppressRoutingAction": {
        "description": "The SuppressRoutingAction message.",
        "properties": {
          "reason": {
            "description": "The reason field.",
            "type": "string"
          }
        },
        "title": "Suppress Routing Action",
        "type": "object",
        "x-speakeasy-name-override": "SuppressRoutingAction"
      },
      "c1.api.finding.v1.SuppressStateAction": {
        "description": "SuppressStateAction parameters for UpdateFindingState.",
        "properties": {
          "reason": {
            "description": "The reason field.",
            "type": "string"
          }
        },
        "title": "Suppress State Action",
        "type": "object",
        "x-speakeasy-name-override": "SuppressStateAction"
      },
      "c1.api.finding.v1.TenantTarget": {
        "description": "TenantTarget scopes a finding to the whole tenant. It carries no subject id;\n the finding's tenant is the scope.",
        "title": "Tenant Target",
        "type": "object",
        "x-speakeasy-name-override": "TenantTarget"
      },
      "c1.api.finding.v1.TriggerAutomationDispatcher": {
        "description": "TriggerAutomationDispatcher runs a C1 automation by id (the \"Run now\" path).",
        "properties": {
          "automationId": {
            "description": "ID of the C1 automation/workflow to run.",
            "type": "string"
          },
          "inputMapping": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Inputs passed to the automation, keyed by input name (v0: verbatim values;\n CEL evaluation is a later phase).",
            "type": "object"
          }
        },
        "title": "Trigger Automation Dispatcher",
        "type": "object",
        "x-speakeasy-name-override": "TriggerAutomationDispatcher"
      },
      "c1.api.finding.v1.UnsuppressAction": {
        "deprecated": true,
        "description": "UnsuppressAction parameters for UpdateFindingState.",
        "title": "Unsuppress Action",
        "type": "object",
        "x-speakeasy-name-override": "UnsuppressAction"
      },
      "c1.api.finding.v1.UnusedSecretEvidence": {
        "description": "The UnusedSecretEvidence message.",
        "properties": {
          "lastUsedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Unused Secret Evidence",
        "type": "object",
        "x-speakeasy-name-override": "UnusedSecretEvidence"
      },
      "c1.api.finding.v1.UnusedSecretType": {
        "description": "UnusedSecretType: a secret-trait AppResource has not been used in over the\n detector's staleness threshold. Target: AppResourceTarget.",
        "title": "Unused Secret Type",
        "type": "object",
        "x-speakeasy-name-override": "UnusedSecretType"
      },
      "c1.api.finding.v1.UpdateEdgeFindingSettingsRequest": {
        "description": "The UpdateEdgeFindingSettingsRequest message.",
        "properties": {
          "settings": {
            "description": "Applied as one atomic write together with subcategory_settings.\n Categories not listed keep their current state; a category listed twice\n is rejected.",
            "items": {
              "$ref": "#/components/schemas/c1.api.finding.v1.EdgeFindingSettingsEntry"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "subcategorySettings": {
            "description": "Same contract as settings, for AI usage subcategories.",
            "items": {
              "$ref": "#/components/schemas/c1.api.finding.v1.EdgeFindingSubcategorySettingsEntry"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Update Edge Finding Settings Request",
        "type": "object",
        "x-speakeasy-name-override": "UpdateEdgeFindingSettingsRequest"
      },
      "c1.api.finding.v1.UpdateEdgeFindingSettingsResponse": {
        "description": "The UpdateEdgeFindingSettingsResponse message.",
        "properties": {
          "list": {
            "description": "Every category after the write, in the same shape GetEdgeFindingSettings\n returns.",
            "items": {
              "$ref": "#/components/schemas/c1.api.finding.v1.EdgeFindingCategorySetting"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "subcategories": {
            "description": "Every AI usage subcategory after the write.",
            "items": {
              "$ref": "#/components/schemas/c1.api.finding.v1.EdgeFindingSubcategorySetting"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Update Edge Finding Settings Response",
        "type": "object",
        "x-speakeasy-name-override": "UpdateEdgeFindingSettingsResponse"
      },
      "c1.api.finding.v1.UpdateFindingAssigneeRequestInput": {
        "description": "The UpdateFindingAssigneeRequest message.",
        "properties": {
          "assigneeIdentityUserId": {
            "description": "The identity user to assign. Empty clears the assignment.",
            "type": "string"
          }
        },
        "title": "Update Finding Assignee Request",
        "type": "object",
        "x-speakeasy-name-override": "UpdateFindingAssigneeRequest"
      },
      "c1.api.finding.v1.UpdateFindingAssigneeResponse": {
        "description": "The UpdateFindingAssigneeResponse message.",
        "properties": {
          "finding": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.Finding"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Update Finding Assignee Response",
        "type": "object",
        "x-speakeasy-name-override": "UpdateFindingAssigneeResponse"
      },
      "c1.api.finding.v1.UpdateFindingRoutingRuleRequestInput": {
        "description": "The UpdateFindingRoutingRuleRequest message.",
        "properties": {
          "routingRule": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.FindingRoutingRule"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Update Finding Routing Rule Request",
        "type": "object",
        "x-speakeasy-name-override": "UpdateFindingRoutingRuleRequest"
      },
      "c1.api.finding.v1.UpdateFindingRoutingRuleResponse": {
        "description": "The UpdateFindingRoutingRuleResponse message.",
        "properties": {
          "routingRule": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.FindingRoutingRule"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Update Finding Routing Rule Response",
        "type": "object",
        "x-speakeasy-name-override": "UpdateFindingRoutingRuleResponse"
      },
      "c1.api.finding.v1.UpdateFindingSettingsRequest": {
        "description": "The UpdateFindingSettingsRequest message.",
        "properties": {
          "settings": {
            "description": "Applied as one atomic write, so an admin changing several types either\n lands all of them or none. Empty is valid: a never-configured tenant's\n \"accept the defaults\" save has nothing to diff, and the empty write still\n creates the settings row.",
            "items": {
              "$ref": "#/components/schemas/c1.api.finding.v1.FindingSettingsEntry"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Update Finding Settings Request",
        "type": "object",
        "x-speakeasy-name-override": "UpdateFindingSettingsRequest"
      },
      "c1.api.finding.v1.UpdateFindingSettingsResponse": {
        "description": "The UpdateFindingSettingsResponse message.",
        "properties": {
          "list": {
            "description": "The full catalog after the write, in the same shape ListFindingSettings\n returns.",
            "items": {
              "$ref": "#/components/schemas/c1.api.finding.v1.FindingTypeSetting"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Update Finding Settings Response",
        "type": "object",
        "x-speakeasy-name-override": "UpdateFindingSettingsResponse"
      },
      "c1.api.finding.v1.UpdateFindingStateRequestInput": {
        "description": "The UpdateFindingStateRequest message.\n\nThis message contains a oneof named action. Only a single field of the following list may be set at a time:\n  - snooze\n  - suppress\n  - acceptRisk\n  - unsuppress\n  - resolve\n  - reopen\n",
        "properties": {
          "acceptRisk": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.AcceptRiskAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "reopen": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.ReopenAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "resolve": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.ResolveAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "snooze": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.SnoozeAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "suppress": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.SuppressStateAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "unsuppress": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.UnsuppressAction"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Update Finding State Request",
        "type": "object",
        "x-speakeasy-name-override": "UpdateFindingStateRequest"
      },
      "c1.api.finding.v1.UpdateFindingStateResponse": {
        "description": "The UpdateFindingStateResponse message.",
        "properties": {
          "finding": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.Finding"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Update Finding State Response",
        "type": "object",
        "x-speakeasy-name-override": "UpdateFindingStateResponse"
      },
      "c1.api.finding.v1.UpdateFindingTransformationRuleRequestInput": {
        "description": "The UpdateFindingTransformationRuleRequest message.",
        "properties": {
          "transformationRule": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.FindingTransformationRule"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Update Finding Transformation Rule Request",
        "type": "object",
        "x-speakeasy-name-override": "UpdateFindingTransformationRuleRequest"
      },
      "c1.api.finding.v1.UpdateFindingTransformationRuleResponse": {
        "description": "The UpdateFindingTransformationRuleResponse message.",
        "properties": {
          "transformationRule": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.FindingTransformationRule"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Update Finding Transformation Rule Response",
        "type": "object",
        "x-speakeasy-name-override": "UpdateFindingTransformationRuleResponse"
      },
      "c1.api.finding.v1.WebhookDispatcher": {
        "description": "WebhookDispatcher POSTs to a registered webhook (webhooks v3).",
        "properties": {
          "payloadTemplate": {
            "description": "Optional payload template; empty uses the default finding payload.",
            "type": "string"
          },
          "webhookId": {
            "description": "ID of a registered webhook to POST to.",
            "type": "string"
          }
        },
        "title": "Webhook Dispatcher",
        "type": "object",
        "x-speakeasy-name-override": "WebhookDispatcher"
      },
      "c1.api.form.v1.AdminProviderConfig": {
        "description": "The AdminProviderConfig message.",
        "properties": {
          "defaultValueCel": {
            "description": "The defaultValueCel field.",
            "type": "string"
          },
          "showToUser": {
            "description": "The showToUser field.",
            "type": "boolean"
          }
        },
        "title": "Admin Provider Config",
        "type": "object",
        "x-speakeasy-name-override": "AdminProviderConfig"
      },
      "c1.api.form.v1.AppResourceFilter": {
        "description": "The AppResourceFilter message.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "resourceTypeId": {
            "description": "The resourceTypeId field.",
            "type": "string"
          }
        },
        "title": "App Resource Filter",
        "type": "object",
        "x-speakeasy-name-override": "AppResourceFilter"
      },
      "c1.api.form.v1.AppUserFilter": {
        "description": "The AppUserFilter message.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          }
        },
        "title": "App User Filter",
        "type": "object",
        "x-speakeasy-name-override": "AppUserFilter"
      },
      "c1.api.form.v1.AtLeastOne": {
        "description": "The AtLeastOne message.",
        "title": "At Least One",
        "type": "object",
        "x-speakeasy-name-override": "AtLeastOne"
      },
      "c1.api.form.v1.BoolField": {
        "description": "The BoolField message.\n\nThis message contains a oneof named view. Only a single field of the following list may be set at a time:\n  - checkboxField\n  - toggleField\n",
        "properties": {
          "checkboxField": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.form.v1.CheckboxField"
              },
              {
                "type": "null"
              }
            ]
          },
          "defaultValue": {
            "description": "The defaultValue field.",
            "type": "boolean"
          },
          "rules": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/validate.BoolRules"
              },
              {
                "type": "null"
              }
            ]
          },
          "toggleField": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.form.v1.ToggleField"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Bool Field",
        "type": "object",
        "x-speakeasy-name-override": "BoolField"
      },
      "c1.api.form.v1.C1UserFilter": {
        "description": "C1UserFilter is used to configure a picker for selecting ConductorOne users.\n This is distinct from AppUserFilter which selects accounts within a connected app.",
        "properties": {
          "excludeUserIds": {
            "description": "Remove these users from the selectable set, after user_ids is applied.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "includeDeactivated": {
            "description": "Make deactivated and deleted users selectable. Defaults to enabled-only.",
            "type": "boolean"
          },
          "userIds": {
            "description": "Restrict the selectable set to these users. Empty means every user is selectable.\n Capped at the number of refs SearchUsers accepts in one request.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "C 1 User Filter",
        "type": "object",
        "x-speakeasy-name-override": "C1UserFilter"
      },
      "c1.api.form.v1.CheckboxField": {
        "description": "The CheckboxField message.",
        "title": "Checkbox Field",
        "type": "object",
        "x-speakeasy-name-override": "CheckboxField"
      },
      "c1.api.form.v1.ChipsField": {
        "description": "The ChipsField message.",
        "title": "Chips Field",
        "type": "object",
        "x-speakeasy-name-override": "ChipsField"
      },
      "c1.api.form.v1.DateField": {
        "description": "DateField renders a date picker. The value is an ISO-8601 calendar date\n (\"YYYY-MM-DD\") stored in the enclosing StringField's string value.",
        "properties": {
          "defaultToToday": {
            "description": "Default the field to the render date when the StringField has no default_value.",
            "type": "boolean"
          },
          "maxDate": {
            "description": "Latest selectable date, inclusive, as \"YYYY-MM-DD\". Empty means unbounded.",
            "type": "string"
          },
          "maxDaysFromToday": {
            "description": "Latest selectable date expressed as an offset in days from the date the\n form is rendered; negative is in the past. Set this to 365 to cap a date at\n one year out. When both are set, the earlier of this and max_date applies.\n Enforcement is one day slack in each direction: the picker anchors today at\n the submitter's local midnight and the server anchors in UTC, so 365 admits\n 366 days rather than reject a date the picker itself offered.",
            "format": "int32",
            "type": [
              "integer",
              "null"
            ]
          },
          "minDate": {
            "description": "Earliest selectable date, inclusive, as \"YYYY-MM-DD\". Empty means unbounded.",
            "type": "string"
          },
          "minDaysFromToday": {
            "description": "Earliest selectable date expressed as an offset in days from the date the\n form is rendered; negative is in the past. Prefer this over min_date for a\n rolling window, which would otherwise go stale. When both are set, the\n later of the two applies.",
            "format": "int32",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "title": "Date Field",
        "type": "object",
        "x-speakeasy-name-override": "DateField"
      },
      "c1.api.form.v1.DependentOn": {
        "description": "DependentOn means the fields in field_names are only valid if all fields\n in dependency_field_names are also present",
        "properties": {
          "dependencyFieldNames": {
            "description": "The fields that must be present for the primary field_names to be valid",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Dependent On",
        "type": "object",
        "x-speakeasy-name-override": "DependentOn"
      },
      "c1.api.form.v1.Field": {
        "description": "A field is a single input meant to collect a piece of data from a user\n\nThis message contains a oneof named type. Only a single field of the following list may be set at a time:\n  - stringField\n  - boolField\n  - stringSliceField\n  - int64Field\n  - fileField\n  - oauth2Field\n  - stringMapField\n\n\nThis message contains a oneof named provider_config. Only a single field of the following list may be set at a time:\n  - userConfig\n  - adminConfig\n  - sharedConfig\n",
        "properties": {
          "adminConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.form.v1.AdminProviderConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "boolField": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.form.v1.BoolField"
              },
              {
                "type": "null"
              }
            ]
          },
          "description": {
            "description": "The description field.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "fileField": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.form.v1.FileField"
              },
              {
                "type": "null"
              }
            ]
          },
          "int64Field": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.form.v1.Int64Field"
              },
              {
                "type": "null"
              }
            ]
          },
          "name": {
            "description": "The name field.",
            "type": "string"
          },
          "oauth2Field": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.form.v1.Oauth2Field"
              },
              {
                "type": "null"
              }
            ]
          },
          "readOnly": {
            "description": "When true, this field is displayed to the user but cannot be edited.",
            "type": "boolean"
          },
          "required": {
            "description": "The required field.",
            "type": "boolean"
          },
          "sharedConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.form.v1.SharedProviderConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "stringField": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.form.v1.StringField"
              },
              {
                "type": "null"
              }
            ]
          },
          "stringMapField": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.form.v1.StringMapField"
              },
              {
                "type": "null"
              }
            ]
          },
          "stringSliceField": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.form.v1.StringSliceField"
              },
              {
                "type": "null"
              }
            ]
          },
          "userConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.form.v1.UserProviderConfig"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Field",
        "type": "object",
        "x-speakeasy-name-override": "FormField"
      },
      "c1.api.form.v1.FieldGroup": {
        "description": "The FieldGroup message.",
        "properties": {
          "default": {
            "description": "The default field.",
            "type": "boolean"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "fields": {
            "description": "The fields field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "helpText": {
            "description": "The helpText field.",
            "type": "string"
          },
          "name": {
            "description": "The name field.",
            "type": "string"
          }
        },
        "title": "Field Group",
        "type": "object",
        "x-speakeasy-name-override": "FormFieldGroup"
      },
      "c1.api.form.v1.FieldRelationship": {
        "description": "FieldRelationships can be used during form validation, or they can represent\n information that is necessary to when it comes to visually rendering the form\n\nThis message contains a oneof named kind. Only a single field of the following list may be set at a time:\n  - requiredTogether\n  - atLeastOne\n  - mutuallyExclusive\n  - dependentOn\n",
        "properties": {
          "atLeastOne": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.form.v1.AtLeastOne"
              },
              {
                "type": "null"
              }
            ]
          },
          "dependentOn": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.form.v1.DependentOn"
              },
              {
                "type": "null"
              }
            ]
          },
          "fieldNames": {
            "description": "The names of the fields that share this relationship",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "mutuallyExclusive": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.form.v1.MutuallyExclusive"
              },
              {
                "type": "null"
              }
            ]
          },
          "requiredTogether": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.form.v1.RequiredTogether"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Field Relationship",
        "type": "object",
        "x-speakeasy-name-override": "FieldRelationship"
      },
      "c1.api.form.v1.FileField": {
        "description": "The FileField message.\n\nThis message contains a oneof named view. Only a single field of the following list may be set at a time:\n  - fileInputField\n",
        "properties": {
          "acceptedFileTypes": {
            "description": "The acceptedFileTypes field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "fileInputField": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.form.v1.FileInputField"
              },
              {
                "type": "null"
              }
            ]
          },
          "maxFileSize": {
            "description": "The maxFileSize field.",
            "format": "int64",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "File Field",
        "type": "object",
        "x-speakeasy-name-override": "FileField"
      },
      "c1.api.form.v1.FileInputField": {
        "description": "The FileInputField message.",
        "title": "File Input Field",
        "type": "object",
        "x-speakeasy-name-override": "FileInputField"
      },
      "c1.api.form.v1.Form": {
        "description": "A form is a collection of fields to be filled out by a user",
        "properties": {
          "description": {
            "description": "The description field.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "fieldGroups": {
            "description": "The fieldGroups field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.form.v1.FieldGroup"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "fieldRelationships": {
            "description": "The fieldRelationships field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.form.v1.FieldRelationship"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "fields": {
            "description": "The fields field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.form.v1.Field"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          }
        },
        "title": "Form",
        "type": "object",
        "x-speakeasy-entity": "Request_Schema",
        "x-speakeasy-name-override": "RequestSchemaForm"
      },
      "c1.api.form.v1.Int64Field": {
        "description": "The Int64Field message.\n\nThis message contains a oneof named view. Only a single field of the following list may be set at a time:\n  - numberField\n",
        "properties": {
          "defaultValue": {
            "description": "The defaultValue field.",
            "format": "int64",
            "type": [
              "string",
              "null"
            ]
          },
          "numberField": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.form.v1.NumberField"
              },
              {
                "type": "null"
              }
            ]
          },
          "placeholder": {
            "description": "The placeholder field.",
            "type": "string"
          },
          "rules": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/validate.Int64Rules"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Int 64 Field",
        "type": "object",
        "x-speakeasy-name-override": "Int64Field"
      },
      "c1.api.form.v1.MutuallyExclusive": {
        "description": "The MutuallyExclusive message.",
        "title": "Mutually Exclusive",
        "type": "object",
        "x-speakeasy-name-override": "MutuallyExclusive"
      },
      "c1.api.form.v1.NumberField": {
        "description": "The NumberField message.",
        "properties": {
          "maxValue": {
            "description": "The maxValue field.",
            "format": "int64",
            "type": "string"
          },
          "minValue": {
            "description": "The minValue field.",
            "format": "int64",
            "type": "string"
          },
          "step": {
            "description": "The step field.",
            "format": "int64",
            "type": "string"
          }
        },
        "title": "Number Field",
        "type": "object",
        "x-speakeasy-name-override": "NumberField"
      },
      "c1.api.form.v1.Oauth2Field": {
        "description": "The Oauth2Field message.\n\nThis message contains a oneof named view. Only a single field of the following list may be set at a time:\n  - oauth2FieldView\n",
        "properties": {
          "oauth2FieldView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.form.v1.Oauth2FieldView"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Oauth 2 Field",
        "type": "object",
        "x-speakeasy-name-override": "Oauth2Field"
      },
      "c1.api.form.v1.Oauth2FieldView": {
        "description": "The Oauth2FieldView message.",
        "title": "Oauth 2 Field View",
        "type": "object",
        "x-speakeasy-name-override": "Oauth2FieldView"
      },
      "c1.api.form.v1.PasswordField": {
        "description": "The PasswordField message.",
        "properties": {
          "multiline": {
            "description": "Render the masked input as a multiline textarea, for secrets that span\n lines such as a PEM-encoded key.",
            "type": [
              "boolean",
              "null"
            ]
          }
        },
        "title": "Password Field",
        "type": "object",
        "x-speakeasy-name-override": "PasswordField"
      },
      "c1.api.form.v1.PickerField": {
        "description": "The PickerField message.\n\nThis message contains a oneof named type. Only a single field of the following list may be set at a time:\n  - appUserPicker\n  - resourcePicker\n  - c1UserPicker\n",
        "properties": {
          "appUserPicker": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.form.v1.AppUserFilter"
              },
              {
                "type": "null"
              }
            ]
          },
          "c1UserPicker": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.form.v1.C1UserFilter"
              },
              {
                "type": "null"
              }
            ]
          },
          "resourcePicker": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.form.v1.AppResourceFilter"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Picker Field",
        "type": "object",
        "x-speakeasy-name-override": "PickerField"
      },
      "c1.api.form.v1.RequiredTogether": {
        "description": "The RequiredTogether message.",
        "title": "Required Together",
        "type": "object",
        "x-speakeasy-name-override": "RequiredTogether"
      },
      "c1.api.form.v1.SelectField": {
        "description": "The SelectField message.",
        "properties": {
          "options": {
            "description": "The options field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.form.v1.SelectOption"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "type": {
            "description": "The type field.",
            "enum": [
              "SELECT_TYPE_UNSPECIFIED",
              "SELECT_TYPE_DROPDOWN",
              "SELECT_TYPE_RADIO",
              "SELECT_TYPE_BUTTONS"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Select Field",
        "type": "object",
        "x-speakeasy-name-override": "SelectField"
      },
      "c1.api.form.v1.SelectOption": {
        "description": "The SelectOption message.",
        "properties": {
          "description": {
            "description": "Used for type BUTTONS",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "value": {
            "description": "The value field.",
            "type": "string"
          }
        },
        "title": "Select Option",
        "type": "object",
        "x-speakeasy-name-override": "SelectOption"
      },
      "c1.api.form.v1.SharedProviderConfig": {
        "description": "The SharedProviderConfig message.",
        "properties": {
          "defaultValueCel": {
            "description": "The defaultValueCel field.",
            "type": "string"
          },
          "inputTransformationCel": {
            "description": "The inputTransformationCel field.",
            "type": "string"
          },
          "lockDefaultValues": {
            "description": "The lockDefaultValues field.",
            "type": "boolean"
          }
        },
        "title": "Shared Provider Config",
        "type": "object",
        "x-speakeasy-name-override": "SharedProviderConfig"
      },
      "c1.api.form.v1.StringField": {
        "description": "The StringField message.\n\nThis message contains a oneof named view. Only a single field of the following list may be set at a time:\n  - textField\n  - passwordField\n  - selectField\n  - pickerField\n  - dateField\n",
        "properties": {
          "dateField": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.form.v1.DateField"
              },
              {
                "type": "null"
              }
            ]
          },
          "defaultValue": {
            "description": "The defaultValue field.",
            "type": "string"
          },
          "passwordField": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.form.v1.PasswordField"
              },
              {
                "type": "null"
              }
            ]
          },
          "pickerField": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.form.v1.PickerField"
              },
              {
                "type": "null"
              }
            ]
          },
          "placeholder": {
            "description": "The placeholder field.",
            "type": "string"
          },
          "rules": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/validate.StringRules"
              },
              {
                "type": "null"
              }
            ]
          },
          "selectField": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.form.v1.SelectField"
              },
              {
                "type": "null"
              }
            ]
          },
          "textField": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.form.v1.TextField"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "String Field",
        "type": "object",
        "x-speakeasy-name-override": "FormStringField"
      },
      "c1.api.form.v1.StringMapField": {
        "description": "The StringMapField message.",
        "properties": {
          "defaultValue": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "The defaultValue field.",
            "type": "object"
          },
          "rules": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.form.v1.StringMapRules"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "String Map Field",
        "type": "object",
        "x-speakeasy-name-override": "FormStringMapField"
      },
      "c1.api.form.v1.StringMapRules": {
        "description": "The StringMapRules message.",
        "properties": {
          "isRequired": {
            "description": "The isRequired field.",
            "type": "boolean"
          },
          "validateEmpty": {
            "description": "The validateEmpty field.",
            "type": "boolean"
          }
        },
        "title": "String Map Rules",
        "type": "object",
        "x-speakeasy-name-override": "StringMapRules"
      },
      "c1.api.form.v1.StringSliceField": {
        "description": "The StringSliceField message.\n\nThis message contains a oneof named view. Only a single field of the following list may be set at a time:\n  - chipsField\n  - pickerField\n",
        "properties": {
          "chipsField": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.form.v1.ChipsField"
              },
              {
                "type": "null"
              }
            ]
          },
          "defaultValues": {
            "description": "The defaultValues field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pickerField": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.form.v1.PickerField"
              },
              {
                "type": "null"
              }
            ]
          },
          "placeholder": {
            "description": "The placeholder field.",
            "type": "string"
          },
          "rules": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/validate.RepeatedRules"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "String Slice Field",
        "type": "object",
        "x-speakeasy-name-override": "StringSliceField"
      },
      "c1.api.form.v1.TextField": {
        "description": "The TextField message.",
        "properties": {
          "multiline": {
            "description": "The multiline field.",
            "type": "boolean"
          },
          "suffix": {
            "description": "Static text displayed as an end adornment (e.g. \".example.com\" for domain fields).",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Text Field",
        "type": "object",
        "x-speakeasy-name-override": "TextField"
      },
      "c1.api.form.v1.ToggleField": {
        "description": "The ToggleField message.",
        "title": "Toggle Field",
        "type": "object",
        "x-speakeasy-name-override": "ToggleField"
      },
      "c1.api.form.v1.UserProviderConfig": {
        "description": "The UserProviderConfig message.",
        "properties": {
          "inputTransformationCel": {
            "description": "The inputTransformationCel field.",
            "type": "string"
          }
        },
        "title": "User Provider Config",
        "type": "object",
        "x-speakeasy-name-override": "UserProviderConfig"
      },
      "c1.api.functions.v1.Function": {
        "description": "Function represents a customer-provided code extension in the API",
        "properties": {
          "browserEnabled": {
            "description": "browser_enabled marks the function as browser-capable: the executor\n supervises a headless Chromium plus a default-deny egress proxy and\n exposes CDP on loopback to the function's sandbox. Toggling it changes\n the deployed image contents and executor arguments, so an update that\n touches it triggers a redeployment, same as secrets or the outbound\n network allowlist.\n\n Scope today: code-mode functions only. Regular (ANY) functions run\n pre-compiled binaries and the executor's compiled path has no browser\n support; setting this on FUNCTION_TYPE_ANY is rejected. Connector-type\n functions may join code-mode in the future.",
            "type": "boolean"
          },
          "compileError": {
            "description": "Compiler output when compile_status is FUNCTION_COMPILE_STATUS_FAILED.",
            "readOnly": true,
            "type": "string"
          },
          "compileStatus": {
            "description": "Compile state of the published commit for the function's current\n configuration. Populated by GetFunction only; unset in list responses.",
            "enum": [
              "FUNCTION_COMPILE_STATUS_UNSPECIFIED",
              "FUNCTION_COMPILE_STATUS_NOT_COMPILED",
              "FUNCTION_COMPILE_STATUS_COMPILING",
              "FUNCTION_COMPILE_STATUS_READY",
              "FUNCTION_COMPILE_STATUS_FAILED"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "The description field.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "functionType": {
            "description": "The functionType field.",
            "enum": [
              "FUNCTION_TYPE_UNSPECIFIED",
              "FUNCTION_TYPE_ANY",
              "FUNCTION_TYPE_CODE_MODE",
              "FUNCTION_TYPE_CONNECTOR"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "head": {
            "description": "The head field.",
            "type": "string"
          },
          "hookRefs": {
            "description": "IDs of every non-deleted hook that still references this function.\n Read-only: maintained by the Hook API, not by CreateFunction/UpdateFunction.\n Non-empty means DeleteFunction will refuse to delete until these are\n removed or retargeted.",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "isDraft": {
            "description": "The isDraft field.",
            "type": "boolean"
          },
          "networkConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.functions.v1.FunctionNetworkConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "outboundNetworkAllowlist": {
            "description": "The outboundNetworkAllowlist field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "provisionedConcurrency": {
            "description": "Number of pre-warmed Lambda instances. 0 (default) leaves the function\n cold-started on first invoke. \u003e 0 reserves and provisions that many\n execution environments via AWS Lambda provisioned concurrency.\n Ignored for FUNCTION_TYPE_CODE_MODE functions — that value is driven\n by AIGovernanceSettings.code_mode_concurrency.",
            "format": "int32",
            "type": "integer"
          },
          "publishedCommitId": {
            "description": "The publishedCommitId field.",
            "type": "string"
          },
          "scopedRoleIds": {
            "description": "Scoped role IDs define the permissions granted to this function when calling\n ConductorOne APIs. These are role IDs (not service roles) that get resolved\n to their service roles at authentication time.\n\n Currently only the \"Read-Only Administrator\" role (system:viewer) is supported.\n The role ID can be obtained from the roles API.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "secret": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "The secret field.",
            "type": "object"
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "useSpn": {
            "description": "FN-347 transition flag. When true, the function authenticates to c1-api\n as user:\u003csp_id\u003e via the AssumeIdentity token exchange using its\n ServicePrincipalBinding; when false, it authenticates as\n function:\u003cid\u003e. Read-only from clients: set by CreateFunction (when the\n tenant has completed the FunctionsToSPN migration) and by the migration\n itself, never by UpdateFunction. Retired once all functions are on SPN.",
            "readOnly": true,
            "type": "boolean"
          },
          "workflowTemplateRefs": {
            "description": "IDs of every non-deleted workflow template whose CallFunction step still\n references this function. Read-only, same semantics as hook_refs.",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Function",
        "type": "object",
        "x-speakeasy-entity": "Function",
        "x-speakeasy-name-override": "Function"
      },
      "c1.api.functions.v1.FunctionCommit": {
        "description": "FunctionCommit represents a single commit in a function's history",
        "properties": {
          "author": {
            "description": "The author field.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "functionId": {
            "description": "The functionId field.",
            "type": "string"
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "message": {
            "description": "The message field.",
            "type": "string"
          }
        },
        "title": "Function Commit",
        "type": "object",
        "x-speakeasy-name-override": "FunctionCommit"
      },
      "c1.api.functions.v1.FunctionInvocation": {
        "description": "The FunctionInvocation message.",
        "properties": {
          "commitId": {
            "description": "The commitId field.",
            "type": "string"
          },
          "conversationId": {
            "description": "The conversationId field.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "error": {
            "description": "The error field.",
            "type": "string"
          },
          "functionId": {
            "description": "The functionId field.",
            "type": "string"
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "input": {
            "additionalProperties": true,
            "type": [
              "object",
              "null"
            ]
          },
          "networkCallerUserId": {
            "description": "The networkCallerUserId field.",
            "type": "string"
          },
          "networkConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.functions.v1.FunctionNetworkConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "networkPolicyRevision": {
            "description": "The networkPolicyRevision field.",
            "type": "string"
          },
          "output": {
            "additionalProperties": true,
            "type": [
              "object",
              "null"
            ]
          },
          "resultRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.functions.v1.FunctionInvocationResultRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "description": "The status field.",
            "enum": [
              "FUNCTION_INVOCATION_STATUS_UNSPECIFIED",
              "FUNCTION_INVOCATION_STATUS_PENDING",
              "FUNCTION_INVOCATION_STATUS_RUNNING",
              "FUNCTION_INVOCATION_STATUS_SUCCESS",
              "FUNCTION_INVOCATION_STATUS_ERROR",
              "FUNCTION_INVOCATION_STATUS_CANCELLATION_REQUESTED",
              "FUNCTION_INVOCATION_STATUS_CANCELLED",
              "FUNCTION_INVOCATION_STATUS_UNKNOWN"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Function Invocation",
        "type": "object",
        "x-speakeasy-name-override": "FunctionInvocation"
      },
      "c1.api.functions.v1.FunctionInvocationResultRef": {
        "description": "FunctionInvocationResultRef describes an invocation result held outside the\n invocation object. It never carries a storage URI or a download URL.",
        "properties": {
          "expiresAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "mediaType": {
            "description": "The mediaType field.",
            "type": "string"
          },
          "path": {
            "description": "The path field.",
            "type": "string"
          },
          "sha256": {
            "description": "Base64url SHA-256 of the result bytes.",
            "type": "string"
          },
          "sizeBytes": {
            "description": "The sizeBytes field.",
            "format": "int64",
            "type": "string"
          },
          "storage": {
            "description": "The storage field.",
            "enum": [
              "FUNCTION_INVOCATION_RESULT_STORAGE_UNSPECIFIED",
              "FUNCTION_INVOCATION_RESULT_STORAGE_INLINE",
              "FUNCTION_INVOCATION_RESULT_STORAGE_VFS"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Function Invocation Result Ref",
        "type": "object",
        "x-speakeasy-name-override": "FunctionInvocationResultRef"
      },
      "c1.api.functions.v1.FunctionNetworkConfig": {
        "description": "The FunctionNetworkConfig message.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "edgeId": {
            "description": "The edgeId field.",
            "type": "string"
          },
          "mode": {
            "description": "The mode field.",
            "enum": [
              "FUNCTION_NETWORK_MODE_UNSPECIFIED",
              "FUNCTION_NETWORK_MODE_LEGACY",
              "FUNCTION_NETWORK_MODE_EDGE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Function Network Config",
        "type": "object",
        "x-speakeasy-name-override": "FunctionNetworkConfig"
      },
      "c1.api.functions.v1.FunctionTestResult": {
        "description": "FunctionTestResult contains the result of a single test case execution.",
        "properties": {
          "assertions": {
            "description": "The assertions evaluated during the test.",
            "items": {
              "$ref": "#/components/schemas/c1.api.functions.v1.FunctionTestResult.FunctionTestResultAssertion"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "error": {
            "description": "Error message if the test errored (distinct from assertion failure).",
            "type": "string"
          },
          "logs": {
            "description": "The log entries captured during the test.",
            "items": {
              "$ref": "#/components/schemas/c1.api.functions.v1.FunctionTestResult.FunctionTestResultLog"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "name": {
            "description": "The test name.",
            "type": "string"
          },
          "status": {
            "description": "The test result status.",
            "enum": [
              "FUNCTION_TEST_RESULT_STATUS_UNSPECIFIED",
              "FUNCTION_TEST_RESULT_STATUS_OK",
              "FUNCTION_TEST_RESULT_STATUS_FAIL",
              "FUNCTION_TEST_RESULT_STATUS_SKIPPED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Function Test Result",
        "type": "object",
        "x-speakeasy-name-override": "FunctionTestResult"
      },
      "c1.api.functions.v1.FunctionTestResult.FunctionTestResultAssertion": {
        "description": "A single assertion within a test.",
        "properties": {
          "actual": {
            "description": "The actual value.",
            "type": "string"
          },
          "at": {
            "description": "Source location of the assertion.",
            "type": "string"
          },
          "description": {
            "description": "Description of the assertion.",
            "type": "string"
          },
          "expected": {
            "description": "The expected value.",
            "type": "string"
          },
          "operator": {
            "description": "The comparison operator (e.g., \"==\", \"!=\").",
            "type": "string"
          },
          "pass": {
            "description": "Whether the assertion passed.",
            "type": "boolean"
          }
        },
        "title": "Function Test Result Assertion",
        "type": "object",
        "x-speakeasy-name-override": "FunctionTestResultAssertion"
      },
      "c1.api.functions.v1.FunctionTestResult.FunctionTestResultLog": {
        "description": "A log entry captured during a test.",
        "properties": {
          "level": {
            "description": "The log level (e.g., \"info\", \"error\").",
            "type": "string"
          },
          "log": {
            "description": "The log message content.",
            "type": "string"
          },
          "source": {
            "description": "The log source (e.g., \"stdout\", \"stderr\").",
            "type": "string"
          }
        },
        "title": "Function Test Result Log",
        "type": "object",
        "x-speakeasy-name-override": "FunctionTestResultLog"
      },
      "c1.api.functions.v1.FunctionsInvocationSearchRequestInput": {
        "description": "FunctionsInvocationSearchRequest is the request for searching function invocations.\n Results are returned in descending order by created_at (newest first).",
        "properties": {
          "pageSize": {
            "description": "The number of results to return per page.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pagination token for fetching the next page.",
            "type": "string"
          }
        },
        "title": "Functions Invocation Search Request",
        "type": "object",
        "x-speakeasy-name-override": "FunctionsInvocationSearchRequest"
      },
      "c1.api.functions.v1.FunctionsInvocationSearchResponse": {
        "description": "FunctionsInvocationSearchResponse is the response for searching function invocations.",
        "properties": {
          "list": {
            "description": "The list of function invocations, ordered by created_at descending.",
            "items": {
              "$ref": "#/components/schemas/c1.api.functions.v1.FunctionInvocation"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The pagination token for fetching the next page.",
            "type": "string"
          }
        },
        "title": "Functions Invocation Search Response",
        "type": "object",
        "x-speakeasy-name-override": "FunctionsInvocationSearchResponse"
      },
      "c1.api.functions.v1.FunctionsInvocationServiceGetResponse": {
        "description": "The FunctionsInvocationServiceGetResponse message.",
        "properties": {
          "invocation": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.functions.v1.FunctionInvocation"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Functions Invocation Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "FunctionsInvocationServiceGetResponse"
      },
      "c1.api.functions.v1.FunctionsInvocationServiceGetResultDownloadURLResponse": {
        "description": "The FunctionsInvocationServiceGetResultDownloadURLResponse message.",
        "properties": {
          "downloadUrl": {
            "description": "Short-lived URL minted for this request only.",
            "type": "string"
          }
        },
        "title": "Functions Invocation Service Get Result Download Url Response",
        "type": "object",
        "x-speakeasy-name-override": "FunctionsInvocationServiceGetResultDownloadURLResponse"
      },
      "c1.api.functions.v1.FunctionsInvocationServiceListResponse": {
        "description": "The FunctionsInvocationServiceListResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.functions.v1.FunctionInvocation"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Functions Invocation Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "FunctionsInvocationServiceListResponse"
      },
      "c1.api.functions.v1.FunctionsSearchRequest": {
        "description": "The FunctionsSearchRequest message.",
        "properties": {
          "functionTypes": {
            "description": "The functionTypes field.",
            "items": {
              "enum": [
                "FUNCTION_TYPE_UNSPECIFIED",
                "FUNCTION_TYPE_ANY",
                "FUNCTION_TYPE_CODE_MODE",
                "FUNCTION_TYPE_CONNECTOR"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pageSize": {
            "description": "The pageSize field.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          },
          "query": {
            "description": "The query field.",
            "type": "string"
          },
          "sortOptions": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.search.v1.SortOptions"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Functions Search Request",
        "type": "object",
        "x-speakeasy-name-override": "FunctionsSearchRequest"
      },
      "c1.api.functions.v1.FunctionsSearchResponse": {
        "description": "The FunctionsSearchResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.functions.v1.Function"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Functions Search Response",
        "type": "object",
        "x-speakeasy-name-override": "FunctionsSearchResponse"
      },
      "c1.api.functions.v1.FunctionsServiceCreateFinalCommitRequestInput": {
        "description": "The FunctionsServiceCreateFinalCommitRequest message.",
        "title": "Functions Service Create Final Commit Request",
        "type": "object",
        "x-speakeasy-name-override": "FunctionsServiceCreateFinalCommitRequest"
      },
      "c1.api.functions.v1.FunctionsServiceCreateFinalCommitResponse": {
        "description": "The FunctionsServiceCreateFinalCommitResponse message.",
        "properties": {
          "commit": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.functions.v1.FunctionCommit"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Functions Service Create Final Commit Response",
        "type": "object",
        "x-speakeasy-name-override": "FunctionsServiceCreateFinalCommitResponse"
      },
      "c1.api.functions.v1.FunctionsServiceCreateFunctionRequest": {
        "description": "The FunctionsServiceCreateFunctionRequest message.",
        "properties": {
          "browserEnabled": {
            "description": "browser_enabled creates the function as browser-capable. See\n Function.browser_enabled. Rejected on FUNCTION_TYPE_ANY: browser\n support is code-mode-only today.",
            "type": "boolean"
          },
          "commitMessage": {
            "description": "The commit message describing the initial code submission.",
            "type": "string"
          },
          "description": {
            "description": "A description of what the function does.",
            "type": "string"
          },
          "displayName": {
            "description": "The human-readable name for the function.",
            "type": "string"
          },
          "functionType": {
            "description": "The type of function to create. Use FUNCTION_TYPE_ANY for user functions —\n that is the type the Functions UI lists. Do not use any other value.",
            "enum": [
              "FUNCTION_TYPE_UNSPECIFIED",
              "FUNCTION_TYPE_ANY",
              "FUNCTION_TYPE_CODE_MODE",
              "FUNCTION_TYPE_CONNECTOR"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "initialContent": {
            "additionalProperties": {
              "format": "base64",
              "type": "string"
            },
            "description": "File map for the initial code commit. Keys are file paths in the\n function root (e.g. \"main.ts\", \"main.test.ts\"); values are file\n contents as bytes.\n\n Runtime: TypeScript. The entry file MUST be \"main.ts\" exporting a\n default async handler:\n\n   import { JSONObject } from \"@c1/functions-sdk\";\n   export default async function main(input: JSONObject): Promise\u003cJSONObject\u003e {\n     return { ok: true, echo: input };\n   }\n\n The handler MUST return a JSON object — not a primitive, array, or null.",
            "type": "object"
          }
        },
        "title": "Functions Service Create Function Request",
        "type": "object",
        "x-speakeasy-name-override": "FunctionsServiceCreateFunctionRequest"
      },
      "c1.api.functions.v1.FunctionsServiceCreateFunctionResponse": {
        "description": "The FunctionsServiceCreateFunctionResponse message.",
        "properties": {
          "commit": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.functions.v1.FunctionCommit"
              },
              {
                "type": "null"
              }
            ]
          },
          "function": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.functions.v1.Function"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Functions Service Create Function Response",
        "type": "object",
        "x-speakeasy-name-override": "FunctionsServiceCreateFunctionResponse"
      },
      "c1.api.functions.v1.FunctionsServiceCreateInitialCommitRequestInput": {
        "description": "The FunctionsServiceCreateInitialCommitRequest message.",
        "properties": {
          "commitMessage": {
            "description": "The commitMessage field.",
            "type": "string"
          },
          "filenames": {
            "description": "The filenames field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Functions Service Create Initial Commit Request",
        "type": "object",
        "x-speakeasy-name-override": "FunctionsServiceCreateInitialCommitRequest"
      },
      "c1.api.functions.v1.FunctionsServiceCreateInitialCommitResponse": {
        "description": "The FunctionsServiceCreateInitialCommitResponse message.",
        "properties": {
          "commitId": {
            "description": "The commitId field.",
            "type": "string"
          },
          "uploadUrls": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "The uploadUrls field.",
            "type": "object"
          }
        },
        "title": "Functions Service Create Initial Commit Response",
        "type": "object",
        "x-speakeasy-name-override": "FunctionsServiceCreateInitialCommitResponse"
      },
      "c1.api.functions.v1.FunctionsServiceCreateTagRequestInput": {
        "description": "The FunctionsServiceCreateTagRequest message.",
        "properties": {
          "commitId": {
            "description": "The commitId field.",
            "type": "string"
          },
          "name": {
            "description": "The name field.",
            "type": "string"
          }
        },
        "title": "Functions Service Create Tag Request",
        "type": "object",
        "x-speakeasy-name-override": "FunctionsServiceCreateTagRequest"
      },
      "c1.api.functions.v1.FunctionsServiceCreateTagResponse": {
        "description": "The FunctionsServiceCreateTagResponse message.",
        "title": "Functions Service Create Tag Response",
        "type": "object",
        "x-speakeasy-name-override": "FunctionsServiceCreateTagResponse"
      },
      "c1.api.functions.v1.FunctionsServiceDeleteFunctionRequestInput": {
        "description": "The FunctionsServiceDeleteFunctionRequest message.",
        "title": "Functions Service Delete Function Request",
        "type": "object",
        "x-speakeasy-name-override": "FunctionsServiceDeleteFunctionRequest"
      },
      "c1.api.functions.v1.FunctionsServiceDeleteFunctionResponse": {
        "description": "The FunctionsServiceDeleteFunctionResponse message.",
        "title": "Functions Service Delete Function Response",
        "type": "object",
        "x-speakeasy-name-override": "FunctionsServiceDeleteFunctionResponse"
      },
      "c1.api.functions.v1.FunctionsServiceGetCommitContentResponse": {
        "description": "FunctionsServiceGetCommitContentResponse contains a commit and all its file contents.",
        "properties": {
          "commit": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.functions.v1.FunctionCommit"
              },
              {
                "type": "null"
              }
            ]
          },
          "files": {
            "additionalProperties": {
              "format": "base64",
              "type": "string"
            },
            "description": "Map of filename to file content bytes.",
            "type": "object"
          }
        },
        "title": "Functions Service Get Commit Content Response",
        "type": "object",
        "x-speakeasy-name-override": "FunctionsServiceGetCommitContentResponse"
      },
      "c1.api.functions.v1.FunctionsServiceGetFunctionResponse": {
        "description": "The FunctionsServiceGetFunctionResponse message.",
        "properties": {
          "function": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.functions.v1.Function"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Functions Service Get Function Response",
        "type": "object",
        "x-speakeasy-name-override": "FunctionsServiceGetFunctionResponse"
      },
      "c1.api.functions.v1.FunctionsServiceGetLockFileResponse": {
        "description": "FunctionsServiceGetLockFileResponse returns the deno lock file content for a commit.",
        "properties": {
          "content": {
            "description": "The raw content of the deno lock file (empty if not found).",
            "format": "base64",
            "type": "string"
          },
          "exists": {
            "description": "Whether the lock file exists for this commit.",
            "type": "boolean"
          }
        },
        "title": "Functions Service Get Lock File Response",
        "type": "object",
        "x-speakeasy-name-override": "FunctionsServiceGetLockFileResponse"
      },
      "c1.api.functions.v1.FunctionsServiceInvokeRequestInput": {
        "description": "The FunctionsServiceInvokeRequest message.\n\nThis message contains a oneof named arg. Only a single field of the following list may be set at a time:\n  - json\n",
        "properties": {
          "commitId": {
            "description": "The commit ID specifying which version of the function code to run.",
            "type": "string"
          },
          "json": {
            "description": "The JSON-encoded input data passed to the function.\nThis field is part of the `arg` oneof.\nSee the documentation for `c1.api.functions.v1.FunctionsServiceInvokeRequest` for more details.",
            "format": "base64",
            "type": [
              "string",
              "null"
            ]
          },
          "vfsId": {
            "description": "Optional VFS volume ID to attach to this invocation. If empty, VFS operations will error.",
            "type": "string"
          }
        },
        "title": "Functions Service Invoke Request",
        "type": "object",
        "x-speakeasy-name-override": "FunctionsServiceInvokeRequest"
      },
      "c1.api.functions.v1.FunctionsServiceInvokeResponse": {
        "description": "The FunctionsServiceInvokeResponse message.\n\nThis message contains a oneof named resp. Only a single field of the following list may be set at a time:\n  - json\n",
        "properties": {
          "invocationId": {
            "description": "The ID of the created invocation, used to track execution status and retrieve results.",
            "type": "string"
          },
          "json": {
            "deprecated": true,
            "description": "Deprecated. The JSON-encoded output returned by the function.\nThis field is part of the `resp` oneof.\nSee the documentation for `c1.api.functions.v1.FunctionsServiceInvokeResponse` for more details.",
            "format": "base64",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Functions Service Invoke Response",
        "type": "object",
        "x-speakeasy-name-override": "FunctionsServiceInvokeResponse"
      },
      "c1.api.functions.v1.FunctionsServiceListCommitsResponse": {
        "description": "The FunctionsServiceListCommitsResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.functions.v1.FunctionCommit"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Functions Service List Commits Response",
        "type": "object",
        "x-speakeasy-name-override": "FunctionsServiceListCommitsResponse"
      },
      "c1.api.functions.v1.FunctionsServiceListFunctionsResponse": {
        "description": "The FunctionsServiceListFunctionsResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.functions.v1.Function"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Functions Service List Functions Response",
        "type": "object",
        "x-speakeasy-name-override": "FunctionsServiceListFunctionsResponse"
      },
      "c1.api.functions.v1.FunctionsServiceListTagsResponse": {
        "description": "The FunctionsServiceListTagsResponse message.",
        "properties": {
          "tags": {
            "additionalProperties": {
              "$ref": "#/components/schemas/c1.api.functions.v1.FunctionCommit"
            },
            "description": "The tags field.",
            "type": "object"
          }
        },
        "title": "Functions Service List Tags Response",
        "type": "object",
        "x-speakeasy-name-override": "FunctionsServiceListTagsResponse"
      },
      "c1.api.functions.v1.FunctionsServiceTestRequestInput": {
        "description": "FunctionsServiceTestRequest runs tests for a function at a specific commit.",
        "properties": {
          "commitId": {
            "description": "The commit ID to test. If empty, the published commit is used.",
            "type": "string"
          }
        },
        "title": "Functions Service Test Request",
        "type": "object",
        "x-speakeasy-name-override": "FunctionsServiceTestRequest"
      },
      "c1.api.functions.v1.FunctionsServiceTestResponse": {
        "description": "FunctionsServiceTestResponse contains test execution results.",
        "properties": {
          "result": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.functions.v1.FunctionTestResult"
              },
              {
                "type": "null"
              }
            ]
          },
          "results": {
            "description": "All test results.",
            "items": {
              "$ref": "#/components/schemas/c1.api.functions.v1.FunctionTestResult"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Functions Service Test Response",
        "type": "object",
        "x-speakeasy-name-override": "FunctionsServiceTestResponse"
      },
      "c1.api.functions.v1.FunctionsServiceUpdateFunctionRequest": {
        "description": "The FunctionsServiceUpdateFunctionRequest message.",
        "properties": {
          "commitMessage": {
            "description": "The commit message describing this code update. Defaults to a generic\n message if content is set and this is empty. Ignored if content is empty.",
            "type": "string"
          },
          "content": {
            "additionalProperties": {
              "format": "base64",
              "type": "string"
            },
            "description": "File map for a new code commit, applied as the function's new head\n commit. Keys are file paths in the function root; values are file\n contents as bytes. See CreateFunctionRequest.initial_content for the\n required entry-file signature. Independent of update_mask.",
            "type": "object"
          },
          "function": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.functions.v1.Function"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Functions Service Update Function Request",
        "type": "object",
        "x-speakeasy-name-override": "FunctionsServiceUpdateFunctionRequest"
      },
      "c1.api.functions.v1.FunctionsServiceUpdateFunctionResponse": {
        "description": "The FunctionsServiceUpdateFunctionResponse message.",
        "properties": {
          "commit": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.functions.v1.FunctionCommit"
              },
              {
                "type": "null"
              }
            ]
          },
          "function": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.functions.v1.Function"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Functions Service Update Function Response",
        "type": "object",
        "x-speakeasy-name-override": "FunctionsServiceUpdateFunctionResponse"
      },
      "c1.api.funds.v1.AccountScope": {
        "description": "AccountScope identifies the tenant, user, application, or user-application\n account against which spending was admitted.\n\nThis message contains a oneof named kind. Only a single field of the following list may be set at a time:\n  - tenant\n  - subject\n  - app\n  - subjectApp\n",
        "properties": {
          "app": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.AppScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "subject": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.SubjectScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "subjectApp": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.SubjectAppScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "tenant": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.TenantScope"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Account Scope",
        "type": "object",
        "x-speakeasy-name-override": "FundsAccountScope"
      },
      "c1.api.funds.v1.AppCap": {
        "description": "AppCap is one app's tenant-wide ceiling as the API renders it.",
        "properties": {
          "appId": {
            "description": "The C1 App the spend is attributed to.",
            "type": "string"
          },
          "controls": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.SpendControls"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "tenantId": {
            "description": "The tenantId field.",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "App Cap",
        "type": "object",
        "x-speakeasy-name-override": "AppCap"
      },
      "c1.api.funds.v1.AppCapHistoryEntry": {
        "description": "The AppCapHistoryEntry message.",
        "properties": {
          "metadata": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.history.v1.HistoryEntryMetadata"
              },
              {
                "type": "null"
              }
            ]
          },
          "snapshot": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.AppCap"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "App Cap History Entry",
        "type": "object",
        "x-speakeasy-name-override": "AppCapHistoryEntry"
      },
      "c1.api.funds.v1.AppCapServiceDeleteRequestInput": {
        "description": "The AppCapServiceDeleteRequest message.",
        "title": "App Cap Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "AppCapServiceDeleteRequest"
      },
      "c1.api.funds.v1.AppCapServiceDeleteResponse": {
        "description": "The AppCapServiceDeleteResponse message.",
        "title": "App Cap Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "AppCapServiceDeleteResponse"
      },
      "c1.api.funds.v1.AppCapServiceGetResponse": {
        "description": "The AppCapServiceGetResponse message.",
        "properties": {
          "cap": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.AppCap"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "App Cap Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "AppCapServiceGetResponse"
      },
      "c1.api.funds.v1.AppCapServiceListHistoryResponse": {
        "description": "The AppCapServiceListHistoryResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.funds.v1.AppCapHistoryEntry"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "App Cap Service List History Response",
        "type": "object",
        "x-speakeasy-name-override": "AppCapServiceListHistoryResponse"
      },
      "c1.api.funds.v1.AppCapServiceListResponse": {
        "description": "The AppCapServiceListResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.funds.v1.AppCap"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "App Cap Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "AppCapServiceListResponse"
      },
      "c1.api.funds.v1.AppCapServiceSetLimitRequestInput": {
        "description": "The AppCapServiceSetLimitRequest message.",
        "properties": {
          "limit": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.SpendLimit"
              },
              {
                "type": "null"
              }
            ]
          },
          "period": {
            "description": "Optional period override. Only valid together with the limit it denominates.",
            "enum": [
              "PERIOD_KIND_UNSPECIFIED",
              "PERIOD_KIND_DAILY",
              "PERIOD_KIND_WEEKLY",
              "PERIOD_KIND_MONTHLY",
              "PERIOD_KIND_QUARTERLY",
              "PERIOD_KIND_YEARLY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "App Cap Service Set Limit Request",
        "type": "object",
        "x-speakeasy-name-override": "AppCapServiceSetLimitRequest"
      },
      "c1.api.funds.v1.AppCapServiceSetLimitResponse": {
        "description": "The AppCapServiceSetLimitResponse message.",
        "properties": {
          "cap": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.AppCap"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "App Cap Service Set Limit Response",
        "type": "object",
        "x-speakeasy-name-override": "AppCapServiceSetLimitResponse"
      },
      "c1.api.funds.v1.AppCapServiceSuspendRequestInput": {
        "description": "The AppCapServiceSuspendRequest message.",
        "properties": {
          "reason": {
            "description": "The reason field.",
            "type": "string"
          }
        },
        "title": "App Cap Service Suspend Request",
        "type": "object",
        "x-speakeasy-name-override": "AppCapServiceSuspendRequest"
      },
      "c1.api.funds.v1.AppCapServiceSuspendResponse": {
        "description": "The AppCapServiceSuspendResponse message.",
        "properties": {
          "cap": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.AppCap"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "App Cap Service Suspend Response",
        "type": "object",
        "x-speakeasy-name-override": "AppCapServiceSuspendResponse"
      },
      "c1.api.funds.v1.AppCapServiceUnsuspendRequestInput": {
        "description": "The AppCapServiceUnsuspendRequest message.",
        "title": "App Cap Service Unsuspend Request",
        "type": "object",
        "x-speakeasy-name-override": "AppCapServiceUnsuspendRequest"
      },
      "c1.api.funds.v1.AppCapServiceUnsuspendResponse": {
        "description": "The AppCapServiceUnsuspendResponse message.",
        "properties": {
          "cap": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.AppCap"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "App Cap Service Unsuspend Response",
        "type": "object",
        "x-speakeasy-name-override": "AppCapServiceUnsuspendResponse"
      },
      "c1.api.funds.v1.AppScope": {
        "description": "AppScope identifies one application's account.",
        "properties": {
          "appId": {
            "description": "Application ID of the account.",
            "type": "string"
          }
        },
        "title": "App Scope",
        "type": "object",
        "x-speakeasy-name-override": "FundsAppScope"
      },
      "c1.api.funds.v1.FundAssignment": {
        "description": "FundAssignment is one principal's fund exception as the API renders it.",
        "properties": {
          "controls": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.SpendControls"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "tenantId": {
            "description": "The tenantId field.",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "userId": {
            "description": "Canonical c1.models.user.v2.User id, every UserType.",
            "type": "string"
          }
        },
        "title": "Fund Assignment",
        "type": "object",
        "x-speakeasy-name-override": "FundAssignment"
      },
      "c1.api.funds.v1.FundAssignmentHistoryEntry": {
        "description": "The FundAssignmentHistoryEntry message.",
        "properties": {
          "metadata": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.history.v1.HistoryEntryMetadata"
              },
              {
                "type": "null"
              }
            ]
          },
          "snapshot": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundAssignment"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Fund Assignment History Entry",
        "type": "object",
        "x-speakeasy-name-override": "FundAssignmentHistoryEntry"
      },
      "c1.api.funds.v1.FundAssignmentServiceClearExtensionRequestInput": {
        "description": "The FundAssignmentServiceClearExtensionRequest message.",
        "title": "Fund Assignment Service Clear Extension Request",
        "type": "object",
        "x-speakeasy-name-override": "FundAssignmentServiceClearExtensionRequest"
      },
      "c1.api.funds.v1.FundAssignmentServiceClearExtensionResponse": {
        "description": "The FundAssignmentServiceClearExtensionResponse message.",
        "properties": {
          "assignment": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundAssignment"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Fund Assignment Service Clear Extension Response",
        "type": "object",
        "x-speakeasy-name-override": "FundAssignmentServiceClearExtensionResponse"
      },
      "c1.api.funds.v1.FundAssignmentServiceDeleteRequestInput": {
        "description": "The FundAssignmentServiceDeleteRequest message.",
        "title": "Fund Assignment Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "FundAssignmentServiceDeleteRequest"
      },
      "c1.api.funds.v1.FundAssignmentServiceDeleteResponse": {
        "description": "The FundAssignmentServiceDeleteResponse message.",
        "title": "Fund Assignment Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "FundAssignmentServiceDeleteResponse"
      },
      "c1.api.funds.v1.FundAssignmentServiceGetResponse": {
        "description": "The FundAssignmentServiceGetResponse message.",
        "properties": {
          "assignment": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundAssignment"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Fund Assignment Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "FundAssignmentServiceGetResponse"
      },
      "c1.api.funds.v1.FundAssignmentServiceGrantExtensionRequestInput": {
        "description": "The FundAssignmentServiceGrantExtensionRequest message.",
        "properties": {
          "expiresAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "limit": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.SpendLimit"
              },
              {
                "type": "null"
              }
            ]
          },
          "reason": {
            "description": "Subject-visible: \"why do I have this bump\".",
            "type": "string"
          }
        },
        "title": "Fund Assignment Service Grant Extension Request",
        "type": "object",
        "x-speakeasy-name-override": "FundAssignmentServiceGrantExtensionRequest"
      },
      "c1.api.funds.v1.FundAssignmentServiceGrantExtensionResponse": {
        "description": "The FundAssignmentServiceGrantExtensionResponse message.",
        "properties": {
          "assignment": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundAssignment"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Fund Assignment Service Grant Extension Response",
        "type": "object",
        "x-speakeasy-name-override": "FundAssignmentServiceGrantExtensionResponse"
      },
      "c1.api.funds.v1.FundAssignmentServiceListHistoryResponse": {
        "description": "The FundAssignmentServiceListHistoryResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.funds.v1.FundAssignmentHistoryEntry"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Fund Assignment Service List History Response",
        "type": "object",
        "x-speakeasy-name-override": "FundAssignmentServiceListHistoryResponse"
      },
      "c1.api.funds.v1.FundAssignmentServiceSearchRequest": {
        "description": "The FundAssignmentServiceSearchRequest message.",
        "properties": {
          "pageSize": {
            "description": "The pageSize field.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          },
          "userIds": {
            "description": "Restrict to these subjects; empty returns every assignment in the tenant.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Fund Assignment Service Search Request",
        "type": "object",
        "x-speakeasy-name-override": "FundAssignmentServiceSearchRequest"
      },
      "c1.api.funds.v1.FundAssignmentServiceSearchResponse": {
        "description": "The FundAssignmentServiceSearchResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.funds.v1.FundAssignment"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Fund Assignment Service Search Response",
        "type": "object",
        "x-speakeasy-name-override": "FundAssignmentServiceSearchResponse"
      },
      "c1.api.funds.v1.FundAssignmentServiceSetLimitRequestInput": {
        "description": "The FundAssignmentServiceSetLimitRequest message.",
        "properties": {
          "limit": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.SpendLimit"
              },
              {
                "type": "null"
              }
            ]
          },
          "period": {
            "description": "Optional period override. Only valid together with the limit it denominates.",
            "enum": [
              "PERIOD_KIND_UNSPECIFIED",
              "PERIOD_KIND_DAILY",
              "PERIOD_KIND_WEEKLY",
              "PERIOD_KIND_MONTHLY",
              "PERIOD_KIND_QUARTERLY",
              "PERIOD_KIND_YEARLY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Fund Assignment Service Set Limit Request",
        "type": "object",
        "x-speakeasy-name-override": "FundAssignmentServiceSetLimitRequest"
      },
      "c1.api.funds.v1.FundAssignmentServiceSetLimitResponse": {
        "description": "The FundAssignmentServiceSetLimitResponse message.",
        "properties": {
          "assignment": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundAssignment"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Fund Assignment Service Set Limit Response",
        "type": "object",
        "x-speakeasy-name-override": "FundAssignmentServiceSetLimitResponse"
      },
      "c1.api.funds.v1.FundAssignmentServiceSuspendRequestInput": {
        "description": "The FundAssignmentServiceSuspendRequest message.",
        "properties": {
          "reason": {
            "description": "The reason field.",
            "type": "string"
          }
        },
        "title": "Fund Assignment Service Suspend Request",
        "type": "object",
        "x-speakeasy-name-override": "FundAssignmentServiceSuspendRequest"
      },
      "c1.api.funds.v1.FundAssignmentServiceSuspendResponse": {
        "description": "The FundAssignmentServiceSuspendResponse message.",
        "properties": {
          "assignment": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundAssignment"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Fund Assignment Service Suspend Response",
        "type": "object",
        "x-speakeasy-name-override": "FundAssignmentServiceSuspendResponse"
      },
      "c1.api.funds.v1.FundAssignmentServiceUnsuspendRequestInput": {
        "description": "The FundAssignmentServiceUnsuspendRequest message.",
        "title": "Fund Assignment Service Unsuspend Request",
        "type": "object",
        "x-speakeasy-name-override": "FundAssignmentServiceUnsuspendRequest"
      },
      "c1.api.funds.v1.FundAssignmentServiceUnsuspendResponse": {
        "description": "The FundAssignmentServiceUnsuspendResponse message.",
        "properties": {
          "assignment": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundAssignment"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Fund Assignment Service Unsuspend Response",
        "type": "object",
        "x-speakeasy-name-override": "FundAssignmentServiceUnsuspendResponse"
      },
      "c1.api.funds.v1.FundPolicy": {
        "description": "FundPolicy is the tenant's fund policy as the API renders it. Every field is\n server-owned on the way out; requests name the fields they change rather than\n sending this message back.",
        "properties": {
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "currencyCode": {
            "description": "ISO 4217. Set at Create and immutable thereafter.",
            "type": "string"
          },
          "defaultLimit": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.SpendLimit"
              },
              {
                "type": "null"
              }
            ]
          },
          "orgCeiling": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.SpendControls"
              },
              {
                "type": "null"
              }
            ]
          },
          "period": {
            "description": "The root period every amount in the tenant is denominated in.",
            "enum": [
              "PERIOD_KIND_UNSPECIFIED",
              "PERIOD_KIND_DAILY",
              "PERIOD_KIND_WEEKLY",
              "PERIOD_KIND_MONTHLY",
              "PERIOD_KIND_QUARTERLY",
              "PERIOD_KIND_YEARLY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "spendRemedyRequestPolicyId": {
            "description": "Explicit approval policy for scoped spending changes. Empty disables requests.",
            "type": "string"
          },
          "tenantId": {
            "description": "The tenantId field.",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Fund Policy",
        "type": "object",
        "x-speakeasy-name-override": "FundPolicy"
      },
      "c1.api.funds.v1.FundPolicyHistoryEntry": {
        "description": "The FundPolicyHistoryEntry message.",
        "properties": {
          "metadata": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.history.v1.HistoryEntryMetadata"
              },
              {
                "type": "null"
              }
            ]
          },
          "snapshot": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundPolicy"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Fund Policy History Entry",
        "type": "object",
        "x-speakeasy-name-override": "FundPolicyHistoryEntry"
      },
      "c1.api.funds.v1.FundPolicyServiceCreateRequest": {
        "description": "The FundPolicyServiceCreateRequest message.",
        "properties": {
          "currencyCode": {
            "description": "Empty defaults to USD. Any other value is refused: spend governance is\n USD-only today; multi-currency requires an FX source. Immutable once set.",
            "type": "string"
          },
          "defaultLimit": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.SpendLimit"
              },
              {
                "type": "null"
              }
            ]
          },
          "period": {
            "description": "The period field.",
            "enum": [
              "PERIOD_KIND_UNSPECIFIED",
              "PERIOD_KIND_DAILY",
              "PERIOD_KIND_WEEKLY",
              "PERIOD_KIND_MONTHLY",
              "PERIOD_KIND_QUARTERLY",
              "PERIOD_KIND_YEARLY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "spendRemedyRequestPolicyId": {
            "description": "Optional grant policy for scoped spending changes. Empty disables requests.",
            "type": "string"
          }
        },
        "title": "Fund Policy Service Create Request",
        "type": "object",
        "x-speakeasy-name-override": "FundPolicyServiceCreateRequest"
      },
      "c1.api.funds.v1.FundPolicyServiceCreateResponse": {
        "description": "The FundPolicyServiceCreateResponse message.",
        "properties": {
          "policy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundPolicy"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Fund Policy Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "FundPolicyServiceCreateResponse"
      },
      "c1.api.funds.v1.FundPolicyServiceDeleteRequest": {
        "description": "The FundPolicyServiceDeleteRequest message.",
        "title": "Fund Policy Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "FundPolicyServiceDeleteRequest"
      },
      "c1.api.funds.v1.FundPolicyServiceDeleteResponse": {
        "description": "The FundPolicyServiceDeleteResponse message.",
        "title": "Fund Policy Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "FundPolicyServiceDeleteResponse"
      },
      "c1.api.funds.v1.FundPolicyServiceFreezeTenantRequest": {
        "description": "The FundPolicyServiceFreezeTenantRequest message.",
        "properties": {
          "reason": {
            "description": "The reason field.",
            "type": "string"
          }
        },
        "title": "Fund Policy Service Freeze Tenant Request",
        "type": "object",
        "x-speakeasy-name-override": "FundPolicyServiceFreezeTenantRequest"
      },
      "c1.api.funds.v1.FundPolicyServiceFreezeTenantResponse": {
        "description": "The FundPolicyServiceFreezeTenantResponse message.",
        "properties": {
          "policy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundPolicy"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Fund Policy Service Freeze Tenant Response",
        "type": "object",
        "x-speakeasy-name-override": "FundPolicyServiceFreezeTenantResponse"
      },
      "c1.api.funds.v1.FundPolicyServiceGetResponse": {
        "description": "The FundPolicyServiceGetResponse message.",
        "properties": {
          "policy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundPolicy"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Fund Policy Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "FundPolicyServiceGetResponse"
      },
      "c1.api.funds.v1.FundPolicyServiceListHistoryResponse": {
        "description": "The FundPolicyServiceListHistoryResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.funds.v1.FundPolicyHistoryEntry"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Fund Policy Service List History Response",
        "type": "object",
        "x-speakeasy-name-override": "FundPolicyServiceListHistoryResponse"
      },
      "c1.api.funds.v1.FundPolicyServiceSetOrgCeilingRequest": {
        "description": "The FundPolicyServiceSetOrgCeilingRequest message.",
        "properties": {
          "limit": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.SpendLimit"
              },
              {
                "type": "null"
              }
            ]
          },
          "period": {
            "description": "Optional period override for the ceiling. Only valid together with limit.",
            "enum": [
              "PERIOD_KIND_UNSPECIFIED",
              "PERIOD_KIND_DAILY",
              "PERIOD_KIND_WEEKLY",
              "PERIOD_KIND_MONTHLY",
              "PERIOD_KIND_QUARTERLY",
              "PERIOD_KIND_YEARLY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Fund Policy Service Set Org Ceiling Request",
        "type": "object",
        "x-speakeasy-name-override": "FundPolicyServiceSetOrgCeilingRequest"
      },
      "c1.api.funds.v1.FundPolicyServiceSetOrgCeilingResponse": {
        "description": "The FundPolicyServiceSetOrgCeilingResponse message.",
        "properties": {
          "policy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundPolicy"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Fund Policy Service Set Org Ceiling Response",
        "type": "object",
        "x-speakeasy-name-override": "FundPolicyServiceSetOrgCeilingResponse"
      },
      "c1.api.funds.v1.FundPolicyServiceUnfreezeTenantRequest": {
        "description": "The FundPolicyServiceUnfreezeTenantRequest message.",
        "title": "Fund Policy Service Unfreeze Tenant Request",
        "type": "object",
        "x-speakeasy-name-override": "FundPolicyServiceUnfreezeTenantRequest"
      },
      "c1.api.funds.v1.FundPolicyServiceUnfreezeTenantResponse": {
        "description": "The FundPolicyServiceUnfreezeTenantResponse message.",
        "properties": {
          "policy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundPolicy"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Fund Policy Service Unfreeze Tenant Response",
        "type": "object",
        "x-speakeasy-name-override": "FundPolicyServiceUnfreezeTenantResponse"
      },
      "c1.api.funds.v1.FundPolicyServiceUpdateRequest": {
        "description": "The FundPolicyServiceUpdateRequest message.",
        "properties": {
          "policy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundPolicy"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Fund Policy Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "FundPolicyServiceUpdateRequest"
      },
      "c1.api.funds.v1.FundPolicyServiceUpdateResponse": {
        "description": "The FundPolicyServiceUpdateResponse message.",
        "properties": {
          "policy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundPolicy"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Fund Policy Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "FundPolicyServiceUpdateResponse"
      },
      "c1.api.funds.v1.FundRule": {
        "description": "FundRule is one group grant as the API renders it.",
        "properties": {
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "displayName": {
            "description": "Admin-facing label, so a rule list reads as policy rather than as ids.\n Bounded on the message rather than only on Create: Update carries a whole\n FundRule, and this is the column the mirror's full-text and btree indexes\n are built on.",
            "type": "string"
          },
          "grant": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.SpendLimit"
              },
              {
                "type": "null"
              }
            ]
          },
          "groupRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "reason": {
            "description": "Why this cohort is funded. Subject-visible where a grant is explained.",
            "type": "string"
          },
          "ruleId": {
            "description": "The ruleId field.",
            "type": "string"
          },
          "tenantId": {
            "description": "The tenantId field.",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Fund Rule",
        "type": "object",
        "x-speakeasy-name-override": "FundRule"
      },
      "c1.api.funds.v1.FundRuleHistoryEntry": {
        "description": "The FundRuleHistoryEntry message.",
        "properties": {
          "metadata": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.history.v1.HistoryEntryMetadata"
              },
              {
                "type": "null"
              }
            ]
          },
          "snapshot": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundRule"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Fund Rule History Entry",
        "type": "object",
        "x-speakeasy-name-override": "FundRuleHistoryEntry"
      },
      "c1.api.funds.v1.FundRuleServiceCreateRequest": {
        "description": "The FundRuleServiceCreateRequest message.",
        "properties": {
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "grant": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.SpendLimit"
              },
              {
                "type": "null"
              }
            ]
          },
          "groupRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "reason": {
            "description": "The reason field.",
            "type": "string"
          }
        },
        "title": "Fund Rule Service Create Request",
        "type": "object",
        "x-speakeasy-name-override": "FundRuleServiceCreateRequest"
      },
      "c1.api.funds.v1.FundRuleServiceCreateResponse": {
        "description": "The FundRuleServiceCreateResponse message.",
        "properties": {
          "rule": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundRule"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Fund Rule Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "FundRuleServiceCreateResponse"
      },
      "c1.api.funds.v1.FundRuleServiceDeleteRequestInput": {
        "description": "The FundRuleServiceDeleteRequest message.",
        "title": "Fund Rule Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "FundRuleServiceDeleteRequest"
      },
      "c1.api.funds.v1.FundRuleServiceDeleteResponse": {
        "description": "The FundRuleServiceDeleteResponse message.",
        "title": "Fund Rule Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "FundRuleServiceDeleteResponse"
      },
      "c1.api.funds.v1.FundRuleServiceGetResponse": {
        "description": "The FundRuleServiceGetResponse message.",
        "properties": {
          "rule": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundRule"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Fund Rule Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "FundRuleServiceGetResponse"
      },
      "c1.api.funds.v1.FundRuleServiceListHistoryResponse": {
        "description": "The FundRuleServiceListHistoryResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.funds.v1.FundRuleHistoryEntry"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Fund Rule Service List History Response",
        "type": "object",
        "x-speakeasy-name-override": "FundRuleServiceListHistoryResponse"
      },
      "c1.api.funds.v1.FundRuleServiceListResponse": {
        "description": "The FundRuleServiceListResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.funds.v1.FundRule"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Fund Rule Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "FundRuleServiceListResponse"
      },
      "c1.api.funds.v1.FundRuleServiceSearchRequest": {
        "description": "The FundRuleServiceSearchRequest message.",
        "properties": {
          "pageSize": {
            "description": "The pageSize field.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          },
          "query": {
            "description": "Case-insensitive search over the rule display name; empty returns all.",
            "type": "string"
          }
        },
        "title": "Fund Rule Service Search Request",
        "type": "object",
        "x-speakeasy-name-override": "FundRuleServiceSearchRequest"
      },
      "c1.api.funds.v1.FundRuleServiceSearchResponse": {
        "description": "The FundRuleServiceSearchResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.funds.v1.FundRule"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Fund Rule Service Search Response",
        "type": "object",
        "x-speakeasy-name-override": "FundRuleServiceSearchResponse"
      },
      "c1.api.funds.v1.FundRuleServiceUpdateRequestInput": {
        "description": "The FundRuleServiceUpdateRequest message.",
        "properties": {
          "rule": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundRule"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Fund Rule Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "FundRuleServiceUpdateRequest"
      },
      "c1.api.funds.v1.FundRuleServiceUpdateResponse": {
        "description": "The FundRuleServiceUpdateResponse message.",
        "properties": {
          "rule": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundRule"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Fund Rule Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "FundRuleServiceUpdateResponse"
      },
      "c1.api.funds.v1.Money": {
        "description": "Money is a non-negative monetary value used by spending controls.",
        "properties": {
          "currencyCode": {
            "description": "ISO 4217 currency code.",
            "type": "string"
          },
          "nanos": {
            "description": "Fractional nano-units, from zero through 999999999.",
            "format": "int32",
            "type": "integer"
          },
          "units": {
            "description": "Whole currency units. The bound keeps nano-unit conversion within int64.",
            "format": "int64",
            "type": "string"
          }
        },
        "title": "Money",
        "type": "object",
        "x-speakeasy-name-override": "FundsMoney"
      },
      "c1.api.funds.v1.MyFundLimit": {
        "description": "MyFundLimit is one of the caller's own per-app limits. It carries no user id:\n it is always the caller's.",
        "properties": {
          "appId": {
            "description": "The C1 App this limit applies to.",
            "type": "string"
          },
          "controls": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.SpendControls"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "My Fund Limit",
        "type": "object",
        "x-speakeasy-name-override": "MyFundLimit"
      },
      "c1.api.funds.v1.MyFundLimitHistoryEntry": {
        "description": "The MyFundLimitHistoryEntry message.",
        "properties": {
          "metadata": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.history.v1.HistoryEntryMetadata"
              },
              {
                "type": "null"
              }
            ]
          },
          "snapshot": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.MyFundLimit"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "My Fund Limit History Entry",
        "type": "object",
        "x-speakeasy-name-override": "MyFundLimitHistoryEntry"
      },
      "c1.api.funds.v1.MyFundLimitsServiceClearTemporaryLimitRequestInput": {
        "description": "The MyFundLimitsServiceClearTemporaryLimitRequest message.",
        "title": "My Fund Limits Service Clear Temporary Limit Request",
        "type": "object",
        "x-speakeasy-name-override": "MyFundLimitsServiceClearTemporaryLimitRequest"
      },
      "c1.api.funds.v1.MyFundLimitsServiceClearTemporaryLimitResponse": {
        "description": "The MyFundLimitsServiceClearTemporaryLimitResponse message.",
        "properties": {
          "limit": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.MyFundLimit"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "My Fund Limits Service Clear Temporary Limit Response",
        "type": "object",
        "x-speakeasy-name-override": "MyFundLimitsServiceClearTemporaryLimitResponse"
      },
      "c1.api.funds.v1.MyFundLimitsServiceDeleteRequestInput": {
        "description": "The MyFundLimitsServiceDeleteRequest message.",
        "title": "My Fund Limits Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "MyFundLimitsServiceDeleteRequest"
      },
      "c1.api.funds.v1.MyFundLimitsServiceDeleteResponse": {
        "description": "The MyFundLimitsServiceDeleteResponse message.",
        "title": "My Fund Limits Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "MyFundLimitsServiceDeleteResponse"
      },
      "c1.api.funds.v1.MyFundLimitsServiceListHistoryResponse": {
        "description": "The MyFundLimitsServiceListHistoryResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.funds.v1.MyFundLimitHistoryEntry"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "My Fund Limits Service List History Response",
        "type": "object",
        "x-speakeasy-name-override": "MyFundLimitsServiceListHistoryResponse"
      },
      "c1.api.funds.v1.MyFundLimitsServiceListResponse": {
        "description": "The MyFundLimitsServiceListResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.funds.v1.MyFundLimit"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "My Fund Limits Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "MyFundLimitsServiceListResponse"
      },
      "c1.api.funds.v1.MyFundLimitsServicePauseRequestInput": {
        "description": "The MyFundLimitsServicePauseRequest message.",
        "properties": {
          "reason": {
            "description": "The reason field.",
            "type": "string"
          }
        },
        "title": "My Fund Limits Service Pause Request",
        "type": "object",
        "x-speakeasy-name-override": "MyFundLimitsServicePauseRequest"
      },
      "c1.api.funds.v1.MyFundLimitsServicePauseResponse": {
        "description": "The MyFundLimitsServicePauseResponse message.",
        "properties": {
          "limit": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.MyFundLimit"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "My Fund Limits Service Pause Response",
        "type": "object",
        "x-speakeasy-name-override": "MyFundLimitsServicePauseResponse"
      },
      "c1.api.funds.v1.MyFundLimitsServiceResumeRequestInput": {
        "description": "The MyFundLimitsServiceResumeRequest message.",
        "title": "My Fund Limits Service Resume Request",
        "type": "object",
        "x-speakeasy-name-override": "MyFundLimitsServiceResumeRequest"
      },
      "c1.api.funds.v1.MyFundLimitsServiceResumeResponse": {
        "description": "The MyFundLimitsServiceResumeResponse message.",
        "properties": {
          "limit": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.MyFundLimit"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "My Fund Limits Service Resume Response",
        "type": "object",
        "x-speakeasy-name-override": "MyFundLimitsServiceResumeResponse"
      },
      "c1.api.funds.v1.MyFundLimitsServiceSetLimitRequestInput": {
        "description": "The MyFundLimitsServiceSetLimitRequest message.",
        "properties": {
          "limit": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.SpendLimit"
              },
              {
                "type": "null"
              }
            ]
          },
          "period": {
            "description": "Optional period override. Only valid together with the limit it denominates.",
            "enum": [
              "PERIOD_KIND_UNSPECIFIED",
              "PERIOD_KIND_DAILY",
              "PERIOD_KIND_WEEKLY",
              "PERIOD_KIND_MONTHLY",
              "PERIOD_KIND_QUARTERLY",
              "PERIOD_KIND_YEARLY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "My Fund Limits Service Set Limit Request",
        "type": "object",
        "x-speakeasy-name-override": "MyFundLimitsServiceSetLimitRequest"
      },
      "c1.api.funds.v1.MyFundLimitsServiceSetLimitResponse": {
        "description": "The MyFundLimitsServiceSetLimitResponse message.",
        "properties": {
          "limit": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.MyFundLimit"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "My Fund Limits Service Set Limit Response",
        "type": "object",
        "x-speakeasy-name-override": "MyFundLimitsServiceSetLimitResponse"
      },
      "c1.api.funds.v1.MyFundLimitsServiceSetTemporaryLimitRequestInput": {
        "description": "The MyFundLimitsServiceSetTemporaryLimitRequest message.",
        "properties": {
          "extension": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.SpendExtension"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "My Fund Limits Service Set Temporary Limit Request",
        "type": "object",
        "x-speakeasy-name-override": "MyFundLimitsServiceSetTemporaryLimitRequest"
      },
      "c1.api.funds.v1.MyFundLimitsServiceSetTemporaryLimitResponse": {
        "description": "The MyFundLimitsServiceSetTemporaryLimitResponse message.",
        "properties": {
          "limit": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.MyFundLimit"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "My Fund Limits Service Set Temporary Limit Response",
        "type": "object",
        "x-speakeasy-name-override": "MyFundLimitsServiceSetTemporaryLimitResponse"
      },
      "c1.api.funds.v1.SpendControls": {
        "description": "SpendControls retains coexisting base, extension and suspension state.",
        "properties": {
          "extension": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.SpendExtension"
              },
              {
                "type": "null"
              }
            ]
          },
          "limit": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.SpendLimit"
              },
              {
                "type": "null"
              }
            ]
          },
          "period": {
            "description": "The period field.",
            "enum": [
              "PERIOD_KIND_UNSPECIFIED",
              "PERIOD_KIND_DAILY",
              "PERIOD_KIND_WEEKLY",
              "PERIOD_KIND_MONTHLY",
              "PERIOD_KIND_QUARTERLY",
              "PERIOD_KIND_YEARLY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "suspension": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.SpendSuspension"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Spend Controls",
        "type": "object",
        "x-speakeasy-name-override": "FundsSpendControls"
      },
      "c1.api.funds.v1.SpendExtension": {
        "description": "SpendExtension replaces the base total temporarily; it is not additive credit.",
        "properties": {
          "expiresAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "limit": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.SpendLimit"
              },
              {
                "type": "null"
              }
            ]
          },
          "reason": {
            "description": "The reason field.",
            "type": "string"
          }
        },
        "title": "Spend Extension",
        "type": "object",
        "x-speakeasy-name-override": "FundsSpendExtension"
      },
      "c1.api.funds.v1.SpendLimit": {
        "description": "SpendLimit distinguishes an amount, unlimited tracking and blocked supply.\n\nThis message contains a oneof named kind. Only a single field of the following list may be set at a time:\n  - unlimited\n  - amount\n  - blocked\n",
        "properties": {
          "amount": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.SpendLimitAmount"
              },
              {
                "type": "null"
              }
            ]
          },
          "blocked": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.SpendLimitBlocked"
              },
              {
                "type": "null"
              }
            ]
          },
          "unlimited": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.SpendLimitUnlimited"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Spend Limit",
        "type": "object",
        "x-speakeasy-name-override": "FundsSpendLimit"
      },
      "c1.api.funds.v1.SpendLimitAmount": {
        "description": "The SpendLimitAmount message.",
        "properties": {
          "money": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.Money"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Spend Limit Amount",
        "type": "object",
        "x-speakeasy-name-override": "FundsSpendLimitAmount"
      },
      "c1.api.funds.v1.SpendLimitBlocked": {
        "description": "The SpendLimitBlocked message.",
        "title": "Spend Limit Blocked",
        "type": "object",
        "x-speakeasy-name-override": "FundsSpendLimitBlocked"
      },
      "c1.api.funds.v1.SpendLimitUnlimited": {
        "description": "The SpendLimitUnlimited message.",
        "title": "Spend Limit Unlimited",
        "type": "object",
        "x-speakeasy-name-override": "FundsSpendLimitUnlimited"
      },
      "c1.api.funds.v1.SpendSuspension": {
        "description": "SpendSuspension preserves the underlying controls while refusing new spend.",
        "properties": {
          "reason": {
            "description": "The reason field.",
            "type": "string"
          },
          "suspendedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Spend Suspension",
        "type": "object",
        "x-speakeasy-name-override": "FundsSpendSuspension"
      },
      "c1.api.funds.v1.SubjectAppLimit": {
        "description": "SubjectAppLimit is one subject's per-app limit row as the admin plane\n renders it. The subject is named explicitly, unlike MyFundLimit, which is\n always the caller's.",
        "properties": {
          "appId": {
            "description": "The C1 App this limit applies to.",
            "type": "string"
          },
          "controls": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.SpendControls"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "tenantId": {
            "description": "The tenantId field.",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "userId": {
            "description": "Canonical c1.models.user.v2.User id.",
            "type": "string"
          }
        },
        "title": "Subject App Limit",
        "type": "object",
        "x-speakeasy-name-override": "SubjectAppLimit"
      },
      "c1.api.funds.v1.SubjectAppLimitHistoryEntry": {
        "description": "The SubjectAppLimitHistoryEntry message.",
        "properties": {
          "metadata": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.history.v1.HistoryEntryMetadata"
              },
              {
                "type": "null"
              }
            ]
          },
          "snapshot": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.SubjectAppLimit"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Subject App Limit History Entry",
        "type": "object",
        "x-speakeasy-name-override": "SubjectAppLimitHistoryEntry"
      },
      "c1.api.funds.v1.SubjectAppLimitServiceDeleteRequestInput": {
        "description": "The SubjectAppLimitServiceDeleteRequest message.",
        "title": "Subject App Limit Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "SubjectAppLimitServiceDeleteRequest"
      },
      "c1.api.funds.v1.SubjectAppLimitServiceDeleteResponse": {
        "description": "The SubjectAppLimitServiceDeleteResponse message.",
        "title": "Subject App Limit Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "SubjectAppLimitServiceDeleteResponse"
      },
      "c1.api.funds.v1.SubjectAppLimitServiceGetResponse": {
        "description": "The SubjectAppLimitServiceGetResponse message.",
        "properties": {
          "limit": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.SubjectAppLimit"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Subject App Limit Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "SubjectAppLimitServiceGetResponse"
      },
      "c1.api.funds.v1.SubjectAppLimitServiceListHistoryResponse": {
        "description": "The SubjectAppLimitServiceListHistoryResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.funds.v1.SubjectAppLimitHistoryEntry"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Subject App Limit Service List History Response",
        "type": "object",
        "x-speakeasy-name-override": "SubjectAppLimitServiceListHistoryResponse"
      },
      "c1.api.funds.v1.SubjectAppLimitServiceSearchRequest": {
        "description": "The SubjectAppLimitServiceSearchRequest message.",
        "properties": {
          "appIds": {
            "description": "Restrict to these apps; empty returns every app.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pageSize": {
            "description": "The pageSize field.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          },
          "states": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.SubjectAppLimitStateFilter"
              },
              {
                "type": "null"
              }
            ]
          },
          "userIds": {
            "description": "Restrict to these subjects; empty returns every row in the tenant.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Subject App Limit Service Search Request",
        "type": "object",
        "x-speakeasy-name-override": "SubjectAppLimitServiceSearchRequest"
      },
      "c1.api.funds.v1.SubjectAppLimitServiceSearchResponse": {
        "description": "The SubjectAppLimitServiceSearchResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.funds.v1.SubjectAppLimit"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Subject App Limit Service Search Response",
        "type": "object",
        "x-speakeasy-name-override": "SubjectAppLimitServiceSearchResponse"
      },
      "c1.api.funds.v1.SubjectAppLimitServiceSetLimitRequestInput": {
        "description": "The SubjectAppLimitServiceSetLimitRequest message.",
        "properties": {
          "limit": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.SpendLimit"
              },
              {
                "type": "null"
              }
            ]
          },
          "period": {
            "description": "Optional period override. Only valid together with the limit it denominates.",
            "enum": [
              "PERIOD_KIND_UNSPECIFIED",
              "PERIOD_KIND_DAILY",
              "PERIOD_KIND_WEEKLY",
              "PERIOD_KIND_MONTHLY",
              "PERIOD_KIND_QUARTERLY",
              "PERIOD_KIND_YEARLY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Subject App Limit Service Set Limit Request",
        "type": "object",
        "x-speakeasy-name-override": "SubjectAppLimitServiceSetLimitRequest"
      },
      "c1.api.funds.v1.SubjectAppLimitServiceSetLimitResponse": {
        "description": "The SubjectAppLimitServiceSetLimitResponse message.",
        "properties": {
          "limit": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.SubjectAppLimit"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Subject App Limit Service Set Limit Response",
        "type": "object",
        "x-speakeasy-name-override": "SubjectAppLimitServiceSetLimitResponse"
      },
      "c1.api.funds.v1.SubjectAppLimitServiceSuspendRequestInput": {
        "description": "The SubjectAppLimitServiceSuspendRequest message.",
        "properties": {
          "reason": {
            "description": "The reason field.",
            "type": "string"
          }
        },
        "title": "Subject App Limit Service Suspend Request",
        "type": "object",
        "x-speakeasy-name-override": "SubjectAppLimitServiceSuspendRequest"
      },
      "c1.api.funds.v1.SubjectAppLimitServiceSuspendResponse": {
        "description": "The SubjectAppLimitServiceSuspendResponse message.",
        "properties": {
          "limit": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.SubjectAppLimit"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Subject App Limit Service Suspend Response",
        "type": "object",
        "x-speakeasy-name-override": "SubjectAppLimitServiceSuspendResponse"
      },
      "c1.api.funds.v1.SubjectAppLimitServiceUnsuspendRequestInput": {
        "description": "The SubjectAppLimitServiceUnsuspendRequest message.",
        "title": "Subject App Limit Service Unsuspend Request",
        "type": "object",
        "x-speakeasy-name-override": "SubjectAppLimitServiceUnsuspendRequest"
      },
      "c1.api.funds.v1.SubjectAppLimitServiceUnsuspendResponse": {
        "description": "The SubjectAppLimitServiceUnsuspendResponse message.",
        "properties": {
          "limit": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.SubjectAppLimit"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Subject App Limit Service Unsuspend Response",
        "type": "object",
        "x-speakeasy-name-override": "SubjectAppLimitServiceUnsuspendResponse"
      },
      "c1.api.funds.v1.SubjectAppLimitStateFilter": {
        "description": "SubjectAppLimitStateFilter is the structured state filter. The three states\n are mutually exclusive by construction: suspended is suspension present;\n explicit-limit is suspension absent AND limit present; inheriting is\n neither. Combining them is a union. Unset (all false) does not filter by\n state at all.",
        "properties": {
          "explicitLimit": {
            "description": "No suspension and a limit arm is present, whatever it states. True for\n the seeded support case: \"show me everyone with an explicit per-app\n number\".",
            "type": "boolean"
          },
          "inheriting": {
            "description": "No suspension and no limit: the row exists but states no opinion, so\n resolution falls through it. No compliant write persists such a row —\n the clearing verbs delete it — so a match is a legacy or corrupt row,\n which is exactly what an admin auditing \"which rows are doing nothing\"\n needs the filter to surface.",
            "type": "boolean"
          },
          "suspended": {
            "description": "A suspension is present: the app is paused for this subject. A row that\n also carries a limit is still suspended — the suspension is what its\n subject experiences.",
            "type": "boolean"
          }
        },
        "title": "Subject App Limit State Filter",
        "type": "object",
        "x-speakeasy-name-override": "SubjectAppLimitStateFilter"
      },
      "c1.api.funds.v1.SubjectAppScope": {
        "description": "SubjectAppScope identifies one user's account for an application.",
        "properties": {
          "appId": {
            "description": "Application ID of the account.",
            "type": "string"
          },
          "userId": {
            "description": "User ID of the account owner.",
            "type": "string"
          }
        },
        "title": "Subject App Scope",
        "type": "object",
        "x-speakeasy-name-override": "FundsSubjectAppScope"
      },
      "c1.api.funds.v1.SubjectScope": {
        "description": "SubjectScope identifies one user's account.",
        "properties": {
          "userId": {
            "description": "User ID of the account owner.",
            "type": "string"
          }
        },
        "title": "Subject Scope",
        "type": "object",
        "x-speakeasy-name-override": "FundsSubjectScope"
      },
      "c1.api.funds.v1.TenantScope": {
        "description": "TenantScope identifies the organization-wide account.",
        "title": "Tenant Scope",
        "type": "object",
        "x-speakeasy-name-override": "FundsTenantScope"
      },
      "c1.api.golink.v1.GoLink": {
        "description": "GoLink is the API representation of a short link.",
        "properties": {
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "currentVersion": {
            "description": "The currentVersion field.",
            "format": "int32",
            "readOnly": true,
            "type": "integer"
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "The description field.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "prerequisite": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.golink.v1.GoLinkPrerequisite"
              },
              {
                "type": "null"
              }
            ]
          },
          "routes": {
            "description": "The routes field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.golink.v1.GoLinkRouteConfig"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "status": {
            "description": "The status field.",
            "enum": [
              "GO_LINK_STATUS_UNSPECIFIED",
              "GO_LINK_STATUS_ENABLED",
              "GO_LINK_STATUS_DISABLED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "target": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.golink.v1.GoLinkTarget"
              },
              {
                "type": "null"
              }
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Go Link",
        "type": "object",
        "x-speakeasy-name-override": "GoLink"
      },
      "c1.api.golink.v1.GoLinkActionTarget": {
        "description": "The GoLinkActionTarget message.",
        "properties": {
          "actionId": {
            "description": "The actionId field.",
            "type": "string"
          }
        },
        "title": "Go Link Action Target",
        "type": "object",
        "x-speakeasy-name-override": "GoLinkActionTarget"
      },
      "c1.api.golink.v1.GoLinkChooserOption": {
        "description": "The GoLinkChooserOption message.",
        "properties": {
          "description": {
            "description": "The description field.",
            "type": "string"
          },
          "label": {
            "description": "The label field.",
            "type": "string"
          },
          "target": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.golink.v1.GoLinkTarget"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Go Link Chooser Option",
        "type": "object",
        "x-speakeasy-name-override": "GoLinkChooserOption"
      },
      "c1.api.golink.v1.GoLinkChooserTarget": {
        "description": "The GoLinkChooserTarget message.",
        "properties": {
          "options": {
            "description": "The options field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.golink.v1.GoLinkChooserOption"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Go Link Chooser Target",
        "type": "object",
        "x-speakeasy-name-override": "GoLinkChooserTarget"
      },
      "c1.api.golink.v1.GoLinkPrerequisite": {
        "description": "The GoLinkPrerequisite message.",
        "properties": {
          "appEntitlementId": {
            "description": "The appEntitlementId field.",
            "type": "string"
          },
          "appId": {
            "description": "The appId field.",
            "type": "string"
          }
        },
        "title": "Go Link Prerequisite",
        "type": "object",
        "x-speakeasy-name-override": "GoLinkPrerequisite"
      },
      "c1.api.golink.v1.GoLinkRedirectTarget": {
        "description": "The GoLinkRedirectTarget message.",
        "properties": {
          "urlTemplate": {
            "description": "URL template with named placeholders matching route parameters.\n e.g., \"https://jira.internal/browse/{ticket_id}\"",
            "type": "string"
          }
        },
        "title": "Go Link Redirect Target",
        "type": "object",
        "x-speakeasy-name-override": "GoLinkRedirectTarget"
      },
      "c1.api.golink.v1.GoLinkRef": {
        "description": "The GoLinkRef message.",
        "properties": {
          "id": {
            "description": "The id field.",
            "type": "string"
          }
        },
        "title": "Go Link Ref",
        "type": "object",
        "x-speakeasy-name-override": "GoLinkRef"
      },
      "c1.api.golink.v1.GoLinkRouteConfig": {
        "description": "The GoLinkRouteConfig message.",
        "properties": {
          "isCanonical": {
            "description": "The isCanonical field.",
            "type": "boolean"
          },
          "routeTemplate": {
            "description": "The route template with optional named parameters.\n Exact routes: \"jira\", \"jira/create\"\n Glob routes: \"jira/{ticket_id}\", \"aws/{path}\"",
            "type": "string"
          }
        },
        "title": "Go Link Route Config",
        "type": "object",
        "x-speakeasy-name-override": "GoLinkRouteConfig"
      },
      "c1.api.golink.v1.GoLinkSearchServiceSearchRequest": {
        "description": "The GoLinkSearchServiceSearchRequest message.",
        "properties": {
          "ownerUserIds": {
            "description": "Filter by owner user IDs. Joins against the C1 entitlement user binding to find\n GoLinks where any of these users hold the \"owner\" entitlement grant.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pageSize": {
            "description": "The pageSize field.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          },
          "query": {
            "description": "The query field.",
            "type": "string"
          },
          "refs": {
            "description": "The refs field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.golink.v1.GoLinkRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "status": {
            "description": "Filter by status. If not set, returns all non-deleted GoLinks.",
            "enum": [
              "GO_LINK_STATUS_UNSPECIFIED",
              "GO_LINK_STATUS_ENABLED",
              "GO_LINK_STATUS_DISABLED"
            ],
            "type": [
              "string",
              "null"
            ],
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Go Link Search Service Search Request",
        "type": "object",
        "x-speakeasy-name-override": "GoLinkSearchServiceSearchRequest"
      },
      "c1.api.golink.v1.GoLinkSearchServiceSearchResponse": {
        "description": "The GoLinkSearchServiceSearchResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.golink.v1.GoLinkView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Go Link Search Service Search Response",
        "type": "object",
        "x-speakeasy-name-override": "GoLinkSearchServiceSearchResponse"
      },
      "c1.api.golink.v1.GoLinkServiceCreateRequest": {
        "description": "The GoLinkServiceCreateRequest message.",
        "properties": {
          "description": {
            "description": "The description field.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "prerequisite": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.golink.v1.GoLinkPrerequisite"
              },
              {
                "type": "null"
              }
            ]
          },
          "routes": {
            "description": "The routes field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.golink.v1.GoLinkRouteConfig"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "target": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.golink.v1.GoLinkTarget"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Go Link Service Create Request",
        "type": "object",
        "x-speakeasy-name-override": "GoLinkServiceCreateRequest"
      },
      "c1.api.golink.v1.GoLinkServiceCreateResponse": {
        "description": "The GoLinkServiceCreateResponse message.",
        "properties": {
          "golink": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.golink.v1.GoLink"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Go Link Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "GoLinkServiceCreateResponse"
      },
      "c1.api.golink.v1.GoLinkServiceDeleteRequestInput": {
        "description": "The GoLinkServiceDeleteRequest message.",
        "title": "Go Link Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "GoLinkServiceDeleteRequest"
      },
      "c1.api.golink.v1.GoLinkServiceDeleteResponse": {
        "description": "The GoLinkServiceDeleteResponse message.",
        "title": "Go Link Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "GoLinkServiceDeleteResponse"
      },
      "c1.api.golink.v1.GoLinkServiceGetResponse": {
        "description": "The GoLinkServiceGetResponse message.",
        "properties": {
          "golinkView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.golink.v1.GoLinkView"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Go Link Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "GoLinkServiceGetResponse"
      },
      "c1.api.golink.v1.GoLinkServiceListResponse": {
        "description": "The GoLinkServiceListResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.golink.v1.GoLinkView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Go Link Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "GoLinkServiceListResponse"
      },
      "c1.api.golink.v1.GoLinkServiceListVersionsResponse": {
        "description": "The GoLinkServiceListVersionsResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.golink.v1.GoLinkVersion"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Go Link Service List Versions Response",
        "type": "object",
        "x-speakeasy-name-override": "GoLinkServiceListVersionsResponse"
      },
      "c1.api.golink.v1.GoLinkServiceResolveRequest": {
        "description": "The GoLinkServiceResolveRequest message.",
        "properties": {
          "path": {
            "description": "The path to resolve, e.g. \"jira/PROJ-123\", \"aws/console\", \"j\"",
            "type": "string"
          }
        },
        "title": "Go Link Service Resolve Request",
        "type": "object",
        "x-speakeasy-name-override": "GoLinkServiceResolveRequest"
      },
      "c1.api.golink.v1.GoLinkServiceResolveResponse": {
        "description": "The GoLinkServiceResolveResponse message.",
        "properties": {
          "actionId": {
            "description": "Set when outcome is ACTION. The action ID to trigger.",
            "type": "string"
          },
          "chooserOptions": {
            "description": "Set when outcome is CHOOSER. The chooser options to present to the user.",
            "items": {
              "$ref": "#/components/schemas/c1.api.golink.v1.GoLinkChooserOption"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "golink": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.golink.v1.GoLink"
              },
              {
                "type": "null"
              }
            ]
          },
          "outcome": {
            "description": "The outcome field.",
            "enum": [
              "GO_LINK_RESOLVE_OUTCOME_UNSPECIFIED",
              "GO_LINK_RESOLVE_OUTCOME_REDIRECT",
              "GO_LINK_RESOLVE_OUTCOME_PREREQUISITE_MISSING",
              "GO_LINK_RESOLVE_OUTCOME_CHOOSER",
              "GO_LINK_RESOLVE_OUTCOME_ACTION",
              "GO_LINK_RESOLVE_OUTCOME_NOT_FOUND",
              "GO_LINK_RESOLVE_OUTCOME_DISABLED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "prerequisite": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.golink.v1.GoLinkPrerequisite"
              },
              {
                "type": "null"
              }
            ]
          },
          "redirectUrl": {
            "description": "Set when outcome is REDIRECT. The fully resolved URL to redirect to.",
            "type": "string"
          },
          "suggestions": {
            "description": "Set when outcome is NOT_FOUND. Suggested GoLinks that might match the path.",
            "items": {
              "$ref": "#/components/schemas/c1.api.golink.v1.GoLinkView"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Go Link Service Resolve Response",
        "type": "object",
        "x-speakeasy-name-override": "GoLinkServiceResolveResponse"
      },
      "c1.api.golink.v1.GoLinkServiceUpdateRequestInput": {
        "description": "The GoLinkServiceUpdateRequest message.",
        "properties": {
          "golink": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.golink.v1.GoLink"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Go Link Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "GoLinkServiceUpdateRequest"
      },
      "c1.api.golink.v1.GoLinkServiceUpdateResponse": {
        "description": "The GoLinkServiceUpdateResponse message.",
        "properties": {
          "golink": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.golink.v1.GoLink"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Go Link Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "GoLinkServiceUpdateResponse"
      },
      "c1.api.golink.v1.GoLinkTarget": {
        "description": "The GoLinkTarget message.\n\nThis message contains a oneof named target. Only a single field of the following list may be set at a time:\n  - redirect\n  - action\n  - chooser\n",
        "properties": {
          "action": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.golink.v1.GoLinkActionTarget"
              },
              {
                "type": "null"
              }
            ]
          },
          "chooser": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.golink.v1.GoLinkChooserTarget"
              },
              {
                "type": "null"
              }
            ]
          },
          "redirect": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.golink.v1.GoLinkRedirectTarget"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Go Link Target",
        "type": "object",
        "x-speakeasy-name-override": "GoLinkTarget"
      },
      "c1.api.golink.v1.GoLinkVersion": {
        "description": "GoLinkVersion represents a point-in-time snapshot of a GoLink.",
        "properties": {
          "changedByUserId": {
            "description": "The changedByUserId field.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "golinkId": {
            "description": "The golinkId field.",
            "type": "string"
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "snapshot": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.golink.v1.GoLink"
              },
              {
                "type": "null"
              }
            ]
          },
          "version": {
            "description": "The version field.",
            "format": "int32",
            "type": "integer"
          }
        },
        "title": "Go Link Version",
        "type": "object",
        "x-speakeasy-name-override": "GoLinkVersion"
      },
      "c1.api.golink.v1.GoLinkView": {
        "description": "GoLinkView wraps a GoLink with per-object permissions for the current user.",
        "properties": {
          "golink": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.golink.v1.GoLink"
              },
              {
                "type": "null"
              }
            ]
          },
          "objectPermissions": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.iam.v1.ActorObjectPermissions"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Go Link View",
        "type": "object",
        "x-speakeasy-name-override": "GoLinkView"
      },
      "c1.api.history.v1.HistoryActor": {
        "description": "HistoryActor is a typed reference to whoever performed the change.\n kind identifies the actor's service; user_id is set when\n kind corresponds to a user principal (API / SUPPORT) so the frontend\n can resolve the user via its own avatar / lookup hooks. Protos\n reference objects by id; the frontend renders / caches itself.\n\n The raw passport fields (token_id / principal_id) intentionally do not\n leave the server. Non-user actors (workflow, connector, internal) are\n identified by `kind` alone; correlating IDs (workflow_run_id, etc.)\n flow through `HistoryAnnotation` instead of being plucked into the\n actor message.",
        "properties": {
          "kind": {
            "description": "The kind field.",
            "enum": [
              "ACTOR_KIND_UNSPECIFIED",
              "ACTOR_KIND_API",
              "ACTOR_KIND_SLACK",
              "ACTOR_KIND_MSTEAMS",
              "ACTOR_KIND_JIRA_CLOUD",
              "ACTOR_KIND_INTERNAL",
              "ACTOR_KIND_SUPPORT",
              "ACTOR_KIND_WORKFLOW"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "userId": {
            "description": "Bare KSUID. Set when kind = ACTOR_KIND_API or ACTOR_KIND_SUPPORT.\n Empty otherwise. The frontend resolves user_id → display name via\n the same lookup paths it uses elsewhere (avatars, mentions, ...).",
            "type": "string"
          }
        },
        "title": "History Actor",
        "type": "object",
        "x-speakeasy-name-override": "HistoryActor"
      },
      "c1.api.history.v1.HistoryAnnotation": {
        "description": "HistoryAnnotation is a single operator-provided key/value rendered with\n per-key display metadata. Annotations are minted from the\n Tx.*WithHistoryAnnotations / db.WithHistoryAnnotations call options.",
        "properties": {
          "displayLabel": {
            "description": "Server-rendered label, e.g. \"Ticket\".",
            "type": "string"
          },
          "displayUrl": {
            "description": "Resolved from tenant config; \"\" if none. Frontend applies its own\n scheme allowlist.",
            "type": "string"
          },
          "displayValue": {
            "description": "UI-friendly rendering (truncated / reshaped from raw_value).",
            "type": "string"
          },
          "key": {
            "description": "Storage-side key. Bounds: ^[a-z][a-z0-9_.-]{0,63}$.",
            "type": "string"
          },
          "kind": {
            "description": "The kind field.",
            "enum": [
              "ANNOTATION_KIND_UNSPECIFIED",
              "ANNOTATION_KIND_GENERIC",
              "ANNOTATION_KIND_TICKET",
              "ANNOTATION_KIND_REASON",
              "ANNOTATION_KIND_WORKFLOW",
              "ANNOTATION_KIND_BATCH",
              "ANNOTATION_KIND_CORRELATION",
              "ANNOTATION_KIND_AUTOMATION"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "rawValue": {
            "description": "Raw value as stored in ObjectHistory.annotations; storage-side values\n are capped at 512 bytes.",
            "type": "string"
          }
        },
        "title": "History Annotation",
        "type": "object",
        "x-speakeasy-name-override": "HistoryAnnotation"
      },
      "c1.api.history.v1.HistoryEntryMetadata": {
        "description": "HistoryEntryMetadata is the shared metadata envelope embedded on every\n per-service HistoryEntry. The strongly-typed snapshot lives on the\n per-service entry message alongside this envelope.",
        "properties": {
          "actor": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.history.v1.HistoryActor"
              },
              {
                "type": "null"
              }
            ]
          },
          "annotations": {
            "description": "Server-rendered annotations: known keys carry display_label and\n (for ticket_id, etc.) display_url resolved from tenant config.\n Cap mirrors the per-object annotation ceiling (16).",
            "items": {
              "$ref": "#/components/schemas/c1.api.history.v1.HistoryAnnotation"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "changeKind": {
            "description": "UNSPECIFIED should never appear on the wire.",
            "enum": [
              "CHANGE_KIND_UNSPECIFIED",
              "CHANGE_KIND_CREATE",
              "CHANGE_KIND_PUT",
              "CHANGE_KIND_HARD_DELETE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "KSUID. Same value as c1.models.history.v1.ObjectHistory.id.",
            "type": "string"
          },
          "syslogEventId": {
            "description": "System Log event id — KSUID of the OCSF event recorded for this\n write. Empty for non-RPC writes (workflows, cron). Customer-facing\n copy says \"System Log event\"; the underlying format is OCSF.",
            "type": "string"
          },
          "traceId": {
            "description": "OTel trace correlation. Empty when no valid span at write time.\n 32-hex-char otel trace id or empty.",
            "type": "string"
          }
        },
        "title": "History Entry Metadata",
        "type": "object",
        "x-speakeasy-name-override": "HistoryEntryMetadata"
      },
      "c1.api.history.v1.ListHistoryEntryMetadata": {
        "description": "ListHistoryEntryMetadata is the per-transaction metadata envelope.",
        "properties": {
          "actor": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.history.v1.HistoryActor"
              },
              {
                "type": "null"
              }
            ]
          },
          "annotations": {
            "description": "Server-rendered annotations (mirrors object_history).",
            "items": {
              "$ref": "#/components/schemas/c1.api.history.v1.HistoryAnnotation"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "KSUID. Same value as c1.models.history.v1.ListHistory.id.",
            "type": "string"
          },
          "syslogEventId": {
            "description": "System Log event id — KSUID of the OCSF event recorded for this\n transaction. Empty for non-RPC writes (workflows, cron).",
            "type": "string"
          },
          "traceId": {
            "description": "32-hex-char otel trace id or empty.",
            "type": "string"
          }
        },
        "title": "List History Entry Metadata",
        "type": "object",
        "x-speakeasy-name-override": "ListHistoryEntryMetadata"
      },
      "c1.api.hooks.v1.BlockOutputConfig": {
        "description": "BlockOutputConfig denies the in-flight response chunk when its hook's\n filter matches. Only valid for HOOK_EVENT_TYPE_PRE_OUTPUT.",
        "properties": {
          "message": {
            "description": "Message shown to the user when this hook blocks the response. Empty\n falls back to the curating AgentGuardrailRule's deny_reason, then to a\n generic default.",
            "type": "string"
          },
          "surfaces": {
            "description": "Output surfaces this hook applies to. Empty means none — the hook is\n inert until at least one surface is explicitly selected.",
            "items": {
              "enum": [
                "HOOK_OUTPUT_SURFACE_UNSPECIFIED",
                "HOOK_OUTPUT_SURFACE_SLACK",
                "HOOK_OUTPUT_SURFACE_WEB"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Block Output Config",
        "type": "object",
        "x-speakeasy-name-override": "BlockOutputConfig"
      },
      "c1.api.hooks.v1.BlockToolCallConfig": {
        "description": "BlockToolCallConfig unconditionally denies the tool call when its hook's\n filter matches. Only valid for HOOK_EVENT_TYPE_POST_TOOL_USE.",
        "properties": {
          "message": {
            "description": "Message shown when the tool call is denied. Empty falls back to a\n generic default.",
            "type": "string"
          }
        },
        "title": "Block Tool Call Config",
        "type": "object",
        "x-speakeasy-name-override": "BlockToolCallConfig"
      },
      "c1.api.hooks.v1.BuiltInPattern": {
        "description": "BuiltInPattern references a ConductorOne-maintained DLP pattern.\n The specific pattern and its configuration are encoded as a oneof.\n\nThis message contains a oneof named config. Only a single field of the following list may be set at a time:\n  - piiRedaction\n  - creditCardBlocking\n  - queryScopeLimit\n  - writeAuthorization\n  - sensitiveFileGuard\n  - toolOutputSizeGuard\n  - secretsMasking\n  - linkFilter\n  - encodedContentGuard\n  - promptInjectionScan\n  - blockOutput\n  - blockToolCall\n  - preToolBlock\n",
        "properties": {
          "blockOutput": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.hooks.v1.BlockOutputConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "blockToolCall": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.hooks.v1.BlockToolCallConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "creditCardBlocking": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.hooks.v1.CreditCardBlockingConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "encodedContentGuard": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.hooks.v1.EncodedContentGuardConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "linkFilter": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.hooks.v1.LinkFilterConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "piiRedaction": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.hooks.v1.PIIRedactionConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "preToolBlock": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.hooks.v1.PreToolBlockConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "promptInjectionScan": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.hooks.v1.PromptInjectionScanConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "queryScopeLimit": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.hooks.v1.QueryScopeLimitConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "secretsMasking": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.hooks.v1.SecretsMaskingConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "sensitiveFileGuard": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.hooks.v1.SensitiveFileGuardConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "toolOutputSizeGuard": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.hooks.v1.ToolOutputSizeGuardConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "writeAuthorization": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.hooks.v1.WriteAuthorizationConfig"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Built In Pattern",
        "type": "object",
        "x-speakeasy-name-override": "BuiltInPattern"
      },
      "c1.api.hooks.v1.BusinessHours": {
        "description": "BusinessHours defines a weekly time window in a specific timezone.",
        "properties": {
          "days": {
            "description": "0=Sun, 1=Mon, ..., 6=Sat.",
            "items": {
              "format": "int32",
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "end": {
            "description": "\"HH:MM\" in 24-hour format.",
            "type": "string"
          },
          "start": {
            "description": "\"HH:MM\" in 24-hour format.",
            "type": "string"
          },
          "timezone": {
            "description": "The timezone field.",
            "type": "string"
          }
        },
        "title": "Business Hours",
        "type": "object",
        "x-speakeasy-name-override": "BusinessHours"
      },
      "c1.api.hooks.v1.CreditCardBlockingConfig": {
        "description": "CreditCardBlockingConfig denies any tool call whose output contains a\n Luhn-valid credit card number. No configuration fields today; the\n presence of the oneof arm is the whole configuration.",
        "title": "Credit Card Blocking Config",
        "type": "object",
        "x-speakeasy-name-override": "CreditCardBlockingConfig"
      },
      "c1.api.hooks.v1.EncodedContentGuardConfig": {
        "description": "EncodedContentGuardConfig detects encoded/obfuscated smuggling in tool input:\n long base64 blobs, long hex runs, and invisible/zero-width unicode.",
        "properties": {
          "flagOnly": {
            "description": "When true, detection records the finding but does not deny (observe-only).",
            "type": "boolean"
          },
          "minBase64Run": {
            "description": "Minimum contiguous base64 run length to flag. \u003c= 0 = default (256).",
            "format": "int32",
            "type": "integer"
          },
          "minHexRun": {
            "description": "Minimum contiguous hex run length to flag. \u003c= 0 = default (128).",
            "format": "int32",
            "type": "integer"
          }
        },
        "title": "Encoded Content Guard Config",
        "type": "object",
        "x-speakeasy-name-override": "EncodedContentGuardConfig"
      },
      "c1.api.hooks.v1.Hook": {
        "description": "Hook represents a customer-configured interception point for tool calls.\n\nThis message contains a oneof named hook_type. Only a single field of the following list may be set at a time:\n  - function\n  - builtinPattern\n  - jsonPatch\n",
        "properties": {
          "builtinPattern": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.hooks.v1.BuiltInPattern"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "The description field.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "enabled": {
            "description": "The enabled field.",
            "type": "boolean"
          },
          "event": {
            "description": "The event field.",
            "enum": [
              "HOOK_EVENT_TYPE_UNSPECIFIED",
              "HOOK_EVENT_TYPE_PRE_TOOL_USE",
              "HOOK_EVENT_TYPE_POST_TOOL_USE",
              "HOOK_EVENT_TYPE_PRE_OUTPUT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "filter": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.hooks.v1.HookFilter"
              },
              {
                "type": "null"
              }
            ]
          },
          "function": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.hooks.v1.HookFunctionRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "jsonPatch": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.hooks.v1.JSONPatchConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "managedByGuardrails": {
            "description": "managed_by_guardrails marks a hook as selectable in a guardrail rule's\n curated pre_hook_ids/post_hook_ids. A hook left false (the default,\n including every pre-existing hook) always runs regardless of guardrail\n state; a hook set true only runs when a matched rule selects it.",
            "type": "boolean"
          },
          "priority": {
            "description": "The priority field.",
            "format": "int32",
            "type": "integer"
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Hook",
        "type": "object",
        "x-speakeasy-name-override": "Hook"
      },
      "c1.api.hooks.v1.HookFilter": {
        "description": "HookFilter determines which calls (or, for HOOK_EVENT_TYPE_PRE_OUTPUT,\n which outgoing response chunks) a hook applies to.",
        "properties": {
          "celExpression": {
            "description": "CEL expression evaluated against event context. Must evaluate to bool,\n empty = matches everything for the event type.\n HOOK_EVENT_TYPE_PRE_TOOL_USE / POST_TOOL_USE: ctx.tool_name (string),\n and for a call originating from a chat channel ctx.surface (string,\n \"slack\", \"web\", or \"teams\"), ctx.channel_id (string, the channel the\n message arrived on — only set for \"slack\"/\"teams\"; \"web\" channel refs are\n per-conversation and not admin-predictable), and ctx.workspace_id\n (string, the Slack/Teams workspace, when known). All three are absent\n otherwise, so guard them with has(ctx.surface) / has(ctx.channel_id) /\n has(ctx.workspace_id).\n HOOK_EVENT_TYPE_PRE_OUTPUT: ctx.untrusted_class (string), ctx.surface\n (string, \"slack\" or \"web\").",
            "type": "string"
          }
        },
        "title": "Hook Filter",
        "type": "object",
        "x-speakeasy-name-override": "HookFilter"
      },
      "c1.api.hooks.v1.HookFunctionRef": {
        "description": "HookFunctionRef identifies a customer-authored function to invoke.",
        "properties": {
          "commitId": {
            "description": "If empty, the function's published commit is used at invocation time.",
            "type": "string"
          },
          "functionId": {
            "description": "The functionId field.",
            "type": "string"
          }
        },
        "title": "Hook Function Ref",
        "type": "object",
        "x-speakeasy-name-override": "HookFunctionRef"
      },
      "c1.api.hooks.v1.HookRef": {
        "description": "The HookRef message.",
        "properties": {
          "id": {
            "description": "The id field.",
            "type": "string"
          }
        },
        "title": "Hook Ref",
        "type": "object",
        "x-speakeasy-name-override": "HookRef"
      },
      "c1.api.hooks.v1.HooksSearchRequest": {
        "description": "The HooksSearchRequest message.",
        "properties": {
          "pageSize": {
            "description": "The pageSize field.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          },
          "query": {
            "description": "The query field.",
            "type": "string"
          },
          "refs": {
            "description": "The refs field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.hooks.v1.HookRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Hooks Search Request",
        "type": "object",
        "x-speakeasy-name-override": "HooksSearchRequest"
      },
      "c1.api.hooks.v1.HooksSearchResponse": {
        "description": "The HooksSearchResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.hooks.v1.Hook"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Hooks Search Response",
        "type": "object",
        "x-speakeasy-name-override": "HooksSearchResponse"
      },
      "c1.api.hooks.v1.HooksServiceCreateRequest": {
        "description": "The HooksServiceCreateRequest message.\n\nThis message contains a oneof named hook_type. Only a single field of the following list may be set at a time:\n  - function\n  - builtinPattern\n  - jsonPatch\n",
        "properties": {
          "builtinPattern": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.hooks.v1.BuiltInPattern"
              },
              {
                "type": "null"
              }
            ]
          },
          "description": {
            "description": "The description field.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "enabled": {
            "description": "The enabled field.",
            "type": "boolean"
          },
          "event": {
            "description": "The event field.",
            "enum": [
              "HOOK_EVENT_TYPE_UNSPECIFIED",
              "HOOK_EVENT_TYPE_PRE_TOOL_USE",
              "HOOK_EVENT_TYPE_POST_TOOL_USE",
              "HOOK_EVENT_TYPE_PRE_OUTPUT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "filter": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.hooks.v1.HookFilter"
              },
              {
                "type": "null"
              }
            ]
          },
          "function": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.hooks.v1.HookFunctionRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "jsonPatch": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.hooks.v1.JSONPatchConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "managedByGuardrails": {
            "description": "The managedByGuardrails field.",
            "type": "boolean"
          },
          "priority": {
            "description": "The priority field.",
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "displayName"
        ],
        "title": "Hooks Service Create Request",
        "type": "object",
        "x-speakeasy-name-override": "HooksServiceCreateRequest"
      },
      "c1.api.hooks.v1.HooksServiceCreateResponse": {
        "description": "The HooksServiceCreateResponse message.",
        "properties": {
          "hook": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.hooks.v1.Hook"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Hooks Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "HooksServiceCreateResponse"
      },
      "c1.api.hooks.v1.HooksServiceDeleteRequestInput": {
        "description": "The HooksServiceDeleteRequest message.",
        "title": "Hooks Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "HooksServiceDeleteRequest"
      },
      "c1.api.hooks.v1.HooksServiceDeleteResponse": {
        "description": "The HooksServiceDeleteResponse message.",
        "title": "Hooks Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "HooksServiceDeleteResponse"
      },
      "c1.api.hooks.v1.HooksServiceGetResponse": {
        "description": "The HooksServiceGetResponse message.",
        "properties": {
          "hook": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.hooks.v1.Hook"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Hooks Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "HooksServiceGetResponse"
      },
      "c1.api.hooks.v1.HooksServiceListResponse": {
        "description": "The HooksServiceListResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.hooks.v1.Hook"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Hooks Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "HooksServiceListResponse"
      },
      "c1.api.hooks.v1.HooksServiceUpdateRequestInput": {
        "description": "The HooksServiceUpdateRequest message.",
        "properties": {
          "hook": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.hooks.v1.Hook"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Hooks Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "HooksServiceUpdateRequest"
      },
      "c1.api.hooks.v1.HooksServiceUpdateResponse": {
        "description": "The HooksServiceUpdateResponse message.",
        "properties": {
          "hook": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.hooks.v1.Hook"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Hooks Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "HooksServiceUpdateResponse"
      },
      "c1.api.hooks.v1.JSONPatchConfig": {
        "description": "JSONPatchConfig adds, overwrites, or removes fields on a tool call's JSON\n input, with no function invocation. Only valid on\n HOOK_EVENT_TYPE_PRE_TOOL_USE. cel_expression is evaluated against\n ctx/input/caller and must produce a map; static_overlay is a fixed map.\n Either result is shallow-merged onto the input under RFC 7396 merge patch\n semantics: a key overwrites or adds that key, a null value removes it, and a\n nested object replaces rather than merging into the existing one.\n\nThis message contains a oneof named source. Only a single field of the following list may be set at a time:\n  - celExpression\n  - staticOverlay\n",
        "properties": {
          "celExpression": {
            "description": "The celExpression field.\nThis field is part of the `source` oneof.\nSee the documentation for `c1.api.hooks.v1.JSONPatchConfig` for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "staticOverlay": {
            "additionalProperties": true,
            "type": [
              "object",
              "null"
            ]
          }
        },
        "title": "Json Patch Config",
        "type": "object",
        "x-speakeasy-name-override": "JSONPatchConfig"
      },
      "c1.api.hooks.v1.LinkFilterConfig": {
        "description": "LinkFilterConfig strips or annotates URLs and markdown images in tool output\n whose host is not in allowed_hosts.",
        "properties": {
          "action": {
            "description": "Action taken on a disallowed link. Unspecified = REDACT.",
            "enum": [
              "LINK_FILTER_ACTION_UNSPECIFIED",
              "LINK_FILTER_ACTION_REDACT",
              "LINK_FILTER_ACTION_ANNOTATE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "allowedHosts": {
            "description": "Hosts that are permitted. Empty = every host is disallowed. Matched\n case-insensitively; a leading \".\" allows subdomains.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "blockImages": {
            "description": "When true, markdown image links to disallowed hosts are also acted on.",
            "type": "boolean"
          }
        },
        "title": "Link Filter Config",
        "type": "object",
        "x-speakeasy-name-override": "LinkFilterConfig"
      },
      "c1.api.hooks.v1.PIIRedactionConfig": {
        "description": "PIIRedactionConfig configures post-tool-use redaction of sensitive fields.",
        "properties": {
          "redactFields": {
            "description": "The redactFields field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "replacement": {
            "description": "The replacement field.",
            "type": "string"
          }
        },
        "title": "Pii Redaction Config",
        "type": "object",
        "x-speakeasy-name-override": "PIIRedactionConfig"
      },
      "c1.api.hooks.v1.PreToolBlockConfig": {
        "description": "PreToolBlockConfig unconditionally denies the tool call before it executes\n when its hook's filter matches. Only valid for HOOK_EVENT_TYPE_PRE_TOOL_USE.",
        "properties": {
          "message": {
            "description": "Message shown when the tool call is denied. Empty falls back to a\n generic default.",
            "type": "string"
          }
        },
        "title": "Pre Tool Block Config",
        "type": "object",
        "x-speakeasy-name-override": "PreToolBlockConfig"
      },
      "c1.api.hooks.v1.PromptInjectionScanConfig": {
        "description": "PromptInjectionScanConfig scans tool output for prompt-injection using the\n aigov A2 judge and acts when the verdict is at or above threshold.",
        "properties": {
          "flagOnly": {
            "description": "When true, a detection records the finding but does not deny (observe-only).",
            "type": "boolean"
          },
          "threshold": {
            "description": "Deny (or flag) when the judge scores at or above this level. Unspecified =\n HIGH.",
            "enum": [
              "PROMPT_INJECTION_THRESHOLD_UNSPECIFIED",
              "PROMPT_INJECTION_THRESHOLD_LOW",
              "PROMPT_INJECTION_THRESHOLD_MEDIUM",
              "PROMPT_INJECTION_THRESHOLD_HIGH"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Prompt Injection Scan Config",
        "type": "object",
        "x-speakeasy-name-override": "PromptInjectionScanConfig"
      },
      "c1.api.hooks.v1.QueryScopeLimitConfig": {
        "description": "QueryScopeLimitConfig caps numeric fields (e.g. limit, page_size) in tool\n input so callers cannot request unbounded data.",
        "properties": {
          "fields": {
            "description": "The fields field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "maxLimit": {
            "description": "The maxLimit field.",
            "format": "int32",
            "type": "integer"
          }
        },
        "title": "Query Scope Limit Config",
        "type": "object",
        "x-speakeasy-name-override": "QueryScopeLimitConfig"
      },
      "c1.api.hooks.v1.SecretsMaskingConfig": {
        "description": "SecretsMaskingConfig configures post-tool-use redaction of secret-shaped\n substrings (API keys, tokens, private keys) in tool output.",
        "properties": {
          "additionalPatterns": {
            "description": "Extra RE2 regexes whose matches are redacted in addition to the built-in\n secret patterns.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "placeholder": {
            "description": "Replacement string for a matched secret. Empty = \"***REDACTED-SECRET***\".",
            "type": "string"
          }
        },
        "title": "Secrets Masking Config",
        "type": "object",
        "x-speakeasy-name-override": "SecretsMaskingConfig"
      },
      "c1.api.hooks.v1.SensitiveFileGuardConfig": {
        "description": "SensitiveFileGuardConfig blocks tool calls that reference sensitive file\n paths or directories.",
        "properties": {
          "blockedDirectories": {
            "description": "The blockedDirectories field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "blockedPatterns": {
            "description": "The blockedPatterns field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Sensitive File Guard Config",
        "type": "object",
        "x-speakeasy-name-override": "SensitiveFileGuardConfig"
      },
      "c1.api.hooks.v1.ToolOutputSizeGuardConfig": {
        "description": "ToolOutputSizeGuardConfig caps post-tool-use output size in bytes.",
        "properties": {
          "maxBytes": {
            "description": "Maximum tool output size in bytes. Outputs exceeding this are denied.",
            "format": "int32",
            "type": "integer"
          }
        },
        "title": "Tool Output Size Guard Config",
        "type": "object",
        "x-speakeasy-name-override": "ToolOutputSizeGuardConfig"
      },
      "c1.api.hooks.v1.WriteAuthorizationConfig": {
        "description": "WriteAuthorizationConfig blocks tool calls whose ToolClassification is in\n blocked_classifications, optionally permitting them within business hours.",
        "properties": {
          "blockedClassifications": {
            "description": "Tool classifications to block. Must have at least one entry; a hook\n with no blocked classifications would be a silent misconfiguration.",
            "items": {
              "enum": [
                "TOOL_CLASSIFICATION_UNSPECIFIED",
                "TOOL_CLASSIFICATION_READ",
                "TOOL_CLASSIFICATION_WRITE",
                "TOOL_CLASSIFICATION_DESTRUCTIVE",
                "TOOL_CLASSIFICATION_SENSITIVE",
                "TOOL_CLASSIFICATION_DANGEROUS"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "businessHours": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.hooks.v1.BusinessHours"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Write Authorization Config",
        "type": "object",
        "x-speakeasy-name-override": "WriteAuthorizationConfig"
      },
      "c1.api.iam.v1.ActorObjectPermissions": {
        "description": "Legacy: do not use for new objects. Retained only for the existing\n AppResource / AppEntitlement / access-review consumers, which will migrate to\n c1.api.authorization.v1.ActorObjectPermissions in IGA-2331. New object views\n should reference c1.api.authorization.v1.ActorObjectPermissions instead.",
        "properties": {
          "delete": {
            "description": "The delete field.",
            "type": "boolean"
          },
          "edit": {
            "description": "The edit field.",
            "type": "boolean"
          },
          "extra": {
            "additionalProperties": {
              "type": "boolean"
            },
            "description": "The extra field.",
            "type": "object"
          },
          "read": {
            "description": "The read field.",
            "type": "boolean"
          }
        },
        "title": "Actor Object Permissions",
        "type": "object",
        "x-speakeasy-name-override": "ActorObjectPermissions"
      },
      "c1.api.iam.v1.AnnouncedTunnelService": {
        "description": "AnnouncedTunnelService is one service entry the appliance declared in its\n wormhole HELLO frame. Read live from the discovery store; not persisted.",
        "properties": {
          "name": {
            "description": "Logical name of the service as declared by the appliance.",
            "type": "string"
          },
          "port": {
            "description": "TCP port the service listens on inside the appliance network.",
            "format": "uint32",
            "type": "integer"
          },
          "servicePath": {
            "description": "Optional URL path prefix for the service.",
            "type": "string"
          },
          "serviceType": {
            "description": "Application-level protocol type (e.g. \"http\", \"grpc\").",
            "type": "string"
          },
          "transportType": {
            "description": "Transport protocol used by the wormhole tunnel (e.g. \"tcp\").",
            "type": "string"
          }
        },
        "title": "Announced Tunnel Service",
        "type": "object",
        "x-speakeasy-name-override": "AnnouncedTunnelService"
      },
      "c1.api.iam.v1.AnthropicCredentialFormat": {
        "description": "AnthropicCredentialFormat selects the Anthropic-compatible key family. It has no options yet.",
        "title": "Anthropic Credential Format",
        "type": "object",
        "x-speakeasy-name-override": "AnthropicCredentialFormat"
      },
      "c1.api.iam.v1.ExternalClientInfo": {
        "description": "ExternalClientInfo provides information about an approved external client.\n Used by both List (user's own grants) and Search (admin view of all grants).",
        "properties": {
          "clientId": {
            "description": "OAuth2 client ID - canonical identifier for this connection (globally unique per DCR)",
            "type": "string"
          },
          "clientIdType": {
            "description": "How the client_id was established.",
            "enum": [
              "CLIENT_ID_TYPE_UNSPECIFIED",
              "CLIENT_ID_TYPE_DCR",
              "CLIENT_ID_TYPE_METADATA_URL",
              "CLIENT_ID_TYPE_APP",
              "CLIENT_ID_TYPE_STATIC"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "clientIdUrl": {
            "description": "Original CIMD metadata URL (e.g., \"https://cursor.com/.well-known/oauth-client\").\n Empty for DCR clients.",
            "type": "string"
          },
          "clientName": {
            "description": "Original client name from DCR registration",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "displayName": {
            "description": "User-provided custom name (defaults to client_name if not set)",
            "type": "string"
          },
          "lastUsedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "mcpClientId": {
            "description": "MCP client record ID for AI governance tracking. May be empty for legacy grants.",
            "type": "string"
          },
          "roleIds": {
            "description": "Role IDs granted to this client - frontend can fetch display names via SearchRoles",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "userId": {
            "description": "The user who approved this external client (always populated)",
            "type": "string"
          },
          "verifiedDomain": {
            "description": "Verified domain from the client_id URL (e.g., \"cursor.com\").\n Empty for DCR clients.",
            "type": "string"
          },
          "wellKnownClient": {
            "description": "The wellKnownClient field.",
            "enum": [
              "WELL_KNOWN_CLIENT_UNSPECIFIED",
              "WELL_KNOWN_CLIENT_UNKNOWN",
              "WELL_KNOWN_CLIENT_CLAUDE_AI",
              "WELL_KNOWN_CLIENT_CLAUDE_DESKTOP",
              "WELL_KNOWN_CLIENT_CLAUDE_CODE",
              "WELL_KNOWN_CLIENT_MCP_INSPECTOR",
              "WELL_KNOWN_CLIENT_CHATGPT",
              "WELL_KNOWN_CLIENT_VSCODE",
              "WELL_KNOWN_CLIENT_CURSOR",
              "WELL_KNOWN_CLIENT_WINDSURF",
              "WELL_KNOWN_CLIENT_ZED",
              "WELL_KNOWN_CLIENT_JETBRAINS",
              "WELL_KNOWN_CLIENT_DOCKER_MCP_TOOLKIT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "External Client Info",
        "type": "object",
        "x-speakeasy-name-override": "ExternalClientInfo"
      },
      "c1.api.iam.v1.ExternalClientSearchServiceSearchRequest": {
        "description": "The ExternalClientSearchServiceSearchRequest message.",
        "properties": {
          "clientIdUrls": {
            "description": "Exact-match filter on client_id values (e.g., CIMD URLs).\n Returns only grants whose client_id matches one of these values.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pageSize": {
            "description": "The pageSize field.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          },
          "query": {
            "description": "Free-text search on client_name and user display name",
            "type": "string"
          },
          "users": {
            "description": "Filter by specific user IDs",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "wellKnownClients": {
            "description": "Filter by well-known client type (e.g., CLAUDE_CODE, CURSOR, etc.)",
            "items": {
              "enum": [
                "WELL_KNOWN_CLIENT_UNSPECIFIED",
                "WELL_KNOWN_CLIENT_UNKNOWN",
                "WELL_KNOWN_CLIENT_CLAUDE_AI",
                "WELL_KNOWN_CLIENT_CLAUDE_DESKTOP",
                "WELL_KNOWN_CLIENT_CLAUDE_CODE",
                "WELL_KNOWN_CLIENT_MCP_INSPECTOR",
                "WELL_KNOWN_CLIENT_CHATGPT",
                "WELL_KNOWN_CLIENT_VSCODE",
                "WELL_KNOWN_CLIENT_CURSOR",
                "WELL_KNOWN_CLIENT_WINDSURF",
                "WELL_KNOWN_CLIENT_ZED",
                "WELL_KNOWN_CLIENT_JETBRAINS",
                "WELL_KNOWN_CLIENT_DOCKER_MCP_TOOLKIT"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "External Client Search Service Search Request",
        "type": "object",
        "x-speakeasy-name-override": "ExternalClientSearchServiceSearchRequest"
      },
      "c1.api.iam.v1.ExternalClientSearchServiceSearchResponse": {
        "description": "The ExternalClientSearchServiceSearchResponse message.",
        "properties": {
          "list": {
            "description": "Uses ExternalClientInfo with user_id populated for admin views",
            "items": {
              "$ref": "#/components/schemas/c1.api.iam.v1.ExternalClientInfo"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "External Client Search Service Search Response",
        "type": "object",
        "x-speakeasy-name-override": "ExternalClientSearchServiceSearchResponse"
      },
      "c1.api.iam.v1.ExternalOAuthClientInfo": {
        "description": "ExternalOAuthClientInfo is the API representation of an ExternalOAuthClient.",
        "properties": {
          "authMethod": {
            "description": "Token-endpoint authentication method. Populated for static clients.",
            "enum": [
              "EXTERNAL_O_AUTH_CLIENT_AUTH_METHOD_UNSPECIFIED",
              "EXTERNAL_O_AUTH_CLIENT_AUTH_METHOD_CLIENT_SECRET_BASIC",
              "EXTERNAL_O_AUTH_CLIENT_AUTH_METHOD_CLIENT_SECRET_POST",
              "EXTERNAL_O_AUTH_CLIENT_AUTH_METHOD_PRIVATE_KEY_JWT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "clientId": {
            "description": "The clientId field.",
            "type": "string"
          },
          "clientIdType": {
            "description": "The clientIdType field.",
            "enum": [
              "CLIENT_ID_TYPE_UNSPECIFIED",
              "CLIENT_ID_TYPE_DCR",
              "CLIENT_ID_TYPE_METADATA_URL",
              "CLIENT_ID_TYPE_APP",
              "CLIENT_ID_TYPE_STATIC"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "clientIdUrl": {
            "description": "The clientIdUrl field.",
            "type": "string"
          },
          "clientName": {
            "description": "The clientName field.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "redirectUris": {
            "description": "Registered redirect URIs. Populated for static clients; DCR/CIMD derive\n their redirect set from the registration or metadata document.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "softwareId": {
            "description": "DCR software_id from the client metadata document (empty for CIMD clients).",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "verifiedDomain": {
            "description": "Verified domain from client_id_url (e.g. \"cursor.com\"). Empty for DCR clients.",
            "type": "string"
          },
          "wellKnownClient": {
            "description": "The wellKnownClient field.",
            "enum": [
              "WELL_KNOWN_CLIENT_UNSPECIFIED",
              "WELL_KNOWN_CLIENT_UNKNOWN",
              "WELL_KNOWN_CLIENT_CLAUDE_AI",
              "WELL_KNOWN_CLIENT_CLAUDE_DESKTOP",
              "WELL_KNOWN_CLIENT_CLAUDE_CODE",
              "WELL_KNOWN_CLIENT_MCP_INSPECTOR",
              "WELL_KNOWN_CLIENT_CHATGPT",
              "WELL_KNOWN_CLIENT_VSCODE",
              "WELL_KNOWN_CLIENT_CURSOR",
              "WELL_KNOWN_CLIENT_WINDSURF",
              "WELL_KNOWN_CLIENT_ZED",
              "WELL_KNOWN_CLIENT_JETBRAINS",
              "WELL_KNOWN_CLIENT_DOCKER_MCP_TOOLKIT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "External O Auth Client Info",
        "type": "object",
        "x-speakeasy-name-override": "ExternalOAuthClientInfo"
      },
      "c1.api.iam.v1.ExternalOAuthClientServiceCreateRequest": {
        "description": "The ExternalOAuthClientServiceCreateRequest message.",
        "properties": {
          "authMethod": {
            "description": "The authMethod field.",
            "enum": [
              "EXTERNAL_O_AUTH_CLIENT_AUTH_METHOD_UNSPECIFIED",
              "EXTERNAL_O_AUTH_CLIENT_AUTH_METHOD_CLIENT_SECRET_BASIC",
              "EXTERNAL_O_AUTH_CLIENT_AUTH_METHOD_CLIENT_SECRET_POST",
              "EXTERNAL_O_AUTH_CLIENT_AUTH_METHOD_PRIVATE_KEY_JWT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "clientName": {
            "description": "Operator-facing name shown on the consent screen and in the admin list.",
            "type": "string"
          },
          "publicJwks": {
            "description": "RFC 7517 JWK Set. Required when auth_method is PRIVATE_KEY_JWT and rejected\n otherwise.",
            "type": "string"
          },
          "redirectUris": {
            "description": "Exact redirect URIs the client may be sent to. Microsoft's fixed literal,\n for example, is registered here.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "External O Auth Client Service Create Request",
        "type": "object",
        "x-speakeasy-name-override": "ExternalOAuthClientServiceCreateRequest"
      },
      "c1.api.iam.v1.ExternalOAuthClientServiceCreateResponse": {
        "description": "The ExternalOAuthClientServiceCreateResponse message.",
        "properties": {
          "client": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.iam.v1.ExternalOAuthClientInfo"
              },
              {
                "type": "null"
              }
            ]
          },
          "clientSecret": {
            "description": "Revealed once. Empty for PRIVATE_KEY_JWT.",
            "type": "string"
          }
        },
        "title": "External O Auth Client Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "ExternalOAuthClientServiceCreateResponse"
      },
      "c1.api.iam.v1.ExternalOAuthClientServiceRevokeRequest": {
        "description": "The ExternalOAuthClientServiceRevokeRequest message.",
        "properties": {
          "clientId": {
            "description": "The clientId field.",
            "type": "string"
          }
        },
        "title": "External O Auth Client Service Revoke Request",
        "type": "object",
        "x-speakeasy-name-override": "ExternalOAuthClientServiceRevokeRequest"
      },
      "c1.api.iam.v1.ExternalOAuthClientServiceRevokeResponse": {
        "description": "The ExternalOAuthClientServiceRevokeResponse message.",
        "properties": {
          "complete": {
            "description": "False when grants remain to retire. The client is already revoked; call\n Revoke again to finish the sweep.",
            "type": "boolean"
          }
        },
        "title": "External O Auth Client Service Revoke Response",
        "type": "object",
        "x-speakeasy-name-override": "ExternalOAuthClientServiceRevokeResponse"
      },
      "c1.api.iam.v1.ExternalOAuthClientServiceRotateSecretRequest": {
        "description": "The ExternalOAuthClientServiceRotateSecretRequest message.",
        "properties": {
          "clientId": {
            "description": "The clientId field.",
            "type": "string"
          }
        },
        "title": "External O Auth Client Service Rotate Secret Request",
        "type": "object",
        "x-speakeasy-name-override": "ExternalOAuthClientServiceRotateSecretRequest"
      },
      "c1.api.iam.v1.ExternalOAuthClientServiceRotateSecretResponse": {
        "description": "The ExternalOAuthClientServiceRotateSecretResponse message.",
        "properties": {
          "clientSecret": {
            "description": "Revealed once, like Create.",
            "type": "string"
          }
        },
        "title": "External O Auth Client Service Rotate Secret Response",
        "type": "object",
        "x-speakeasy-name-override": "ExternalOAuthClientServiceRotateSecretResponse"
      },
      "c1.api.iam.v1.ExternalOAuthClientServiceUpdateRequest": {
        "description": "The ExternalOAuthClientServiceUpdateRequest message.",
        "properties": {
          "clientId": {
            "description": "The clientId field.",
            "type": "string"
          },
          "clientName": {
            "description": "Replacement display name shown on the consent screen and in the admin list.",
            "type": "string"
          },
          "publicJwks": {
            "description": "Replacement RFC 7517 JWK Set. Only accepted for a client that already\n authenticates with private_key_jwt.",
            "type": "string"
          },
          "redirectUris": {
            "description": "Replacement exact redirect set. A client always keeps at least one redirect\n URI.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "External O Auth Client Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "ExternalOAuthClientServiceUpdateRequest"
      },
      "c1.api.iam.v1.ExternalOAuthClientServiceUpdateResponse": {
        "description": "The ExternalOAuthClientServiceUpdateResponse message.",
        "properties": {
          "client": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.iam.v1.ExternalOAuthClientInfo"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "External O Auth Client Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "ExternalOAuthClientServiceUpdateResponse"
      },
      "c1.api.iam.v1.GetRolesResponse": {
        "description": "The GetRolesResponse message contains the retrieved role.",
        "properties": {
          "role": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.iam.v1.Role"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get Roles Response",
        "type": "object",
        "x-speakeasy-name-override": "GetRolesResponse"
      },
      "c1.api.iam.v1.ListRolesResponse": {
        "description": "The ListRolesResponse message contains a list of results and a nextPageToken if applicable.",
        "properties": {
          "list": {
            "description": "The list of results containing up to X results, where X is the page size defined in the request.",
            "items": {
              "$ref": "#/components/schemas/c1.api.iam.v1.Role"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken is shown for the next page if the number of results is larger than the max page size.\n The server returns one page of results and the nextPageToken until all results are retreived.\n To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page.",
            "type": "string"
          }
        },
        "title": "List Roles Response",
        "type": "object",
        "x-speakeasy-name-override": "ListRolesResponse"
      },
      "c1.api.iam.v1.ModelAPIKey": {
        "description": "ModelAPIKey is returned by Get/List operations (metadata only, no secret).\n\nThis message contains a oneof named credential_format. Only a single field of the following list may be set at a time:\n  - anthropic\n",
        "properties": {
          "anthropic": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.iam.v1.AnthropicCredentialFormat"
              },
              {
                "type": "null"
              }
            ]
          },
          "appId": {
            "description": "The app this key is bound to.",
            "readOnly": true,
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "displayName": {
            "description": "The human-readable display name for this key.",
            "readOnly": true,
            "type": "string"
          },
          "edgeId": {
            "description": "The Edge inference route this key is bound to.",
            "readOnly": true,
            "type": "string"
          },
          "expiresTime": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "The unique ID of the model API key.",
            "readOnly": true,
            "type": "string"
          },
          "lastUsedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "revokedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "scopeCeiling": {
            "description": "The maximum scopes this key may use (intersection with live grants).",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Model Api Key",
        "type": "object",
        "x-speakeasy-name-override": "ModelAPIKey"
      },
      "c1.api.iam.v1.ModelAPIKeyServiceCreateRequest": {
        "description": "The ModelAPIKeyServiceCreateRequest message.\n\nThis message contains a oneof named credential_format. Only a single field of the following list may be set at a time:\n  - anthropic\n",
        "properties": {
          "anthropic": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.iam.v1.AnthropicCredentialFormat"
              },
              {
                "type": "null"
              }
            ]
          },
          "appId": {
            "description": "The app this key will access.",
            "type": "string"
          },
          "displayName": {
            "description": "Human-readable name for this key.",
            "type": "string"
          },
          "edgeId": {
            "description": "The Edge inference route for API calls with this key.",
            "type": "string"
          },
          "expiresTime": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "scopeCeiling": {
            "description": "Maximum scopes this key may use (must be subset of caller's grants and catalog).",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Model Api Key Service Create Request",
        "type": "object",
        "x-speakeasy-name-override": "ModelAPIKeyServiceCreateRequest"
      },
      "c1.api.iam.v1.ModelAPIKeyServiceCreateResponse": {
        "description": "The ModelAPIKeyServiceCreateResponse message.",
        "properties": {
          "bearerToken": {
            "description": "The complete Bearer token for LLM API calls (only returned on Create, one-time reveal).\n Format: c1llm_{27-char-id}_{base64url-secret}\n This is the full authentication credential; store it securely and do not request it again.",
            "type": "string"
          },
          "inferenceBaseUrl": {
            "description": "The inference origin clients use as the API base URL. The key binding selects the Edge.",
            "type": "string"
          },
          "key": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.iam.v1.ModelAPIKey"
              },
              {
                "type": "null"
              }
            ]
          },
          "resourceUri": {
            "description": "The OAuth resource indicator for the Edge bound to this key.",
            "type": "string"
          }
        },
        "title": "Model Api Key Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "ModelAPIKeyServiceCreateResponse"
      },
      "c1.api.iam.v1.ModelAPIKeyServiceGetResponse": {
        "description": "The ModelAPIKeyServiceGetResponse message.",
        "properties": {
          "key": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.iam.v1.ModelAPIKey"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Model Api Key Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "ModelAPIKeyServiceGetResponse"
      },
      "c1.api.iam.v1.ModelAPIKeyServiceListResponse": {
        "description": "The ModelAPIKeyServiceListResponse message.",
        "properties": {
          "keys": {
            "description": "The requested model API keys (metadata only, no secrets).",
            "items": {
              "$ref": "#/components/schemas/c1.api.iam.v1.ModelAPIKey"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Pagination token for the next page of results.",
            "type": "string"
          }
        },
        "title": "Model Api Key Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "ModelAPIKeyServiceListResponse"
      },
      "c1.api.iam.v1.ModelAPIKeyServiceRevokeRequestInput": {
        "description": "The ModelAPIKeyServiceRevokeRequest message.",
        "title": "Model Api Key Service Revoke Request",
        "type": "object",
        "x-speakeasy-name-override": "ModelAPIKeyServiceRevokeRequest"
      },
      "c1.api.iam.v1.ModelAPIKeyServiceRevokeResponse": {
        "description": "The ModelAPIKeyServiceRevokeResponse message.",
        "title": "Model Api Key Service Revoke Response",
        "type": "object",
        "x-speakeasy-name-override": "ModelAPIKeyServiceRevokeResponse"
      },
      "c1.api.iam.v1.PersonalClient": {
        "description": "The PersonalClient message contains information about a presonal client credential.",
        "properties": {
          "allowSourceCidr": {
            "description": "If set, only allows the CIDRs in the array to use the credential.\n Accepts IPv4 (e.g. 10.0.0.0/24) or IPv6 (e.g. 2001:db8::/32) CIDRs.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "clientId": {
            "description": "The clientID of the credential.",
            "readOnly": true,
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "displayName": {
            "description": "The display name of the personal client credential.",
            "type": "string"
          },
          "expiresTime": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "The unique ID of the personal client credential.",
            "readOnly": true,
            "type": "string"
          },
          "lastUsedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "scopedRoles": {
            "description": "scoped_roles provides a list of IAM Roles\n that this OAuth2 Client's API permissions\n are reduced to. The permissions granted to OAuth2 Client\n are AND'ed against the owning User's own permissions.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "userId": {
            "description": "The ID of the user that this credential is created for.",
            "readOnly": true,
            "type": "string"
          }
        },
        "title": "Personal Client",
        "type": "object",
        "x-speakeasy-name-override": "PersonalClient"
      },
      "c1.api.iam.v1.PersonalClientSearchServiceSearchRequest": {
        "description": "The PersonalClientSearchServiceSearchRequest message.",
        "properties": {
          "pageSize": {
            "description": "The maximum number of results to return per page.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "A pagination token returned from a previous Search call.",
            "type": "string"
          },
          "query": {
            "description": "A text query to filter personal clients by display name.",
            "type": "string"
          },
          "users": {
            "description": "Filter results to personal clients owned by the specified users.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Personal Client Search Service Search Request",
        "type": "object",
        "x-speakeasy-name-override": "PersonalClientSearchServiceSearchRequest"
      },
      "c1.api.iam.v1.PersonalClientSearchServiceSearchResponse": {
        "description": "The PersonalClientSearchServiceSearchResponse message.",
        "properties": {
          "list": {
            "description": "The list of personal client credentials matching the search criteria.",
            "items": {
              "$ref": "#/components/schemas/c1.api.iam.v1.PersonalClient"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "A token to retrieve the next page of results, or empty if there are no more results.",
            "type": "string"
          }
        },
        "title": "Personal Client Search Service Search Response",
        "type": "object",
        "x-speakeasy-name-override": "PersonalClientSearchServiceSearchResponse"
      },
      "c1.api.iam.v1.PersonalClientServiceCreateRequest": {
        "description": "The PersonalClientServiceCreateRequest message contains the fields for creating a new personal client.",
        "properties": {
          "allowSourceCidr": {
            "description": "A list of CIDRs to restrict this credential to.\n Accepts IPv4 (e.g. 10.0.0.0/24) or IPv6 (e.g. 2001:db8::/32) CIDRs.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "displayName": {
            "description": "The display name for the new personal client.",
            "type": "string"
          },
          "expires": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "scopedRoles": {
            "description": "The list of roles to restrict the credential to.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Personal Client Service Create Request",
        "type": "object",
        "x-speakeasy-name-override": "PersonalClientServiceCreateRequest"
      },
      "c1.api.iam.v1.PersonalClientServiceCreateResponse": {
        "description": "The PersonalClientServiceCreateResponse message contains the created personal client and client secret.",
        "properties": {
          "client": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.iam.v1.PersonalClient"
              },
              {
                "type": "null"
              }
            ]
          },
          "clientSecret": {
            "description": "The client secret that corresponds to the personal client. Make sure to save this, because it cannot be returned or queried again.",
            "type": "string"
          }
        },
        "title": "Personal Client Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "PersonalClientServiceCreateResponse"
      },
      "c1.api.iam.v1.PersonalClientServiceDeleteRequestInput": {
        "description": "The PersonalClientServiceDeleteRequest message.",
        "title": "Personal Client Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "PersonalClientServiceDeleteRequest"
      },
      "c1.api.iam.v1.PersonalClientServiceDeleteResponse": {
        "description": "The PersonalClientServiceDeleteResponse message.",
        "title": "Personal Client Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "PersonalClientServiceDeleteResponse"
      },
      "c1.api.iam.v1.PersonalClientServiceGetResponse": {
        "description": "The PersonalClientServiceGetResponse message.",
        "properties": {
          "client": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.iam.v1.PersonalClient"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Personal Client Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "PersonalClientServiceGetResponse"
      },
      "c1.api.iam.v1.PersonalClientServiceListResponse": {
        "description": "The PersonalClientServiceListResponse message.",
        "properties": {
          "list": {
            "description": "The list of personal client credentials owned by the calling user.",
            "items": {
              "$ref": "#/components/schemas/c1.api.iam.v1.PersonalClient"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "A token to retrieve the next page of results, or empty if there are no more results.",
            "type": "string"
          }
        },
        "title": "Personal Client Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "PersonalClientServiceListResponse"
      },
      "c1.api.iam.v1.PersonalClientServiceUpdateRequestInput": {
        "description": "The PersonalClientServiceUpdateRequest message.",
        "properties": {
          "client": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.iam.v1.PersonalClient"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Personal Client Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "PersonalClientServiceUpdateRequest"
      },
      "c1.api.iam.v1.PersonalClientServiceUpdateResponse": {
        "description": "The PersonalClientServiceUpdateResponse message.",
        "properties": {
          "client": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.iam.v1.PersonalClient"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Personal Client Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "PersonalClientServiceUpdateResponse"
      },
      "c1.api.iam.v1.PersonalDevice": {
        "description": "PersonalDevice is one physical device with its app clients. The device\n identity is a stable thumbprint of the device's root signing key; the root key\n never authenticates an app — each client uses its own key.",
        "properties": {
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "deviceId": {
            "description": "The stable device identity: a base64url-encoded SHA-256 thumbprint of the\n device's root public signing key.",
            "readOnly": true,
            "type": "string"
          },
          "deviceOs": {
            "description": "The device operating system, e.g. \"macos-14.5\".",
            "readOnly": true,
            "type": "string"
          },
          "deviceSurface": {
            "description": "The device surface, e.g. \"macos-desktop\".",
            "readOnly": true,
            "type": "string"
          },
          "displayName": {
            "description": "The human-friendly device label, defaulted from the first app's name at\n registration. Devices are listed sorted by this name. Mutable via\n UpdateDevice.",
            "type": "string"
          },
          "status": {
            "description": "The device's lifecycle status. Revoked devices are retained for audit and are\n returned by Search only when the status filter requests them.",
            "enum": [
              "PERSONAL_DEVICE_STATUS_UNSPECIFIED",
              "PERSONAL_DEVICE_STATUS_ACTIVE",
              "PERSONAL_DEVICE_STATUS_REVOKED"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "userId": {
            "description": "The ID of the user this device is bound to (the approving user).",
            "readOnly": true,
            "type": "string"
          }
        },
        "title": "Personal Device",
        "type": "object",
        "x-speakeasy-name-override": "PersonalDevice"
      },
      "c1.api.iam.v1.PersonalDeviceClient": {
        "description": "PersonalDeviceClient is a single app client on a device. The client\n authenticates with its own asymmetric key; there is no client secret.",
        "properties": {
          "clientId": {
            "description": "The full client_id of the device credential.",
            "readOnly": true,
            "type": "string"
          },
          "clientName": {
            "description": "The human-friendly client name from its registration metadata.",
            "readOnly": true,
            "type": "string"
          },
          "consumerKeyId": {
            "description": "The stable identity of this client's per-app key.",
            "readOnly": true,
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "deviceOs": {
            "description": "The device operating system captured for this client, e.g. \"macos-14.5\".",
            "readOnly": true,
            "type": "string"
          },
          "deviceSurface": {
            "description": "The device surface captured for this client, e.g. \"macos-desktop\".",
            "readOnly": true,
            "type": "string"
          },
          "displayName": {
            "description": "The display name of the device credential.",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "description": "The unique ID of the device client (the local part of client_id).",
            "readOnly": true,
            "type": "string"
          },
          "lastUsedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "softwareId": {
            "description": "An identifier for the client software, from its registration metadata.",
            "readOnly": true,
            "type": "string"
          },
          "softwareVersion": {
            "description": "The version of the client software, from its registration metadata.",
            "readOnly": true,
            "type": "string"
          }
        },
        "title": "Personal Device Client",
        "type": "object",
        "x-speakeasy-name-override": "PersonalDeviceClient"
      },
      "c1.api.iam.v1.PersonalDeviceServiceGetDeviceResponse": {
        "description": "The PersonalDeviceServiceGetDeviceResponse message.",
        "properties": {
          "device": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.iam.v1.PersonalDevice"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Personal Device Service Get Device Response",
        "type": "object",
        "x-speakeasy-name-override": "PersonalDeviceServiceGetDeviceResponse"
      },
      "c1.api.iam.v1.PersonalDeviceServiceListDeviceClientsResponse": {
        "description": "The PersonalDeviceServiceListDeviceClientsResponse message.",
        "properties": {
          "clients": {
            "description": "The app clients registered on the device.",
            "items": {
              "$ref": "#/components/schemas/c1.api.iam.v1.PersonalDeviceClient"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "A token to retrieve the next page of results, or empty if there are no more.",
            "type": "string"
          }
        },
        "title": "Personal Device Service List Device Clients Response",
        "type": "object",
        "x-speakeasy-name-override": "PersonalDeviceServiceListDeviceClientsResponse"
      },
      "c1.api.iam.v1.PersonalDeviceServiceRevokeDeviceClientRequestInput": {
        "description": "The PersonalDeviceServiceRevokeDeviceClientRequest message.",
        "title": "Personal Device Service Revoke Device Client Request",
        "type": "object",
        "x-speakeasy-name-override": "PersonalDeviceServiceRevokeDeviceClientRequest"
      },
      "c1.api.iam.v1.PersonalDeviceServiceRevokeDeviceClientResponse": {
        "description": "The PersonalDeviceServiceRevokeDeviceClientResponse message.",
        "title": "Personal Device Service Revoke Device Client Response",
        "type": "object",
        "x-speakeasy-name-override": "PersonalDeviceServiceRevokeDeviceClientResponse"
      },
      "c1.api.iam.v1.PersonalDeviceServiceRevokeDeviceRequestInput": {
        "description": "The PersonalDeviceServiceRevokeDeviceRequest message.",
        "title": "Personal Device Service Revoke Device Request",
        "type": "object",
        "x-speakeasy-name-override": "PersonalDeviceServiceRevokeDeviceRequest"
      },
      "c1.api.iam.v1.PersonalDeviceServiceRevokeDeviceResponse": {
        "description": "The PersonalDeviceServiceRevokeDeviceResponse message.",
        "title": "Personal Device Service Revoke Device Response",
        "type": "object",
        "x-speakeasy-name-override": "PersonalDeviceServiceRevokeDeviceResponse"
      },
      "c1.api.iam.v1.PersonalDeviceServiceSearchRequest": {
        "description": "The PersonalDeviceServiceSearchRequest message.",
        "properties": {
          "pageSize": {
            "description": "The maximum number of results to return per page.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "A pagination token returned from a previous Search call.",
            "type": "string"
          },
          "query": {
            "description": "An optional case-insensitive filter on the device display name.",
            "type": "string"
          },
          "statusFilter": {
            "description": "Which device statuses to return. Defaults to active devices only.",
            "enum": [
              "PERSONAL_DEVICE_STATUS_FILTER_UNSPECIFIED",
              "PERSONAL_DEVICE_STATUS_FILTER_ACTIVE",
              "PERSONAL_DEVICE_STATUS_FILTER_REVOKED",
              "PERSONAL_DEVICE_STATUS_FILTER_ALL"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Personal Device Service Search Request",
        "type": "object",
        "x-speakeasy-name-override": "PersonalDeviceServiceSearchRequest"
      },
      "c1.api.iam.v1.PersonalDeviceServiceSearchResponse": {
        "description": "The PersonalDeviceServiceSearchResponse message.",
        "properties": {
          "list": {
            "description": "The devices the calling user has registered, matching the search criteria.",
            "items": {
              "$ref": "#/components/schemas/c1.api.iam.v1.PersonalDevice"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "A token to retrieve the next page of results, or empty if there are no more.",
            "type": "string"
          }
        },
        "title": "Personal Device Service Search Response",
        "type": "object",
        "x-speakeasy-name-override": "PersonalDeviceServiceSearchResponse"
      },
      "c1.api.iam.v1.PersonalDeviceServiceUpdateDeviceRequestInput": {
        "description": "The PersonalDeviceServiceUpdateDeviceRequest message.",
        "properties": {
          "device": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.iam.v1.PersonalDevice"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Personal Device Service Update Device Request",
        "type": "object",
        "x-speakeasy-name-override": "PersonalDeviceServiceUpdateDeviceRequest"
      },
      "c1.api.iam.v1.PersonalDeviceServiceUpdateDeviceResponse": {
        "description": "The PersonalDeviceServiceUpdateDeviceResponse message.",
        "properties": {
          "device": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.iam.v1.PersonalDevice"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Personal Device Service Update Device Response",
        "type": "object",
        "x-speakeasy-name-override": "PersonalDeviceServiceUpdateDeviceResponse"
      },
      "c1.api.iam.v1.Role": {
        "description": "Role is a role that can be assigned to a user in ConductorOne.",
        "properties": {
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "displayName": {
            "description": "The display name of the role.",
            "type": "string"
          },
          "id": {
            "description": "The id of the role.",
            "readOnly": true,
            "type": "string"
          },
          "name": {
            "description": "The internal name of the role.",
            "readOnly": true,
            "type": "string"
          },
          "permissions": {
            "description": "The list of permissions this role has.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "serviceRoles": {
            "description": "The list of serviceRoles that this role has.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "systemApiOnly": {
            "description": "This Role is intended for API keys usage only, and the user interface may not function as expected.",
            "readOnly": true,
            "type": "boolean"
          },
          "systemBuiltin": {
            "description": "The system builtin field. If this field is set, the role is not editable.",
            "readOnly": true,
            "type": "boolean"
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Role",
        "type": "object",
        "x-speakeasy-name-override": "Role"
      },
      "c1.api.iam.v1.TunnelAppliance": {
        "description": "TunnelAppliance is the live state of the customer-side appliance for one\n bridge.",
        "properties": {
          "announcedServiceCount": {
            "description": "Number of services the appliance is currently announcing.",
            "format": "uint32",
            "type": "integer"
          },
          "lastSeenAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "links": {
            "description": "Wormhole relays currently holding a Link for this bridge. Typically of\n length 1.",
            "items": {
              "$ref": "#/components/schemas/c1.api.iam.v1.TunnelApplianceLink"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "status": {
            "description": "The status field.",
            "enum": [
              "TUNNEL_APPLIANCE_STATUS_UNSPECIFIED",
              "TUNNEL_APPLIANCE_STATUS_CONNECTED",
              "TUNNEL_APPLIANCE_STATUS_DISCONNECTED",
              "TUNNEL_APPLIANCE_STATUS_NEVER_CONNECTED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Tunnel Appliance",
        "type": "object",
        "x-speakeasy-name-override": "TunnelAppliance"
      },
      "c1.api.iam.v1.TunnelApplianceLink": {
        "description": "The TunnelApplianceLink message.",
        "properties": {
          "avgRtt": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "leaseExpiresAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "relayAddress": {
            "description": "Public address (host:port) of the relay server, suitable for use in\n client-side connection strings.",
            "type": "string"
          },
          "relayId": {
            "description": "Identifier of the wormhole relay server holding this Link.",
            "type": "string"
          }
        },
        "title": "Tunnel Appliance Link",
        "type": "object",
        "x-speakeasy-name-override": "TunnelApplianceLink"
      },
      "c1.api.iam.v1.TunnelBridge": {
        "description": "TunnelBridge is the API view of a bridge — the customer-facing entity\n for managing a wormhole tunnel appliance.",
        "properties": {
          "appliance": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.iam.v1.TunnelAppliance"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "The description field.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "id": {
            "description": "The id field.",
            "readOnly": true,
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Tunnel Bridge",
        "type": "object",
        "x-speakeasy-name-override": "TunnelBridge"
      },
      "c1.api.iam.v1.TunnelCredential": {
        "description": "TunnelCredential is the API view of one OAuth credential within a bridge.\n The plaintext client_secret is only populated on the CreateBridgeCredential\n response.",
        "properties": {
          "bridgeId": {
            "description": "The bridge this credential belongs to.",
            "readOnly": true,
            "type": "string"
          },
          "clientId": {
            "description": "The client_id (full ${id}@${tenant_domain}/tcc form).",
            "readOnly": true,
            "type": "string"
          },
          "clientSecret": {
            "description": "The plaintext client_secret. ONLY populated on the\n CreateBridgeCredential response; empty on Get / List.",
            "readOnly": true,
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "credentialStatus": {
            "description": "Lifecycle status of this credential record.",
            "enum": [
              "TUNNEL_CREDENTIAL_STATUS_UNSPECIFIED",
              "TUNNEL_CREDENTIAL_STATUS_ACTIVE",
              "TUNNEL_CREDENTIAL_STATUS_REVOKED",
              "TUNNEL_CREDENTIAL_STATUS_EXPIRED"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "expiresTime": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "The id field.",
            "readOnly": true,
            "type": "string"
          },
          "lastUsedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "revokedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Tunnel Credential",
        "type": "object",
        "x-speakeasy-name-override": "TunnelCredential"
      },
      "c1.api.iam.v1.TunnelCredentialsServiceCreateBridgeCredentialRequestInput": {
        "description": "The TunnelCredentialsServiceCreateBridgeCredentialRequest message.",
        "title": "Tunnel Credentials Service Create Bridge Credential Request",
        "type": "object",
        "x-speakeasy-name-override": "TunnelCredentialsServiceCreateBridgeCredentialRequest"
      },
      "c1.api.iam.v1.TunnelCredentialsServiceCreateBridgeCredentialResponse": {
        "description": "The TunnelCredentialsServiceCreateBridgeCredentialResponse message.",
        "properties": {
          "credential": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.iam.v1.TunnelCredential"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Tunnel Credentials Service Create Bridge Credential Response",
        "type": "object",
        "x-speakeasy-name-override": "TunnelCredentialsServiceCreateBridgeCredentialResponse"
      },
      "c1.api.iam.v1.TunnelCredentialsServiceCreateBridgeRequest": {
        "description": "The TunnelCredentialsServiceCreateBridgeRequest message.",
        "properties": {
          "description": {
            "description": "The description field.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          }
        },
        "title": "Tunnel Credentials Service Create Bridge Request",
        "type": "object",
        "x-speakeasy-name-override": "TunnelCredentialsServiceCreateBridgeRequest"
      },
      "c1.api.iam.v1.TunnelCredentialsServiceCreateBridgeResponse": {
        "description": "The TunnelCredentialsServiceCreateBridgeResponse message.",
        "properties": {
          "bridge": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.iam.v1.TunnelBridge"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Tunnel Credentials Service Create Bridge Response",
        "type": "object",
        "x-speakeasy-name-override": "TunnelCredentialsServiceCreateBridgeResponse"
      },
      "c1.api.iam.v1.TunnelCredentialsServiceDeleteBridgeRequestInput": {
        "description": "The TunnelCredentialsServiceDeleteBridgeRequest message.",
        "title": "Tunnel Credentials Service Delete Bridge Request",
        "type": "object",
        "x-speakeasy-name-override": "TunnelCredentialsServiceDeleteBridgeRequest"
      },
      "c1.api.iam.v1.TunnelCredentialsServiceDeleteBridgeResponse": {
        "description": "Empty response body. Status code indicates success.",
        "title": "Tunnel Credentials Service Delete Bridge Response",
        "type": "object",
        "x-speakeasy-name-override": "TunnelCredentialsServiceDeleteBridgeResponse"
      },
      "c1.api.iam.v1.TunnelCredentialsServiceGetBridgeResponse": {
        "description": "The TunnelCredentialsServiceGetBridgeResponse message.",
        "properties": {
          "bridge": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.iam.v1.TunnelBridge"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Tunnel Credentials Service Get Bridge Response",
        "type": "object",
        "x-speakeasy-name-override": "TunnelCredentialsServiceGetBridgeResponse"
      },
      "c1.api.iam.v1.TunnelCredentialsServiceListBridgeAnnouncedServicesResponse": {
        "description": "The TunnelCredentialsServiceListBridgeAnnouncedServicesResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.iam.v1.AnnouncedTunnelService"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Tunnel Credentials Service List Bridge Announced Services Response",
        "type": "object",
        "x-speakeasy-name-override": "TunnelCredentialsServiceListBridgeAnnouncedServicesResponse"
      },
      "c1.api.iam.v1.TunnelCredentialsServiceListBridgeCredentialsResponse": {
        "description": "The TunnelCredentialsServiceListBridgeCredentialsResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.iam.v1.TunnelCredential"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Tunnel Credentials Service List Bridge Credentials Response",
        "type": "object",
        "x-speakeasy-name-override": "TunnelCredentialsServiceListBridgeCredentialsResponse"
      },
      "c1.api.iam.v1.TunnelCredentialsServiceListBridgesResponse": {
        "description": "The TunnelCredentialsServiceListBridgesResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.iam.v1.TunnelBridge"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Tunnel Credentials Service List Bridges Response",
        "type": "object",
        "x-speakeasy-name-override": "TunnelCredentialsServiceListBridgesResponse"
      },
      "c1.api.iam.v1.TunnelCredentialsServiceRevokeBridgeCredentialRequestInput": {
        "description": "The TunnelCredentialsServiceRevokeBridgeCredentialRequest message.",
        "title": "Tunnel Credentials Service Revoke Bridge Credential Request",
        "type": "object",
        "x-speakeasy-name-override": "TunnelCredentialsServiceRevokeBridgeCredentialRequest"
      },
      "c1.api.iam.v1.TunnelCredentialsServiceRevokeBridgeCredentialResponse": {
        "description": "Empty response body. Status code indicates success.",
        "title": "Tunnel Credentials Service Revoke Bridge Credential Response",
        "type": "object",
        "x-speakeasy-name-override": "TunnelCredentialsServiceRevokeBridgeCredentialResponse"
      },
      "c1.api.iam.v1.TunnelCredentialsServiceUpdateBridgeRequestInput": {
        "description": "The TunnelCredentialsServiceUpdateBridgeRequest message.",
        "properties": {
          "description": {
            "description": "New description. Applied only when \"description\" is in update_mask.\n Empty clears the description.",
            "type": "string"
          },
          "displayName": {
            "description": "New display name. Applied only when \"display_name\" is in update_mask.\n Must be non-empty when applied.",
            "type": "string"
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Tunnel Credentials Service Update Bridge Request",
        "type": "object",
        "x-speakeasy-name-override": "TunnelCredentialsServiceUpdateBridgeRequest"
      },
      "c1.api.iam.v1.TunnelCredentialsServiceUpdateBridgeResponse": {
        "description": "The TunnelCredentialsServiceUpdateBridgeResponse message.",
        "properties": {
          "bridge": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.iam.v1.TunnelBridge"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Tunnel Credentials Service Update Bridge Response",
        "type": "object",
        "x-speakeasy-name-override": "TunnelCredentialsServiceUpdateBridgeResponse"
      },
      "c1.api.iam.v1.UpdateRoleRequestInput": {
        "description": "The UpdateRoleRequest message contains the role to update and the update mask.",
        "properties": {
          "role": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.iam.v1.Role"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Update Role Request",
        "type": "object",
        "x-speakeasy-name-override": "UpdateRoleRequest"
      },
      "c1.api.iam.v1.UpdateRolesResponse": {
        "description": "UpdateRolesResponse is the response message containing the updated role.",
        "properties": {
          "role": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.iam.v1.Role"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Update Roles Response",
        "type": "object",
        "x-speakeasy-name-override": "UpdateRolesResponse"
      },
      "c1.api.identity_platform.v1.IdentityPolicyTenantDefaults": {
        "description": "IdentityPolicyTenantDefaults is the tenant-wide set of default identity\n policies applied when no more specific policy matches a user.",
        "properties": {
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "credentialInventoryPolicyId": {
            "description": "The default credential inventory policy (which credential types users may enroll).",
            "type": "string"
          },
          "enrollmentRequirementId": {
            "description": "The default enrollment requirement.",
            "type": "string"
          },
          "recoveryPolicyId": {
            "description": "The default recovery policy.",
            "type": "string"
          },
          "resourcePolicyId": {
            "description": "The default resource policy.",
            "type": "string"
          },
          "sessionPolicyId": {
            "description": "The default session policy.",
            "type": "string"
          },
          "signInPolicyId": {
            "description": "The default sign-in policy.",
            "type": "string"
          },
          "universalPromiseIds": {
            "description": "Tenant-wide promises every user must satisfy (e.g. terms-of-service\n acceptance).",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Identity Policy Tenant Defaults",
        "type": "object",
        "x-speakeasy-entity": "IdentityPolicyTenantDefaults",
        "x-speakeasy-name-override": "IdentityPolicyTenantDefaults"
      },
      "c1.api.identity_platform.v1.IdentityPolicyTenantDefaultsServiceGetResponse": {
        "description": "The IdentityPolicyTenantDefaultsServiceGetResponse message.",
        "properties": {
          "defaults": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.identity_platform.v1.IdentityPolicyTenantDefaults"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Identity Policy Tenant Defaults Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "IdentityPolicyTenantDefaultsServiceGetResponse"
      },
      "c1.api.identity_platform.v1.IdentityPolicyTenantDefaultsServiceUpdateRequest": {
        "description": "The IdentityPolicyTenantDefaultsServiceUpdateRequest message.",
        "properties": {
          "defaults": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.identity_platform.v1.IdentityPolicyTenantDefaults"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Identity Policy Tenant Defaults Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "IdentityPolicyTenantDefaultsServiceUpdateRequest"
      },
      "c1.api.identity_platform.v1.IdentityPolicyTenantDefaultsServiceUpdateResponse": {
        "description": "The IdentityPolicyTenantDefaultsServiceUpdateResponse message.",
        "properties": {
          "defaults": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.identity_platform.v1.IdentityPolicyTenantDefaults"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Identity Policy Tenant Defaults Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "IdentityPolicyTenantDefaultsServiceUpdateResponse"
      },
      "c1.api.integration.connector.v1.CheckboxField": {
        "description": "The CheckboxField message.",
        "properties": {
          "checked": {
            "description": "The checked field.",
            "type": "boolean"
          }
        },
        "title": "Checkbox Field",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorCheckboxField"
      },
      "c1.api.integration.connector.v1.ConfigSchema": {
        "description": "The ConfigSchema message.",
        "properties": {
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "fieldGroups": {
            "description": "Optional. Metadata for displaying fields in the UI.",
            "items": {
              "$ref": "#/components/schemas/c1.api.integration.connector.v1.FieldGroup"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "fields": {
            "description": "The fields field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.integration.connector.v1.Field"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "helpUrl": {
            "description": "The helpUrl field.",
            "type": "string"
          },
          "iconUrl": {
            "deprecated": true,
            "description": "The iconUrl field.",
            "type": "string"
          },
          "isOauth2": {
            "description": "The isOauth2 field.",
            "type": "boolean"
          },
          "requiresExternalConnector": {
            "description": "The requiresExternalConnector field.",
            "type": "boolean"
          },
          "supportsExternalResources": {
            "description": "The supportsExternalResources field.",
            "type": "boolean"
          }
        },
        "title": "Config Schema",
        "type": "object",
        "x-speakeasy-name-override": "ConfigSchema"
      },
      "c1.api.integration.connector.v1.ConnectorCatalogServiceConfigurationSchemaRequest": {
        "description": "ConnectorCatalogServiceConfigurationSchemaRequest is the request for retrieving a connector's configuration schema.",
        "properties": {
          "appId": {
            "description": "The ID of the app associated with the connector. Optional.",
            "type": "string"
          },
          "catalogId": {
            "description": "The catalog entry ID identifying the connector type.",
            "type": "string"
          },
          "connectorId": {
            "description": "The ID of an existing connector to retrieve its current configuration schema. Optional.",
            "type": "string"
          }
        },
        "title": "Connector Catalog Service Configuration Schema Request",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorCatalogServiceConfigurationSchemaRequest"
      },
      "c1.api.integration.connector.v1.ConnectorCatalogServiceConfigurationSchemaResponse": {
        "description": "ConnectorCatalogServiceConfigurationSchemaResponse is the response containing the connector's configuration schema.",
        "properties": {
          "formSchema": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.form.v1.Form"
              },
              {
                "type": "null"
              }
            ]
          },
          "schema": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.integration.connector.v1.ConfigSchema"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Connector Catalog Service Configuration Schema Response",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorCatalogServiceConfigurationSchemaResponse"
      },
      "c1.api.integration.connector.v1.Field": {
        "description": "The Field message.\n\nThis message contains a oneof named field. Only a single field of the following list may be set at a time:\n  - str\n  - select\n  - random\n  - import\n  - oauth2\n  - readOnly\n  - options\n  - checkbox\n  - secret\n  - strList\n  - text\n  - keyValue\n  - stringMap\n",
        "properties": {
          "additionalPlaceholder": {
            "description": "Optional. Additional placeholder text for the field\n In cases where a single placeholder is not enough to describe the field",
            "type": "string"
          },
          "checkbox": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.integration.connector.v1.CheckboxField"
              },
              {
                "type": "null"
              }
            ]
          },
          "dependsOnFields": {
            "description": "The dependsOnFields field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "displayName": {
            "description": "Human-readable label for this Field",
            "type": "string"
          },
          "helpUrl": {
            "description": "empty or https URL",
            "type": "string"
          },
          "import": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.integration.connector.v1.ImportField"
              },
              {
                "type": "null"
              }
            ]
          },
          "keyValue": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.integration.connector.v1.KeyValueField"
              },
              {
                "type": "null"
              }
            ]
          },
          "name": {
            "description": "Must not start with `C1_` and match [a-zA-Z0-9_]{2,64}.  Must be unique within a connector.",
            "type": "string"
          },
          "oauth2": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.integration.connector.v1.OAuth2Field"
              },
              {
                "type": "null"
              }
            ]
          },
          "options": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.integration.connector.v1.OptionsField"
              },
              {
                "type": "null"
              }
            ]
          },
          "placeholder": {
            "description": "The placeholder field.",
            "type": "string"
          },
          "postCreate": {
            "description": "The postCreate field.",
            "type": "boolean"
          },
          "random": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.integration.connector.v1.RandomStringField"
              },
              {
                "type": "null"
              }
            ]
          },
          "readOnly": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.integration.connector.v1.ReadOnlyField"
              },
              {
                "type": "null"
              }
            ]
          },
          "secret": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.integration.connector.v1.RotatableSecretField"
              },
              {
                "type": "null"
              }
            ]
          },
          "select": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.integration.connector.v1.SelectField"
              },
              {
                "type": "null"
              }
            ]
          },
          "str": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.integration.connector.v1.StringField"
              },
              {
                "type": "null"
              }
            ]
          },
          "strList": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.integration.connector.v1.StringListField"
              },
              {
                "type": "null"
              }
            ]
          },
          "stringMap": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.integration.connector.v1.StringMapField"
              },
              {
                "type": "null"
              }
            ]
          },
          "text": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.integration.connector.v1.TextField"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Field",
        "type": "object",
        "x-speakeasy-name-override": "Field"
      },
      "c1.api.integration.connector.v1.FieldGroup": {
        "description": "The FieldGroup message.",
        "properties": {
          "default": {
            "description": "The default field.",
            "type": "boolean"
          },
          "displayName": {
            "description": "Nice name this group (e.g. renders as a Tab label)",
            "type": "string"
          },
          "fieldNames": {
            "description": "Field names are \"guaranteed\" to be unique, but can be repeated in and between lists.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "helpText": {
            "description": "Optional. User-facing help text.",
            "type": "string"
          },
          "name": {
            "description": "Unique ID.",
            "type": "string"
          }
        },
        "title": "Field Group",
        "type": "object",
        "x-speakeasy-name-override": "FieldGroup"
      },
      "c1.api.integration.connector.v1.ImportField": {
        "description": "The ImportField message.",
        "properties": {
          "allowedExtensions": {
            "description": "The allowedExtensions field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "secret": {
            "description": "The secret field.",
            "type": "boolean"
          },
          "valueValidator": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/validate.StringRules"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Import Field",
        "type": "object",
        "x-speakeasy-name-override": "ImportField"
      },
      "c1.api.integration.connector.v1.KeyValueField": {
        "description": "The KeyValueField message.",
        "properties": {
          "secret": {
            "description": "The secret field.",
            "type": "boolean"
          },
          "supportsFileUpload": {
            "description": "When true, UI allows file uploads per key-value entry.",
            "type": "boolean"
          }
        },
        "title": "Key Value Field",
        "type": "object",
        "x-speakeasy-name-override": "KeyValueField"
      },
      "c1.api.integration.connector.v1.OAuth2Field": {
        "description": "The OAuth2Field message.",
        "title": "O Auth 2 Field",
        "type": "object",
        "x-speakeasy-name-override": "OAuth2Field"
      },
      "c1.api.integration.connector.v1.OptionsField": {
        "description": "The OptionsField message.",
        "title": "Options Field",
        "type": "object",
        "x-speakeasy-name-override": "OptionsField"
      },
      "c1.api.integration.connector.v1.RandomStringField": {
        "description": "The RandomStringField message.",
        "properties": {
          "length": {
            "description": "The length field.",
            "format": "int32",
            "type": "integer"
          }
        },
        "title": "Random String Field",
        "type": "object",
        "x-speakeasy-name-override": "RandomStringField"
      },
      "c1.api.integration.connector.v1.ReadOnlyField": {
        "description": "The ReadOnlyField message.",
        "title": "Read Only Field",
        "type": "object",
        "x-speakeasy-name-override": "ReadOnlyField"
      },
      "c1.api.integration.connector.v1.RotatableSecretField": {
        "description": "The RotatableSecretField message.",
        "title": "Rotatable Secret Field",
        "type": "object",
        "x-speakeasy-name-override": "RotatableSecretField"
      },
      "c1.api.integration.connector.v1.SelectField": {
        "description": "The SelectField message.",
        "properties": {
          "items": {
            "description": "list of items that are selected from",
            "items": {
              "$ref": "#/components/schemas/c1.api.integration.connector.v1.SelectField.Item"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Select Field",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorSelectField"
      },
      "c1.api.integration.connector.v1.SelectField.Item": {
        "description": "The Item message.",
        "properties": {
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "value": {
            "description": "The value field.",
            "type": "string"
          }
        },
        "title": "Item",
        "type": "object",
        "x-speakeasy-name-override": "Item"
      },
      "c1.api.integration.connector.v1.StringField": {
        "description": "The StringField message.",
        "properties": {
          "secret": {
            "description": "If secret, value is write-only in UI and a password-type form is used.",
            "type": "boolean"
          },
          "valueValidator": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/validate.StringRules"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "String Field",
        "type": "object",
        "x-speakeasy-name-override": "StringField"
      },
      "c1.api.integration.connector.v1.StringListField": {
        "description": "The StringListField message.",
        "properties": {
          "valueValidator": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/validate.StringRules"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "String List Field",
        "type": "object",
        "x-speakeasy-name-override": "StringListField"
      },
      "c1.api.integration.connector.v1.StringMapField": {
        "description": "The StringMapField message.",
        "properties": {
          "optional": {
            "description": "The optional field.",
            "type": "boolean"
          }
        },
        "title": "String Map Field",
        "type": "object",
        "x-speakeasy-name-override": "StringMapField"
      },
      "c1.api.integration.connector.v1.TextField": {
        "description": "The TextField message.",
        "properties": {
          "secret": {
            "description": "The secret field.",
            "type": "boolean"
          },
          "valueValidator": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/validate.StringRules"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Text Field",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorTextField"
      },
      "c1.api.llm_gateway.v1.ClearProviderCredentialRequestInput": {
        "description": "The ClearProviderCredentialRequest message.",
        "title": "Clear Provider Credential Request",
        "type": "object",
        "x-speakeasy-name-override": "ClearProviderCredentialRequest"
      },
      "c1.api.llm_gateway.v1.ClearProviderCredentialResponse": {
        "description": "The ClearProviderCredentialResponse message.",
        "properties": {
          "credential": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.llm_gateway.v1.ProviderCredential"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Clear Provider Credential Response",
        "type": "object",
        "x-speakeasy-name-override": "ClearProviderCredentialResponse"
      },
      "c1.api.llm_gateway.v1.GatewayKey": {
        "description": "The GatewayKey message.",
        "properties": {
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "keyPrefix": {
            "description": "The keyPrefix field.",
            "type": "string"
          },
          "revokedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Gateway Key",
        "type": "object",
        "x-speakeasy-name-override": "GatewayKey"
      },
      "c1.api.llm_gateway.v1.GetProviderCredentialResponse": {
        "description": "The GetProviderCredentialResponse message.",
        "properties": {
          "credential": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.llm_gateway.v1.ProviderCredential"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get Provider Credential Response",
        "type": "object",
        "x-speakeasy-name-override": "GetProviderCredentialResponse"
      },
      "c1.api.llm_gateway.v1.ListGatewayKeysResponse": {
        "description": "The ListGatewayKeysResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.llm_gateway.v1.GatewayKey"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "List Gateway Keys Response",
        "type": "object",
        "x-speakeasy-name-override": "ListGatewayKeysResponse"
      },
      "c1.api.llm_gateway.v1.MintGatewayKeyRequest": {
        "description": "The MintGatewayKeyRequest message.",
        "properties": {
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          }
        },
        "title": "Mint Gateway Key Request",
        "type": "object",
        "x-speakeasy-name-override": "MintGatewayKeyRequest"
      },
      "c1.api.llm_gateway.v1.MintGatewayKeyResponse": {
        "description": "The MintGatewayKeyResponse message.",
        "properties": {
          "gatewayKey": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.llm_gateway.v1.GatewayKey"
              },
              {
                "type": "null"
              }
            ]
          },
          "plaintextKey": {
            "description": "The plaintextKey field.",
            "type": "string"
          }
        },
        "title": "Mint Gateway Key Response",
        "type": "object",
        "x-speakeasy-name-override": "MintGatewayKeyResponse"
      },
      "c1.api.llm_gateway.v1.ProviderCredential": {
        "description": "The ProviderCredential message.",
        "properties": {
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "headerStyle": {
            "description": "The headerStyle field.",
            "enum": [
              "PROVIDER_CREDENTIAL_HEADER_STYLE_UNSPECIFIED",
              "PROVIDER_CREDENTIAL_HEADER_STYLE_X_API_KEY",
              "PROVIDER_CREDENTIAL_HEADER_STYLE_AUTHORIZATION_BEARER"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "keyPrefix": {
            "description": "The keyPrefix field.",
            "type": "string"
          },
          "revokedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "slotId": {
            "description": "The slotId field.",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "userId": {
            "description": "The userId field.",
            "type": "string"
          }
        },
        "title": "Provider Credential",
        "type": "object",
        "x-speakeasy-name-override": "ProviderCredential"
      },
      "c1.api.llm_gateway.v1.RevokeGatewayKeyRequestInput": {
        "description": "The RevokeGatewayKeyRequest message.",
        "title": "Revoke Gateway Key Request",
        "type": "object",
        "x-speakeasy-name-override": "RevokeGatewayKeyRequest"
      },
      "c1.api.llm_gateway.v1.RevokeGatewayKeyResponse": {
        "description": "The RevokeGatewayKeyResponse message.",
        "properties": {
          "gatewayKey": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.llm_gateway.v1.GatewayKey"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Revoke Gateway Key Response",
        "type": "object",
        "x-speakeasy-name-override": "RevokeGatewayKeyResponse"
      },
      "c1.api.llm_gateway.v1.SetProviderCredentialRequestInput": {
        "description": "The SetProviderCredentialRequest message.",
        "properties": {
          "apiKey": {
            "description": "The apiKey field.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "headerStyle": {
            "description": "The headerStyle field.",
            "enum": [
              "PROVIDER_CREDENTIAL_HEADER_STYLE_UNSPECIFIED",
              "PROVIDER_CREDENTIAL_HEADER_STYLE_X_API_KEY",
              "PROVIDER_CREDENTIAL_HEADER_STYLE_AUTHORIZATION_BEARER"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Set Provider Credential Request",
        "type": "object",
        "x-speakeasy-name-override": "SetProviderCredentialRequest"
      },
      "c1.api.llm_gateway.v1.SetProviderCredentialResponse": {
        "description": "The SetProviderCredentialResponse message.",
        "properties": {
          "credential": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.llm_gateway.v1.ProviderCredential"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Set Provider Credential Response",
        "type": "object",
        "x-speakeasy-name-override": "SetProviderCredentialResponse"
      },
      "c1.api.local_directory.v1.LocalDirectoryConfig": {
        "description": "LocalDirectoryConfig is the public representation of a C1-managed local\n directory configuration. The underlying directory infrastructure is provided\n by the linked App (identified by app_id).",
        "properties": {
          "allowSelfRegistration": {
            "description": "Whether unauthenticated users may self-register in this directory.",
            "type": "boolean"
          },
          "appId": {
            "description": "app_id is the identifier for this config and its linked App. Read-only after creation.",
            "readOnly": true,
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "defaultProfileTypeId": {
            "description": "Optional FK to a ProfileType applied to new users created via this directory.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "invitationTtl": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "isDefault": {
            "description": "Whether this is the default local directory for the tenant.\n At most one config per tenant may be the default.",
            "type": "boolean"
          },
          "onboardingFlowId": {
            "description": "Optional FK to an onboarding flow applied by default when inviting users.",
            "type": "string"
          },
          "organizationId": {
            "description": "Optional FK to a ThirdPartyOrganization. Empty means standalone (no vendor linkage).",
            "type": "string"
          },
          "selfRegistrationDomains": {
            "description": "Email domain allowlist for self-registration. Empty allows any domain when\n allow_self_registration is true.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Local Directory Config",
        "type": "object",
        "x-speakeasy-name-override": "LocalDirectoryConfig"
      },
      "c1.api.local_directory.v1.LocalDirectoryConfigServiceCreateRequest": {
        "description": "The LocalDirectoryConfigServiceCreateRequest message.",
        "properties": {
          "allowSelfRegistration": {
            "description": "The allowSelfRegistration field.",
            "type": "boolean"
          },
          "appId": {
            "description": "FK to the existing App that will back this local directory.",
            "type": "string"
          },
          "defaultProfileTypeId": {
            "description": "The defaultProfileTypeId field.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "invitationTtl": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "isDefault": {
            "description": "Whether this should be the default local directory for the tenant.",
            "type": "boolean"
          },
          "onboardingFlowId": {
            "description": "The onboardingFlowId field.",
            "type": "string"
          },
          "organizationId": {
            "description": "Optional FK to a ThirdPartyOrganization.",
            "type": "string"
          },
          "selfRegistrationDomains": {
            "description": "The selfRegistrationDomains field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "appId",
          "displayName"
        ],
        "title": "Local Directory Config Service Create Request",
        "type": "object",
        "x-speakeasy-name-override": "LocalDirectoryConfigServiceCreateRequest"
      },
      "c1.api.local_directory.v1.LocalDirectoryConfigServiceCreateResponse": {
        "description": "The LocalDirectoryConfigServiceCreateResponse message.",
        "properties": {
          "localDirectoryConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.local_directory.v1.LocalDirectoryConfig"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Local Directory Config Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "LocalDirectoryConfigServiceCreateResponse"
      },
      "c1.api.local_directory.v1.LocalDirectoryConfigServiceDeleteRequestInput": {
        "description": "The LocalDirectoryConfigServiceDeleteRequest message.",
        "title": "Local Directory Config Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "LocalDirectoryConfigServiceDeleteRequest"
      },
      "c1.api.local_directory.v1.LocalDirectoryConfigServiceDeleteResponse": {
        "description": "The LocalDirectoryConfigServiceDeleteResponse message.",
        "title": "Local Directory Config Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "LocalDirectoryConfigServiceDeleteResponse"
      },
      "c1.api.local_directory.v1.LocalDirectoryConfigServiceGetResponse": {
        "description": "The LocalDirectoryConfigServiceGetResponse message.",
        "properties": {
          "localDirectoryConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.local_directory.v1.LocalDirectoryConfig"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Local Directory Config Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "LocalDirectoryConfigServiceGetResponse"
      },
      "c1.api.local_directory.v1.LocalDirectoryConfigServiceListResponse": {
        "description": "The LocalDirectoryConfigServiceListResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.local_directory.v1.LocalDirectoryConfig"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Local Directory Config Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "LocalDirectoryConfigServiceListResponse"
      },
      "c1.api.local_directory.v1.LocalDirectoryConfigServiceUpdateRequestInput": {
        "description": "The LocalDirectoryConfigServiceUpdateRequest message.",
        "properties": {
          "localDirectoryConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.local_directory.v1.LocalDirectoryConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Local Directory Config Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "LocalDirectoryConfigServiceUpdateRequest"
      },
      "c1.api.local_directory.v1.LocalDirectoryConfigServiceUpdateResponse": {
        "description": "The LocalDirectoryConfigServiceUpdateResponse message.",
        "properties": {
          "localDirectoryConfig": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.local_directory.v1.LocalDirectoryConfig"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Local Directory Config Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "LocalDirectoryConfigServiceUpdateResponse"
      },
      "c1.api.local_directory.v1.LocalUserInvitation": {
        "description": "LocalUserInvitation is the public representation of a per-directory user invitation.",
        "properties": {
          "acceptedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "createdUserId": {
            "description": "Set when status = ACCEPTED. FK to the created User. Read-only.",
            "readOnly": true,
            "type": "string"
          },
          "directoryAppId": {
            "description": "FK to the LocalDirectoryConfig (app_id) this invitation belongs to. Read-only after creation.",
            "readOnly": true,
            "type": "string"
          },
          "displayName": {
            "description": "Display name to pre-populate on the new user account.",
            "type": "string"
          },
          "email": {
            "description": "Email address the invitation was sent to.",
            "type": "string"
          },
          "expiresAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "Unique KSUID identifier. Read-only.",
            "readOnly": true,
            "type": "string"
          },
          "initialRoleIds": {
            "description": "Optional initial role IDs to assign to the user upon acceptance.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "invitedByUserId": {
            "description": "FK to the User who created the invitation. Read-only.",
            "readOnly": true,
            "type": "string"
          },
          "jobId": {
            "description": "Optional FK to a ThirdPartyJob.",
            "type": "string"
          },
          "onboardingFlowId": {
            "description": "Optional onboarding flow override for this invitation.",
            "type": "string"
          },
          "purpose": {
            "description": "Human-readable reason this user was invited.",
            "type": "string"
          },
          "sponsorUserId": {
            "description": "Optional sponsor User override for this invitation.",
            "type": "string"
          },
          "status": {
            "description": "Current lifecycle status. Read-only.",
            "enum": [
              "LOCAL_INVITATION_STATUS_UNSPECIFIED",
              "LOCAL_INVITATION_STATUS_PENDING",
              "LOCAL_INVITATION_STATUS_ACCEPTED",
              "LOCAL_INVITATION_STATUS_REVOKED",
              "LOCAL_INVITATION_STATUS_EXPIRED"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Local User Invitation",
        "type": "object",
        "x-speakeasy-name-override": "LocalUserInvitation"
      },
      "c1.api.local_directory.v1.LocalUserInvitationServiceCreateRequestInput": {
        "description": "The LocalUserInvitationServiceCreateRequest message.",
        "properties": {
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "email": {
            "description": "The email field.",
            "type": "string"
          },
          "initialRoleIds": {
            "description": "Optional initial role IDs to assign upon acceptance.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "jobId": {
            "description": "Optional FK to a ThirdPartyJob.",
            "type": "string"
          },
          "onboardingFlowId": {
            "description": "Optional onboarding flow override.",
            "type": "string"
          },
          "purpose": {
            "description": "Human-readable reason for the invitation.",
            "type": "string"
          },
          "sponsorUserId": {
            "description": "Optional sponsor User override.",
            "type": "string"
          }
        },
        "required": [
          "email",
          "displayName"
        ],
        "title": "Local User Invitation Service Create Request",
        "type": "object",
        "x-speakeasy-name-override": "LocalUserInvitationServiceCreateRequest"
      },
      "c1.api.local_directory.v1.LocalUserInvitationServiceCreateResponse": {
        "description": "The LocalUserInvitationServiceCreateResponse message.",
        "properties": {
          "invitation": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.local_directory.v1.LocalUserInvitation"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Local User Invitation Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "LocalUserInvitationServiceCreateResponse"
      },
      "c1.api.local_directory.v1.LocalUserInvitationServiceGetResponse": {
        "description": "The LocalUserInvitationServiceGetResponse message.",
        "properties": {
          "invitation": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.local_directory.v1.LocalUserInvitation"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Local User Invitation Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "LocalUserInvitationServiceGetResponse"
      },
      "c1.api.local_directory.v1.LocalUserInvitationServiceRevokeRequestInput": {
        "description": "The LocalUserInvitationServiceRevokeRequest message.",
        "title": "Local User Invitation Service Revoke Request",
        "type": "object",
        "x-speakeasy-name-override": "LocalUserInvitationServiceRevokeRequest"
      },
      "c1.api.local_directory.v1.LocalUserInvitationServiceRevokeResponse": {
        "description": "The LocalUserInvitationServiceRevokeResponse message.",
        "properties": {
          "invitation": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.local_directory.v1.LocalUserInvitation"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Local User Invitation Service Revoke Response",
        "type": "object",
        "x-speakeasy-name-override": "LocalUserInvitationServiceRevokeResponse"
      },
      "c1.api.local_directory.v1.LocalUserInvitationServiceSearchRequest": {
        "description": "The LocalUserInvitationServiceSearchRequest message.",
        "properties": {
          "directoryAppId": {
            "description": "The directoryAppId field.",
            "type": "string"
          },
          "pageSize": {
            "description": "The pageSize field.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          },
          "statusFilter": {
            "description": "Optional filter by invitation status.",
            "enum": [
              "LOCAL_INVITATION_STATUS_UNSPECIFIED",
              "LOCAL_INVITATION_STATUS_PENDING",
              "LOCAL_INVITATION_STATUS_ACCEPTED",
              "LOCAL_INVITATION_STATUS_REVOKED",
              "LOCAL_INVITATION_STATUS_EXPIRED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Local User Invitation Service Search Request",
        "type": "object",
        "x-speakeasy-name-override": "LocalUserInvitationServiceSearchRequest"
      },
      "c1.api.local_directory.v1.LocalUserInvitationServiceSearchResponse": {
        "description": "The LocalUserInvitationServiceSearchResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.local_directory.v1.LocalUserInvitation"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Local User Invitation Service Search Response",
        "type": "object",
        "x-speakeasy-name-override": "LocalUserInvitationServiceSearchResponse"
      },
      "c1.api.policy.v1.Accept": {
        "description": "This policy step indicates that a ticket should have an approved outcome. This is a terminal approval state and is used to explicitly define the end of approval steps.",
        "properties": {
          "acceptMessage": {
            "description": "An optional message to include in the comments when a task is automatically accepted.",
            "type": "string"
          }
        },
        "title": "Accept",
        "type": "object",
        "x-speakeasy-name-override": "Accept"
      },
      "c1.api.policy.v1.AcceptInstance": {
        "description": "This policy step indicates that a ticket should have an approved outcome. This is a terminal approval state and is used to explicitly define the end of approval steps.\n The instance is just a marker for it being copied into an active policy.",
        "properties": {
          "acceptMessage": {
            "description": "An optional message to include in the comments when a task is automatically accepted.",
            "type": "string"
          }
        },
        "title": "Accept Instance",
        "type": "object",
        "x-speakeasy-name-override": "AcceptInstance"
      },
      "c1.api.policy.v1.AccessProfileOwnerApproval": {
        "description": "The AccessProfileOwnerApproval message.",
        "title": "Access Profile Owner Approval",
        "type": "object",
        "x-speakeasy-name-override": "AccessProfileOwnerApproval"
      },
      "c1.api.policy.v1.Action": {
        "description": "The Action message.\n\nThis message contains a oneof named target. Only a single field of the following list may be set at a time:\n  - automation\n  - batonResourceAction\n  - clientIdApproval\n",
        "properties": {
          "automation": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ActionTargetAutomation"
              },
              {
                "type": "null"
              }
            ]
          },
          "batonResourceAction": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ActionTargetBatonResourceAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "clientIdApproval": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ActionTargetClientIdApproval"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Action",
        "type": "object",
        "x-speakeasy-name-override": "Action"
      },
      "c1.api.policy.v1.ActionInstance": {
        "description": "The ActionInstance message.\n\nThis message contains a oneof named target_instance. Only a single field of the following list may be set at a time:\n  - automation\n  - batonResourceActionInstance\n  - clientIdApprovalInstance\n\n\nThis message contains a oneof named outcome. Only a single field of the following list may be set at a time:\n  - success\n  - denied\n  - error\n  - cancelled\n",
        "properties": {
          "action": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.Action"
              },
              {
                "type": "null"
              }
            ]
          },
          "automation": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ActionTargetAutomationInstance"
              },
              {
                "type": "null"
              }
            ]
          },
          "batonResourceActionInstance": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ActionTargetBatonResourceActionInstance"
              },
              {
                "type": "null"
              }
            ]
          },
          "cancelled": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ActionOutcomeCancelled"
              },
              {
                "type": "null"
              }
            ]
          },
          "clientIdApprovalInstance": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ActionTargetClientIdApprovalInstance"
              },
              {
                "type": "null"
              }
            ]
          },
          "denied": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ActionOutcomeDenied"
              },
              {
                "type": "null"
              }
            ]
          },
          "error": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ActionOutcomeError"
              },
              {
                "type": "null"
              }
            ]
          },
          "state": {
            "description": "The current state of the action execution.",
            "enum": [
              "ACTION_INSTANCE_STATE_UNSPECIFIED",
              "ACTION_INSTANCE_STATE_INIT",
              "ACTION_INSTANCE_STATE_RUNNING",
              "ACTION_INSTANCE_STATE_DONE",
              "ACTION_INSTANCE_STATE_ERROR"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "success": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ActionOutcomeSuccess"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Action Instance",
        "type": "object",
        "x-speakeasy-name-override": "ActionInstance"
      },
      "c1.api.policy.v1.ActionOutcomeCancelled": {
        "description": "The ActionOutcomeCancelled message.",
        "properties": {
          "outcomeTime": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Action Outcome Cancelled",
        "type": "object",
        "x-speakeasy-name-override": "ActionOutcomeCancelled"
      },
      "c1.api.policy.v1.ActionOutcomeDenied": {
        "description": "The ActionOutcomeDenied message.",
        "properties": {
          "outcomeTime": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Action Outcome Denied",
        "type": "object",
        "x-speakeasy-name-override": "ActionOutcomeDenied"
      },
      "c1.api.policy.v1.ActionOutcomeError": {
        "description": "The ActionOutcomeError message.",
        "properties": {
          "errorCode": {
            "description": "The errorCode field.",
            "type": "string"
          },
          "errorMessage": {
            "description": "The errorMessage field.",
            "type": "string"
          },
          "outcomeTime": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Action Outcome Error",
        "type": "object",
        "x-speakeasy-name-override": "ActionOutcomeError"
      },
      "c1.api.policy.v1.ActionOutcomeSuccess": {
        "description": "The ActionOutcomeSuccess message.",
        "properties": {
          "outcomeTime": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Action Outcome Success",
        "type": "object",
        "x-speakeasy-name-override": "ActionOutcomeSuccess"
      },
      "c1.api.policy.v1.ActionProvision": {
        "description": "This provision step indicates that account lifecycle action should be called to provision this entitlement.",
        "properties": {
          "actionName": {
            "description": "The actionName field.",
            "type": "string"
          },
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "connectorId": {
            "description": "The connectorId field.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          }
        },
        "title": "Action Provision",
        "type": "object",
        "x-speakeasy-name-override": "ActionProvision"
      },
      "c1.api.policy.v1.ActionTargetAutomation": {
        "description": "ActionTargetAutomation targets automation templates for policy actions.",
        "properties": {
          "automationTemplateId": {
            "description": "The automationTemplateId field.",
            "type": "string"
          }
        },
        "title": "Action Target Automation",
        "type": "object",
        "x-speakeasy-name-override": "ActionTargetAutomation"
      },
      "c1.api.policy.v1.ActionTargetAutomationInstance": {
        "description": "The ActionTargetAutomationInstance message.",
        "properties": {
          "automationExecutionId": {
            "description": "The automationExecutionId field.",
            "type": "string"
          }
        },
        "title": "Action Target Automation Instance",
        "type": "object",
        "x-speakeasy-name-override": "ActionTargetAutomationInstance"
      },
      "c1.api.policy.v1.ActionTargetBatonResourceAction": {
        "description": "ActionTargetResource targets resource actions for policy actions.",
        "properties": {
          "batonResourceActionId": {
            "description": "The batonResourceActionId field.",
            "type": "string"
          }
        },
        "title": "Action Target Baton Resource Action",
        "type": "object",
        "x-speakeasy-name-override": "ActionTargetBatonResourceAction"
      },
      "c1.api.policy.v1.ActionTargetBatonResourceActionInstance": {
        "description": "The ActionTargetBatonResourceActionInstance message.",
        "properties": {
          "batonActionInvocationId": {
            "description": "The batonActionInvocationId field.",
            "type": "string"
          },
          "partialResult": {
            "description": "The created resource has unconfirmed requested effects.",
            "type": "boolean"
          },
          "unaddedMemberCount": {
            "description": "The unaddedMemberCount field.",
            "format": "uint32",
            "type": "integer"
          }
        },
        "title": "Action Target Baton Resource Action Instance",
        "type": "object",
        "x-speakeasy-name-override": "ActionTargetBatonResourceActionInstance"
      },
      "c1.api.policy.v1.ActionTargetClientIdApproval": {
        "description": "ActionTargetClientIdApproval targets administrator review of an external\n OAuth client registration (CIMD or DCR) for policy actions.",
        "title": "Action Target Client Id Approval",
        "type": "object",
        "x-speakeasy-name-override": "ActionTargetClientIdApproval"
      },
      "c1.api.policy.v1.ActionTargetClientIdApprovalInstance": {
        "description": "ActionTargetClientIdApprovalInstance carries the registration key of the\n external OAuth client that is being reviewed.",
        "properties": {
          "clientIdUrl": {
            "description": "The clientIdUrl field.",
            "type": "string"
          }
        },
        "title": "Action Target Client Id Approval Instance",
        "type": "object",
        "x-speakeasy-name-override": "ActionTargetClientIdApprovalInstance"
      },
      "c1.api.policy.v1.AgentApproval": {
        "description": "The agent to assign the task to.",
        "properties": {
          "agentFailureAction": {
            "description": "The action to take if the agent fails to approve, deny, or reassign the task.",
            "enum": [
              "APPROVAL_AGENT_FAILURE_ACTION_UNSPECIFIED",
              "APPROVAL_AGENT_FAILURE_ACTION_REASSIGN_TO_USERS",
              "APPROVAL_AGENT_FAILURE_ACTION_REASSIGN_TO_SUPER_ADMINS",
              "APPROVAL_AGENT_FAILURE_ACTION_SKIP_POLICY_STEP"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "agentMode": {
            "description": "The mode of the agent, full control, change policy only, or comment only.",
            "enum": [
              "APPROVAL_AGENT_MODE_UNSPECIFIED",
              "APPROVAL_AGENT_MODE_FULL_CONTROL",
              "APPROVAL_AGENT_MODE_CHANGE_POLICY_ONLY",
              "APPROVAL_AGENT_MODE_COMMENT_ONLY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "agentUserId": {
            "deprecated": true,
            "description": "Deprecated: agent steps are evaluated by the system; no agent user is\n selected. Retained so pre-migration policies still validate.",
            "type": "string"
          },
          "instructions": {
            "description": "Instructions for the agent.",
            "type": "string"
          },
          "policyIds": {
            "description": "The allow list of policy IDs to re-route the task to.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "reassignToUserIds": {
            "description": "The users to reassign the task to if the agent failure action is reassign to users.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Agent Approval",
        "type": "object",
        "x-speakeasy-name-override": "AgentApproval"
      },
      "c1.api.policy.v1.AppEntitlementReference": {
        "description": "This object references an app entitlement's ID and AppID.",
        "properties": {
          "appEntitlementId": {
            "description": "The ID of the Entitlement.",
            "type": "string"
          },
          "appId": {
            "description": "The ID of the App this entitlement belongs to.",
            "type": "string"
          }
        },
        "title": "App Entitlement Reference",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementReference"
      },
      "c1.api.policy.v1.AppGroupApproval": {
        "description": "The AppGroupApproval object provides the configuration for setting a group as the approvers of an approval policy step.",
        "properties": {
          "allowSelfApproval": {
            "description": "Configuration to allow self approval if the target user is a member of the group during this step.",
            "type": "boolean"
          },
          "appGroupId": {
            "description": "The ID of the group specified for approval.",
            "type": "string"
          },
          "appId": {
            "description": "The ID of the app that contains the group specified for approval.",
            "type": "string"
          },
          "fallback": {
            "description": "Configuration to allow a fallback if the group is empty.",
            "type": "boolean"
          },
          "fallbackGroupIds": {
            "description": "Configuration to specify which groups to fallback to if fallback is enabled and the group is empty.",
            "items": {
              "$ref": "#/components/schemas/c1.api.policy.v1.AppEntitlementReference"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "fallbackUserIds": {
            "description": "Configuration to specific which users to fallback to if fallback is enabled and the group is empty.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "isGroupFallbackEnabled": {
            "description": "Configuration to enable fallback for group fallback.",
            "type": "boolean"
          },
          "requireDistinctApprovers": {
            "description": "Configuration to require distinct approvers across approval steps of a rule.",
            "type": "boolean"
          }
        },
        "title": "App Group Approval",
        "type": "object",
        "x-speakeasy-name-override": "AppGroupApproval"
      },
      "c1.api.policy.v1.AppOwnerApproval": {
        "description": "App owner approval provides the configuration for an approval step when the app owner is the target.",
        "properties": {
          "allowSelfApproval": {
            "description": "Configuration that allows a user to self approve if they are an app owner during this approval step.",
            "type": "boolean"
          },
          "requireDistinctApprovers": {
            "description": "Configuration to require distinct approvers across approval steps of a rule.",
            "type": "boolean"
          }
        },
        "title": "App Owner Approval",
        "type": "object",
        "x-speakeasy-name-override": "AppOwnerApproval"
      },
      "c1.api.policy.v1.AppOwnerProvisioner": {
        "description": "AppOwnerProvisioner resolves to app owners.",
        "properties": {
          "allowReassignment": {
            "description": "Whether the provisioner can reassign the task.",
            "type": "boolean"
          },
          "fallbackUserIds": {
            "description": "Fallback user IDs if no app owners are found.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "App Owner Provisioner",
        "type": "object",
        "x-speakeasy-name-override": "AppOwnerProvisioner"
      },
      "c1.api.policy.v1.Approval": {
        "description": "The Approval message.\n\nThis message contains a oneof named typ. Only a single field of the following list may be set at a time:\n  - users\n  - manager\n  - appOwners\n  - group\n  - self\n  - entitlementOwners\n  - expression\n  - webhook\n  - resourceOwners\n  - agent\n  - accessProfileOwners\n",
        "properties": {
          "accessProfileOwners": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.AccessProfileOwnerApproval"
              },
              {
                "type": "null"
              }
            ]
          },
          "agent": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.AgentApproval"
              },
              {
                "type": "null"
              }
            ]
          },
          "allowDelegation": {
            "description": "Whether ticket delegation is allowed for this step.",
            "type": "boolean"
          },
          "allowReassignment": {
            "description": "Configuration to allow reassignment by reviewers during this step.",
            "type": "boolean"
          },
          "allowedReassignees": {
            "description": "List of users for whom this step can be reassigned.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appOwners": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.AppOwnerApproval"
              },
              {
                "type": "null"
              }
            ]
          },
          "assigned": {
            "description": "A field indicating whether this step is assigned.",
            "readOnly": true,
            "type": "boolean"
          },
          "entitlementOwners": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.EntitlementOwnerApproval"
              },
              {
                "type": "null"
              }
            ]
          },
          "escalation": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.Escalation"
              },
              {
                "type": "null"
              }
            ]
          },
          "escalationEnabled": {
            "description": "Whether escalation is enabled for this step.",
            "type": "boolean"
          },
          "expression": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ExpressionApproval"
              },
              {
                "type": "null"
              }
            ]
          },
          "group": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.AppGroupApproval"
              },
              {
                "type": "null"
              }
            ]
          },
          "manager": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ManagerApproval"
              },
              {
                "type": "null"
              }
            ]
          },
          "requireApprovalReason": {
            "description": "Configuration to require a reason when approving this step.",
            "type": "boolean"
          },
          "requireDenialReason": {
            "description": "Configuration to require a reason when denying this step.",
            "type": "boolean"
          },
          "requireReassignmentReason": {
            "description": "Configuration to require a reason when reassigning this step.",
            "type": "boolean"
          },
          "requiresStepUpProviderId": {
            "description": "The ID of a step-up authentication provider that will be required for approvals on this step.\n If set, approvers must complete the step-up authentication flow before they can approve.",
            "type": "string"
          },
          "resourceOwners": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ResourceOwnerApproval"
              },
              {
                "type": "null"
              }
            ]
          },
          "self": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.SelfApproval"
              },
              {
                "type": "null"
              }
            ]
          },
          "users": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.UserApproval"
              },
              {
                "type": "null"
              }
            ]
          },
          "webhook": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.WebhookApproval"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Approval",
        "type": "object",
        "x-speakeasy-name-override": "Approval"
      },
      "c1.api.policy.v1.ApprovalInstance": {
        "description": "The approval instance object describes the way a policy step should be approved as well as its outcomes and state.\n\nThis message contains a oneof named outcome. Only a single field of the following list may be set at a time:\n  - approved\n  - denied\n  - reassigned\n  - restarted\n  - reassignedByError\n  - skipped\n",
        "properties": {
          "approval": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.Approval"
              },
              {
                "type": "null"
              }
            ]
          },
          "approved": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ApprovedAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "assignedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "denied": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.DeniedAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "escalationInstance": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.EscalationInstance"
              },
              {
                "type": "null"
              }
            ]
          },
          "reassigned": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ReassignedAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "reassignedByError": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ReassignedByErrorAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "restarted": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.RestartAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "skipped": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.SkippedAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "state": {
            "description": "The state of the approval instance",
            "enum": [
              "APPROVAL_INSTANCE_STATE_UNSPECIFIED",
              "APPROVAL_INSTANCE_STATE_INIT",
              "APPROVAL_INSTANCE_STATE_SENDING_NOTIFICATIONS",
              "APPROVAL_INSTANCE_STATE_WAITING",
              "APPROVAL_INSTANCE_STATE_DONE"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Approval Instance",
        "type": "object",
        "x-speakeasy-name-override": "ApprovalInstance"
      },
      "c1.api.policy.v1.ApprovedAction": {
        "description": "The approved action indicates that the approvalinstance had an outcome of approved.",
        "properties": {
          "approvedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "entitlements": {
            "description": "The entitlements that were approved. This will only ever be a list of one entitlement.",
            "items": {
              "$ref": "#/components/schemas/c1.api.policy.v1.AppEntitlementReference"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "stepUpTransactionId": {
            "description": "The ID of the step-up transaction that was used for this approval, if step-up was required.",
            "readOnly": true,
            "type": "string"
          },
          "userId": {
            "description": "The UserID that approved this step.",
            "readOnly": true,
            "type": "string"
          }
        },
        "title": "Approved Action",
        "type": "object",
        "x-speakeasy-name-override": "ApprovedAction"
      },
      "c1.api.policy.v1.CancelledAction": {
        "description": "The outcome of a provision instance that is cancelled.",
        "properties": {
          "cancelledAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "cancelledByUserId": {
            "description": "The userID, usually the system, that cancells a provision instance.",
            "type": "string"
          }
        },
        "title": "Cancelled Action",
        "type": "object",
        "x-speakeasy-name-override": "CancelledAction"
      },
      "c1.api.policy.v1.CompletedAction": {
        "description": "The outcome of a provision instance that has been completed succesfully.",
        "properties": {
          "completedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "entitlements": {
            "description": "The list of entitlements that were provisioned. This is leftover from an older design, and is only ever going to be a single entitlement.",
            "items": {
              "$ref": "#/components/schemas/c1.api.policy.v1.AppEntitlementReference"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "userId": {
            "description": "The UserID of who completed provisioning. For connector provisioning this is the system user id, for manual provisioning this is who clicked \"provision complete\"",
            "type": "string"
          }
        },
        "title": "Completed Action",
        "type": "object",
        "x-speakeasy-name-override": "CompletedAction"
      },
      "c1.api.policy.v1.ConnectorProvision": {
        "description": "Indicates that a connector should perform the provisioning. This object has no fields.\n\nThis message contains a oneof named provision_type. Only a single field of the following list may be set at a time:\n  - defaultBehavior\n  - account\n  - deleteAccount\n",
        "properties": {
          "account": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ConnectorProvision.AccountProvision"
              },
              {
                "type": "null"
              }
            ]
          },
          "defaultBehavior": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ConnectorProvision.DefaultBehavior"
              },
              {
                "type": "null"
              }
            ]
          },
          "deleteAccount": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ConnectorProvision.DeleteAccount"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Connector Provision",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorProvision"
      },
      "c1.api.policy.v1.ConnectorProvision.AccountProvision": {
        "description": "The AccountProvision message.\n\nThis message contains a oneof named storage_type. Only a single field of the following list may be set at a time:\n  - saveToVault\n  - doNotSave\n",
        "properties": {
          "config": {
            "additionalProperties": true,
            "type": [
              "object",
              "null"
            ]
          },
          "connectorId": {
            "description": "The connectorId field.",
            "type": "string"
          },
          "doNotSave": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ConnectorProvision.DoNotSave"
              },
              {
                "type": "null"
              }
            ]
          },
          "saveToVault": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ConnectorProvision.SaveToVault"
              },
              {
                "type": "null"
              }
            ]
          },
          "schemaId": {
            "description": "The schemaId field.",
            "type": "string"
          }
        },
        "title": "Account Provision",
        "type": "object",
        "x-speakeasy-name-override": "AccountProvision"
      },
      "c1.api.policy.v1.ConnectorProvision.DefaultBehavior": {
        "description": "The DefaultBehavior message.",
        "properties": {
          "connectorId": {
            "description": "this checks if the entitlement is enabled by provisioning in a specific connector\n this can happen automatically and doesn't need any extra info",
            "type": "string"
          }
        },
        "title": "Default Behavior",
        "type": "object",
        "x-speakeasy-name-override": "DefaultBehavior"
      },
      "c1.api.policy.v1.ConnectorProvision.DeleteAccount": {
        "description": "The DeleteAccount message.",
        "properties": {
          "connectorId": {
            "description": "The connectorId field.",
            "type": "string"
          }
        },
        "title": "Delete Account",
        "type": "object",
        "x-speakeasy-name-override": "DeleteAccount"
      },
      "c1.api.policy.v1.ConnectorProvision.DoNotSave": {
        "description": "The DoNotSave message.",
        "title": "Do Not Save",
        "type": "object",
        "x-speakeasy-name-override": "DoNotSave"
      },
      "c1.api.policy.v1.ConnectorProvision.SaveToVault": {
        "description": "The SaveToVault message.",
        "properties": {
          "vaultIds": {
            "description": "The vaultIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Save To Vault",
        "type": "object",
        "x-speakeasy-name-override": "SaveToVault"
      },
      "c1.api.policy.v1.CreatePolicyRequest": {
        "description": "The CreatePolicyRequest message is used to create a new policy.",
        "properties": {
          "annotations": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Bounded key/value metadata bag for IaC marking and customer tags.\n See .rfcs/object-annotations.md §2. Limits: ≤16 entries; keys 1–128\n chars matching ^[A-Za-z][A-Za-z0-9._/-]{0,127}$; values 0–256 chars\n matching URL-safe ASCII; total serialized ≤4096 bytes. Keys starting\n with `c1/` are reserved for server-managed use and rejected on write.\n\n Well-known keys: `managed_by`, `iac_workspace`,\n `iac_resource_address`, `iac_tool_version`.",
            "type": "object",
            "x-speakeasy-terraform-plan-modifier": {
              "imports": [
                "github.com/conductorone/terraform-provider-conductorone/internal/annotations"
              ],
              "schemaDefinition": "annotations.PlanModifier()"
            }
          },
          "baselinePolicyId": {
            "description": "When set, the new policy's baseline defers to another policy of the same\n type when no rule matches, instead of an inline baseline step list.\n Mutually exclusive with the baseline entry in policy_steps. Requires the\n POLICY_REFERENCES_POLICY feature; obeys the same depth/cycle/self rules as\n Rule.policy_id.",
            "type": "string"
          },
          "description": {
            "description": "The description of the new policy.",
            "type": "string"
          },
          "displayName": {
            "description": "The display name of the new policy.",
            "type": "string"
          },
          "policySteps": {
            "additionalProperties": {
              "$ref": "#/components/schemas/c1.api.policy.v1.PolicySteps"
            },
            "description": "Step sequences for this policy. The map must include a baseline entry keyed\n by the lowercased policy type (e.g., \"grant\"). Additional entries with\n opaque keys can be added for conditional routing via the rules array.",
            "type": "object"
          },
          "policyType": {
            "description": "The type of policy to create (grant, revoke, or certify).",
            "enum": [
              "POLICY_TYPE_UNSPECIFIED",
              "POLICY_TYPE_GRANT",
              "POLICY_TYPE_REVOKE",
              "POLICY_TYPE_CERTIFY",
              "POLICY_TYPE_ACCESS_REQUEST",
              "POLICY_TYPE_PROVISION"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "postActions": {
            "description": "Ordered actions to execute after the policy completes processing.",
            "items": {
              "$ref": "#/components/schemas/c1.api.policy.v1.PolicyPostActions"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "reassignTasksToDelegates": {
            "deprecated": true,
            "description": "This field is no longer used. Configure delegate reassignment in the policy step instead.",
            "type": "boolean"
          },
          "rules": {
            "description": "Conditional routing rules. See the Policy message for details on evaluation order.\n The public Create API enforces the tenant's conditional-rules-per-policy quota\n (default 16), excluding the baseline. Contact support to adjust this tenant quota.",
            "items": {
              "$ref": "#/components/schemas/c1.api.policy.v1.Rule"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "scope": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.PolicyScope"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "displayName"
        ],
        "title": "Create Policy Request",
        "type": "object",
        "x-speakeasy-entity": "Policy",
        "x-speakeasy-name-override": "CreatePolicyRequest"
      },
      "c1.api.policy.v1.CreatePolicyResponse": {
        "description": "The CreatePolicyResponse message contains the created policy object.",
        "properties": {
          "policy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.Policy"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create Policy Response",
        "type": "object",
        "x-speakeasy-name-override": "CreatePolicyResponse"
      },
      "c1.api.policy.v1.DelegatedProvision": {
        "description": "This provision step indicates that we should delegate provisioning to the configuration of another app entitlement. This app entitlement does not have to be one from the same app, but MUST be configured as a proxy binding leading into this entitlement.",
        "properties": {
          "appId": {
            "description": "The AppID of the entitlement to delegate provisioning to.",
            "type": "string"
          },
          "entitlementId": {
            "description": "The ID of the entitlement we are delegating provisioning to.",
            "type": "string"
          },
          "implicit": {
            "description": "If true, a binding will be automatically created from the entitlement of the parent app.",
            "type": "boolean"
          }
        },
        "title": "Delegated Provision",
        "type": "object",
        "x-speakeasy-name-override": "DelegatedProvision"
      },
      "c1.api.policy.v1.DeletePolicyRequestInput": {
        "description": "The DeletePolicyRequest message contains the ID of the policy to delete. It uses URL value for input.",
        "title": "Delete Policy Request",
        "type": "object",
        "x-speakeasy-entity": "Policy",
        "x-speakeasy-name-override": "DeletePolicyRequest"
      },
      "c1.api.policy.v1.DeletePolicyResponse": {
        "description": "Empty response with a status code indicating success.",
        "title": "Delete Policy Response",
        "type": "object",
        "x-speakeasy-name-override": "DeletePolicyResponse"
      },
      "c1.api.policy.v1.DeniedAction": {
        "description": "The denied action indicates that the c1.api.policy.v1.ApprovalInstance had an outcome of denied.",
        "properties": {
          "deniedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "userId": {
            "description": "The UserID that denied this step.",
            "readOnly": true,
            "type": "string"
          }
        },
        "title": "Denied Action",
        "type": "object",
        "x-speakeasy-name-override": "DeniedAction"
      },
      "c1.api.policy.v1.DevicePlacementProvision": {
        "description": "This provision step is fulfilled by a Latchkey member device producing an MLS Welcome for the recipient. It has no assignee and no instructions because the step is not human-actionable.",
        "properties": {
          "vaultBoundaryId": {
            "description": "The vaultBoundaryId field.",
            "type": "string"
          }
        },
        "title": "Device Placement Provision",
        "type": "object",
        "x-speakeasy-name-override": "DevicePlacementProvision"
      },
      "c1.api.policy.v1.EditorValidateRequest": {
        "description": "The EditorValidateRequest message.",
        "properties": {
          "text": {
            "description": "The text field.",
            "type": "string"
          }
        },
        "title": "Editor Validate Request",
        "type": "object",
        "x-speakeasy-name-override": "PolicyEditorValidateRequest"
      },
      "c1.api.policy.v1.EditorValidateResponse": {
        "description": "The EditorValidateResponse message.",
        "properties": {
          "markers": {
            "description": "The markers field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.editor.v1.EditorMarker"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Editor Validate Response",
        "type": "object",
        "x-speakeasy-name-override": "PolicyEditorValidateResponse"
      },
      "c1.api.policy.v1.EntitlementOwnerApproval": {
        "description": "The entitlement owner approval allows configuration of the approval step when the target approvers are the entitlement owners.",
        "properties": {
          "allowSelfApproval": {
            "description": "Configuration to allow self approval if the target user is an entitlement owner during this step.",
            "type": "boolean"
          },
          "fallback": {
            "description": "Configuration to allow a fallback if the entitlement owner cannot be identified.",
            "type": "boolean"
          },
          "fallbackGroupIds": {
            "description": "Configuration to specify which groups to fallback to if fallback is enabled and the entitlement owner cannot be identified.",
            "items": {
              "$ref": "#/components/schemas/c1.api.policy.v1.AppEntitlementReference"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "fallbackUserIds": {
            "description": "Configuration to specific which users to fallback to if fallback is enabled and the entitlement owner cannot be identified.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "isGroupFallbackEnabled": {
            "description": "Configuration to enable fallback for group fallback.",
            "type": "boolean"
          },
          "requireDistinctApprovers": {
            "description": "Configuration to require distinct approvers across approval steps of a rule.",
            "type": "boolean"
          }
        },
        "title": "Entitlement Owner Approval",
        "type": "object",
        "x-speakeasy-name-override": "EntitlementOwnerApproval"
      },
      "c1.api.policy.v1.EntitlementOwnerProvisioner": {
        "description": "EntitlementOwnerProvisioner resolves to entitlement owners.",
        "properties": {
          "allowReassignment": {
            "description": "Whether the provisioner can reassign the task.",
            "type": "boolean"
          },
          "fallbackUserIds": {
            "description": "Fallback user IDs if no entitlement owners are found.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Entitlement Owner Provisioner",
        "type": "object",
        "x-speakeasy-name-override": "EntitlementOwnerProvisioner"
      },
      "c1.api.policy.v1.ErroredAction": {
        "description": "The outcome of a provision instance that has errored.",
        "properties": {
          "description": {
            "description": "The description of a provision instance that has errored.",
            "type": "string"
          },
          "errorCode": {
            "description": "The error code of a provision instance that has errored. This is only PEC-1 for now, but more will be added in the future.",
            "type": "string"
          },
          "erroredAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Errored Action",
        "type": "object",
        "x-speakeasy-name-override": "ErroredAction"
      },
      "c1.api.policy.v1.Escalation": {
        "description": "The Escalation message.\n\nThis message contains a oneof named escalation_policy. Only a single field of the following list may be set at a time:\n  - replacePolicy\n  - reassignToApprovers\n  - cancelTicket\n  - skipStep\n",
        "properties": {
          "cancelTicket": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.Escalation.CancelTicket"
              },
              {
                "type": "null"
              }
            ]
          },
          "escalationComment": {
            "description": "The escalationComment field.",
            "type": "string"
          },
          "expiration": {
            "description": "The expiration field.",
            "format": "int64",
            "type": "string"
          },
          "reassignToApprovers": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.Escalation.ReassignToApprovers"
              },
              {
                "type": "null"
              }
            ]
          },
          "replacePolicy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.Escalation.ReplacePolicy"
              },
              {
                "type": "null"
              }
            ]
          },
          "skipStep": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.Escalation.SkipStep"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Escalation",
        "type": "object",
        "x-speakeasy-name-override": "Escalation"
      },
      "c1.api.policy.v1.Escalation.CancelTicket": {
        "description": "The CancelTicket message.",
        "title": "Cancel Ticket",
        "type": "object",
        "x-speakeasy-name-override": "CancelTicket"
      },
      "c1.api.policy.v1.Escalation.ReassignToApprovers": {
        "description": "The ReassignToApprovers message.",
        "properties": {
          "approverIds": {
            "description": "The approverIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Reassign To Approvers",
        "type": "object",
        "x-speakeasy-name-override": "ReassignToApprovers"
      },
      "c1.api.policy.v1.Escalation.ReplacePolicy": {
        "description": "The ReplacePolicy message.",
        "properties": {
          "policyId": {
            "description": "The policyId field.",
            "type": "string"
          }
        },
        "title": "Replace Policy",
        "type": "object",
        "x-speakeasy-name-override": "ReplacePolicy"
      },
      "c1.api.policy.v1.Escalation.SkipStep": {
        "description": "The SkipStep message.",
        "title": "Skip Step",
        "type": "object",
        "x-speakeasy-name-override": "SkipStep"
      },
      "c1.api.policy.v1.EscalationInstance": {
        "description": "The EscalationInstance message.\n\nThis message contains a oneof named escalation_policy. Only a single field of the following list may be set at a time:\n  - replacePolicy\n  - reassignToApprovers\n  - cancelTicket\n  - skipStep\n",
        "properties": {
          "alreadyEscalated": {
            "description": "The alreadyEscalated field.",
            "type": "boolean"
          },
          "cancelTicket": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.EscalationInstance.CancelTicket"
              },
              {
                "type": "null"
              }
            ]
          },
          "escalationComment": {
            "description": "The escalationComment field.",
            "type": "string"
          },
          "expiresAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "reassignToApprovers": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.EscalationInstance.ReassignToApprovers"
              },
              {
                "type": "null"
              }
            ]
          },
          "replacePolicy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.EscalationInstance.ReplacePolicy"
              },
              {
                "type": "null"
              }
            ]
          },
          "skipStep": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.EscalationInstance.SkipStep"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Escalation Instance",
        "type": "object",
        "x-speakeasy-name-override": "EscalationInstance"
      },
      "c1.api.policy.v1.EscalationInstance.CancelTicket": {
        "description": "The CancelTicket message.",
        "title": "Cancel Ticket",
        "type": "object",
        "x-speakeasy-name-override": "EscalationInstanceCancelTicket"
      },
      "c1.api.policy.v1.EscalationInstance.ReassignToApprovers": {
        "description": "The ReassignToApprovers message.",
        "properties": {
          "approverIds": {
            "description": "The approverIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Reassign To Approvers",
        "type": "object",
        "x-speakeasy-name-override": "EscalationInstanceReassignToApprovers"
      },
      "c1.api.policy.v1.EscalationInstance.ReplacePolicy": {
        "description": "The ReplacePolicy message.",
        "properties": {
          "policyId": {
            "description": "The policyId field.",
            "type": "string"
          }
        },
        "title": "Replace Policy",
        "type": "object",
        "x-speakeasy-name-override": "EscalationInstanceReplacePolicy"
      },
      "c1.api.policy.v1.EscalationInstance.SkipStep": {
        "description": "The SkipStep message.",
        "title": "Skip Step",
        "type": "object",
        "x-speakeasy-name-override": "EscalationInstanceSkipStep"
      },
      "c1.api.policy.v1.ExpressionApproval": {
        "description": "The ExpressionApproval message.",
        "properties": {
          "allowSelfApproval": {
            "description": "Configuration to allow self approval of if the user is specified and also the target of the ticket.",
            "type": "boolean"
          },
          "assignedUserIds": {
            "description": "The assignedUserIds field.",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "expressions": {
            "description": "Array of dynamic expressions to determine the approvers.  The first expression to return a non-empty list of users will be used.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "fallback": {
            "description": "Configuration to allow a fallback if the expression does not return a valid list of users.",
            "type": "boolean"
          },
          "fallbackGroupIds": {
            "description": "Configuration to specify which groups to fallback to if fallback is enabled and the expression does not return a valid list of users.",
            "items": {
              "$ref": "#/components/schemas/c1.api.policy.v1.AppEntitlementReference"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "fallbackUserIds": {
            "description": "Configuration to specific which users to fallback to if and the expression does not return a valid list of users.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "isGroupFallbackEnabled": {
            "description": "Configuration to enable fallback for group fallback.",
            "type": "boolean"
          },
          "requireDistinctApprovers": {
            "description": "Configuration to require distinct approvers across approval steps of a rule.",
            "type": "boolean"
          }
        },
        "title": "Expression Approval",
        "type": "object",
        "x-speakeasy-name-override": "ExpressionApproval"
      },
      "c1.api.policy.v1.ExpressionProvisioner": {
        "description": "ExpressionProvisioner evaluates CEL expressions to determine provisioners.",
        "properties": {
          "allowReassignment": {
            "description": "Whether the provisioner can reassign the task.",
            "type": "boolean"
          },
          "expressions": {
            "description": "The CEL expressions to evaluate.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "fallbackUserIds": {
            "description": "Fallback user IDs if expression evaluation yields no users.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Expression Provisioner",
        "type": "object",
        "x-speakeasy-name-override": "ExpressionProvisioner"
      },
      "c1.api.policy.v1.ExternalTicketProvision": {
        "description": "This provision step indicates that we should check an external ticket to provision this entitlement",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "connectorId": {
            "description": "The connectorId field.",
            "type": "string"
          },
          "externalTicketProvisionerConfigId": {
            "description": "The externalTicketProvisionerConfigId field.",
            "type": "string"
          },
          "instructions": {
            "description": "This field indicates a text body of instructions for the provisioner to indicate.",
            "type": "string"
          }
        },
        "title": "External Ticket Provision",
        "type": "object",
        "x-speakeasy-name-override": "ExternalTicketProvision"
      },
      "c1.api.policy.v1.Form": {
        "description": "The Form message.",
        "properties": {
          "form": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.form.v1.Form"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Form",
        "type": "object",
        "x-speakeasy-name-override": "Form"
      },
      "c1.api.policy.v1.FormCompletedAction": {
        "description": "The FormCompletedAction message.",
        "properties": {
          "completedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "userId": {
            "description": "The userId field.",
            "type": "string"
          }
        },
        "title": "Form Completed Action",
        "type": "object",
        "x-speakeasy-name-override": "FormCompletedAction"
      },
      "c1.api.policy.v1.FormInstance": {
        "description": "The FormInstance message.\n\nThis message contains a oneof named outcome. Only a single field of the following list may be set at a time:\n  - completed\n  - restarted\n  - reassigned\n  - skipped\n",
        "properties": {
          "completed": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.FormCompletedAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "data": {
            "additionalProperties": true,
            "type": [
              "object",
              "null"
            ]
          },
          "form": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.form.v1.Form"
              },
              {
                "type": "null"
              }
            ]
          },
          "reassigned": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ReassignedAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "restarted": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.RestartAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "skipped": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.SkippedAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "state": {
            "description": "The state field.",
            "enum": [
              "FORM_INSTANCE_STATE_UNSPECIFIED",
              "FORM_INSTANCE_STATE_WAITING",
              "FORM_INSTANCE_STATE_DONE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Form Instance",
        "type": "object",
        "x-speakeasy-name-override": "FormInstance"
      },
      "c1.api.policy.v1.GetPolicyResponse": {
        "description": "The GetPolicyResponse message contains the policy object.",
        "properties": {
          "policy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.Policy"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get Policy Response",
        "type": "object",
        "x-speakeasy-name-override": "GetPolicyResponse"
      },
      "c1.api.policy.v1.GroupProvisioner": {
        "description": "GroupProvisioner resolves to members of a specific group.",
        "properties": {
          "allowReassignment": {
            "description": "Whether the provisioner can reassign the task.",
            "type": "boolean"
          },
          "appGroupId": {
            "description": "The app group ID (entitlement ID).",
            "type": "string"
          },
          "appId": {
            "description": "The app ID containing the group.",
            "type": "string"
          },
          "fallbackUserIds": {
            "description": "Fallback user IDs if no group members are found.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Group Provisioner",
        "type": "object",
        "x-speakeasy-name-override": "GroupProvisioner"
      },
      "c1.api.policy.v1.ListPolicyResponse": {
        "description": "The ListPolicyResponse message.",
        "properties": {
          "list": {
            "description": "The list of results containing up to X results, where X is the page size defined in the request",
            "items": {
              "$ref": "#/components/schemas/c1.api.policy.v1.Policy"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken is shown for the next page if the number of results is larger than the max page size. The server returns one page of results and the nextPageToken until all results are retreived. To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page.",
            "type": "string"
          }
        },
        "title": "List Policy Response",
        "type": "object",
        "x-speakeasy-name-override": "ListPolicyResponse"
      },
      "c1.api.policy.v1.ManagerApproval": {
        "description": "The manager approval object provides configuration options for approval when the target of the approval is the manager of the user in the task.",
        "properties": {
          "allowSelfApproval": {
            "description": "Configuration to allow self approval if the target user is their own manager. This may occur if a service account has an identity user and manager specified as the same person.",
            "type": "boolean"
          },
          "assignedUserIds": {
            "description": "The array of users determined to be the manager during processing time.",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "fallback": {
            "description": "Configuration to allow a fallback if no manager is found.",
            "type": "boolean"
          },
          "fallbackGroupIds": {
            "description": "Configuration to specify which groups to fallback to if fallback is enabled and no manager is found.",
            "items": {
              "$ref": "#/components/schemas/c1.api.policy.v1.AppEntitlementReference"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "fallbackUserIds": {
            "description": "Configuration to specific which users to fallback to if fallback is enabled and no manager is found.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "isGroupFallbackEnabled": {
            "description": "Configuration to enable fallback for group fallback.",
            "type": "boolean"
          },
          "requireDistinctApprovers": {
            "description": "Configuration to require distinct approvers across approval steps of a rule.",
            "type": "boolean"
          }
        },
        "title": "Manager Approval",
        "type": "object",
        "x-speakeasy-name-override": "ManagerApproval"
      },
      "c1.api.policy.v1.ManagerProvisioner": {
        "description": "ManagerProvisioner resolves to the user's manager.",
        "properties": {
          "allowReassignment": {
            "description": "Whether the provisioner can reassign the task.",
            "type": "boolean"
          },
          "fallbackUserIds": {
            "description": "Fallback user IDs if no manager is found.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Manager Provisioner",
        "type": "object",
        "x-speakeasy-name-override": "ManagerProvisioner"
      },
      "c1.api.policy.v1.ManualProvision": {
        "description": "Manual provisioning indicates that a human must intervene for the provisioning of this step.",
        "properties": {
          "assignee": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ProvisionerAssignment"
              },
              {
                "type": "null"
              }
            ]
          },
          "instructions": {
            "description": "This field indicates a text body of instructions for the provisioner to indicate.",
            "type": "string"
          },
          "userIds": {
            "description": "An array of users that are required to provision during this step.\n Deprecated: Use assignee field instead for dynamic provisioner assignment.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Manual Provision",
        "type": "object",
        "x-speakeasy-name-override": "ManualProvision"
      },
      "c1.api.policy.v1.MultiStep": {
        "description": "MultiStep indicates that this provision step has multiple steps to process.",
        "properties": {
          "provisionSteps": {
            "description": "The array of provision steps to process.",
            "items": {
              "$ref": "#/components/schemas/c1.api.policy.v1.ProvisionPolicy"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Multi Step",
        "type": "object",
        "x-speakeasy-name-override": "MultiStep"
      },
      "c1.api.policy.v1.Policy": {
        "description": "A policy defines a workflow (sequence of steps) that runs when processing\n access requests, reviews, or revocations. Policies support conditional\n routing: different conditions can trigger different step sequences, with a\n baseline fallback.",
        "properties": {
          "annotations": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Key/value metadata. Up to 16 entries; keys 1-128 chars; values 0-256\n chars; URL-safe ASCII. Keys starting with `c1/` are reserved.\n\n Updates have PATCH semantics: keys absent from the request are\n preserved; an empty value deletes the key.\n\n Well-known keys: `managed_by`, `iac_workspace`,\n `iac_resource_address`, `iac_tool_version`.",
            "type": "object",
            "x-speakeasy-terraform-plan-modifier": {
              "imports": [
                "github.com/conductorone/terraform-provider-conductorone/internal/annotations"
              ],
              "schemaDefinition": "annotations.PlanModifier()"
            }
          },
          "baselinePolicyId": {
            "description": "When set, the baseline defers to another policy of the same type when no\n rule matches, instead of the baseline entry in policy_steps (keyed by the\n lowercased policy_type). Mutually exclusive with that baseline entry: set\n one or the other, not both. The referenced policy must share this\n policy's policy_type, must not introduce a cycle or self-reference, and\n must not push any reachable chain over depth 5. Gated by the\n POLICY_REFERENCES_POLICY feature flag.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "The description of the Policy.",
            "type": "string"
          },
          "displayName": {
            "description": "The display name of the Policy.",
            "type": "string"
          },
          "id": {
            "description": "The ID of the Policy.",
            "readOnly": true,
            "type": "string"
          },
          "policySteps": {
            "additionalProperties": {
              "$ref": "#/components/schemas/c1.api.policy.v1.PolicySteps"
            },
            "description": "A map from string keys to step sequences. One entry is always the baseline,\n keyed by the lowercased policy_type (e.g., \"grant\", \"revoke\", \"certify\").\n Additional entries have opaque keys (UUIDs) and are referenced by the rules\n array for conditional routing. If no conditional rules are configured, only\n the baseline entry exists.",
            "type": "object"
          },
          "policyType": {
            "description": "The type of this policy (grant, revoke, or certify). The lowercased type\n name (e.g., \"grant\") is also the key for the baseline entry in policy_steps.",
            "enum": [
              "POLICY_TYPE_UNSPECIFIED",
              "POLICY_TYPE_GRANT",
              "POLICY_TYPE_REVOKE",
              "POLICY_TYPE_CERTIFY",
              "POLICY_TYPE_ACCESS_REQUEST",
              "POLICY_TYPE_PROVISION"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "postActions": {
            "description": "Ordered actions to execute after the policy completes processing.",
            "items": {
              "$ref": "#/components/schemas/c1.api.policy.v1.PolicyPostActions"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "reassignTasksToDelegates": {
            "deprecated": true,
            "description": "This field is no longer used. Configure delegate reassignment in the policy step instead.",
            "type": "boolean"
          },
          "rules": {
            "description": "Ordered conditional routing rules. Evaluated top-to-bottom; the first\n matching rule selects a step sequence from policy_steps. If no rule matches\n (or if this array is empty), the baseline entry in policy_steps is used.\n The public Create and Update APIs enforce the tenant's conditional-rules-per-policy quota\n (default 16), excluding the baseline. Through the public Update API, an existing\n above-quota policy may keep or reduce its rule count, but cannot increase it.\n Contact support to adjust this tenant quota. The rule-count quota is not a policy-size limit.",
            "items": {
              "$ref": "#/components/schemas/c1.api.policy.v1.Rule"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "scope": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.PolicyScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "systemBuiltin": {
            "description": "Whether this policy is a builtin system policy. Builtin system policies cannot be edited.",
            "readOnly": true,
            "type": "boolean"
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Policy",
        "type": "object",
        "x-speakeasy-entity": "Policy",
        "x-speakeasy-name-override": "Policy"
      },
      "c1.api.policy.v1.PolicyInstance": {
        "description": "A policy instance is an object that contains a reference to the policy it was created from, the currently executing step, the next steps, and the history of previously completed steps.",
        "properties": {
          "current": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.PolicyStepInstance"
              },
              {
                "type": "null"
              }
            ]
          },
          "history": {
            "description": "An array of steps that were previously processed by the ticket with their outcomes set, in order.",
            "items": {
              "$ref": "#/components/schemas/c1.api.policy.v1.PolicyStepInstance"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "next": {
            "description": "An array of steps that will be processed by the ticket, in order.",
            "items": {
              "$ref": "#/components/schemas/c1.api.policy.v1.PolicyStep"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "policy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.Policy"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Policy Instance",
        "type": "object",
        "x-speakeasy-name-override": "PolicyInstance"
      },
      "c1.api.policy.v1.PolicyPostActions": {
        "description": "Actions to execute after a policy finishes processing.\n\nThis message contains a oneof named action. Only a single field of the following list may be set at a time:\n  - certifyRemediateImmediately\n",
        "properties": {
          "certifyRemediateImmediately": {
            "description": "Only valid on certify policies. When true, any revocations resulting from\n the certification are applied immediately when the campaign task closes.\nThis field is part of the `action` oneof.\nSee the documentation for `c1.api.policy.v1.PolicyPostActions` for more details.",
            "type": [
              "boolean",
              "null"
            ]
          }
        },
        "title": "Policy Post Actions",
        "type": "object",
        "x-speakeasy-name-override": "PolicyPostActions"
      },
      "c1.api.policy.v1.PolicyRef": {
        "description": "The PolicyRef message.",
        "properties": {
          "id": {
            "description": "The id field.",
            "type": "string"
          }
        },
        "title": "Policy Ref",
        "type": "object",
        "x-speakeasy-name-override": "PolicyRef"
      },
      "c1.api.policy.v1.PolicyScope": {
        "description": "Scopes a policy to an app or to a single entitlement within an app.",
        "properties": {
          "appEntitlementId": {
            "description": "Optional. When set, the policy is scoped to this entitlement of app_id\n rather than to the whole app.",
            "type": "string"
          },
          "appId": {
            "description": "The ID of the app this policy is scoped to.",
            "type": "string"
          },
          "slot": {
            "description": "Which of the object's local-policy slots this policy occupies. Part of the\n scope, and immutable with it.",
            "enum": [
              "POLICY_SCOPE_SLOT_UNSPECIFIED",
              "POLICY_SCOPE_SLOT_EMERGENCY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Policy Scope",
        "type": "object",
        "x-speakeasy-name-override": "PolicyScope"
      },
      "c1.api.policy.v1.PolicyStep": {
        "description": "A single step in a policy workflow. Exactly one step type is set.\n\nThis message contains a oneof named step. Only a single field of the following list may be set at a time:\n  - approval\n  - provision\n  - accept\n  - reject\n  - wait\n  - form\n  - action\n",
        "properties": {
          "accept": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.Accept"
              },
              {
                "type": "null"
              }
            ]
          },
          "action": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.Action"
              },
              {
                "type": "null"
              }
            ]
          },
          "approval": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.Approval"
              },
              {
                "type": "null"
              }
            ]
          },
          "form": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.Form"
              },
              {
                "type": "null"
              }
            ]
          },
          "provision": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.Provision"
              },
              {
                "type": "null"
              }
            ]
          },
          "reject": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.Reject"
              },
              {
                "type": "null"
              }
            ]
          },
          "wait": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.Wait"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Policy Step",
        "type": "object",
        "x-speakeasy-name-override": "PolicyStep"
      },
      "c1.api.policy.v1.PolicyStepInstance": {
        "description": "The policy step instance includes a reference to an instance of a policy step that tracks state and has a unique ID.\n\nThis message contains a oneof named instance. Only a single field of the following list may be set at a time:\n  - approval\n  - provision\n  - accept\n  - reject\n  - wait\n  - form\n  - action\n",
        "properties": {
          "accept": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.AcceptInstance"
              },
              {
                "type": "null"
              }
            ]
          },
          "action": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ActionInstance"
              },
              {
                "type": "null"
              }
            ]
          },
          "approval": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ApprovalInstance"
              },
              {
                "type": "null"
              }
            ]
          },
          "form": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.FormInstance"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "description": "The ID of the PolicyStepInstance. This is required by many action submission endpoints to indicate what step you're approving.",
            "readOnly": true,
            "type": "string"
          },
          "policyGenerationId": {
            "description": "The policy generation id refers to the version of the policy that this step was created from.",
            "type": "string"
          },
          "provision": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ProvisionInstance"
              },
              {
                "type": "null"
              }
            ]
          },
          "reject": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.RejectInstance"
              },
              {
                "type": "null"
              }
            ]
          },
          "state": {
            "description": "The state of the step, which is either active or done.",
            "enum": [
              "POLICY_STEP_STATE_UNSPECIFIED",
              "POLICY_STEP_STATE_ACTIVE",
              "POLICY_STEP_STATE_DONE"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "wait": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.WaitInstance"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Policy Step Instance",
        "type": "object",
        "x-speakeasy-name-override": "PolicyStepInstance"
      },
      "c1.api.policy.v1.PolicySteps": {
        "description": "A named sequence of steps that execute in order within a policy.",
        "properties": {
          "steps": {
            "description": "Ordered array of steps. Each step is a oneof -- exactly one step type is\n set per entry. Steps execute sequentially.",
            "items": {
              "$ref": "#/components/schemas/c1.api.policy.v1.PolicyStep"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Policy Steps",
        "type": "object",
        "x-speakeasy-name-override": "PolicySteps"
      },
      "c1.api.policy.v1.Provision": {
        "description": "The provision step references a provision policy for this step.",
        "properties": {
          "assigned": {
            "description": "A field indicating whether this step is assigned.",
            "type": "boolean"
          },
          "provisionPolicy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ProvisionPolicy"
              },
              {
                "type": "null"
              }
            ]
          },
          "provisionTarget": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ProvisionTarget"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Provision",
        "type": "object",
        "x-speakeasy-name-override": "Provision"
      },
      "c1.api.policy.v1.ProvisionInstance": {
        "description": "A provision instance describes the specific configuration of an executing provision policy step including actions taken and notification id.\n\nThis message contains a oneof named outcome. Only a single field of the following list may be set at a time:\n  - completed\n  - cancelled\n  - errored\n  - reassignedByError\n  - skipped\n",
        "properties": {
          "batonActionInvocationId": {
            "description": "This indicates the account lifecycle action id for this step.",
            "type": "string"
          },
          "cancelled": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.CancelledAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "completed": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.CompletedAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "errored": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ErroredAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "externalTicketId": {
            "description": "This indicates the external ticket id for this step.",
            "type": "string"
          },
          "externalTicketProvisionerConfigId": {
            "description": "This indicates the external ticket provisioner config id for this step.",
            "type": "string"
          },
          "notificationId": {
            "description": "This indicates the notification id for this step.",
            "type": "string"
          },
          "provision": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.Provision"
              },
              {
                "type": "null"
              }
            ]
          },
          "reassignedByError": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ReassignedByErrorAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "skipped": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.SkippedAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "state": {
            "description": "This property indicates the current state of this step.",
            "enum": [
              "PROVISION_INSTANCE_STATE_UNSPECIFIED",
              "PROVISION_INSTANCE_STATE_INIT",
              "PROVISION_INSTANCE_STATE_CREATE_CONNECTOR_ACTIONS_FOR_TARGET",
              "PROVISION_INSTANCE_STATE_SENDING_NOTIFICATIONS",
              "PROVISION_INSTANCE_STATE_WAITING",
              "PROVISION_INSTANCE_STATE_WEBHOOK",
              "PROVISION_INSTANCE_STATE_WEBHOOK_WAITING",
              "PROVISION_INSTANCE_STATE_EXTERNAL_TICKET",
              "PROVISION_INSTANCE_STATE_EXTERNAL_TICKET_WAITING",
              "PROVISION_INSTANCE_STATE_ACCOUNT_LIFECYCLE_ACTIONS",
              "PROVISION_INSTANCE_STATE_ACCOUNT_LIFECYCLE_ACTIONS_WAITING",
              "PROVISION_INSTANCE_STATE_DEVICE_PLACEMENT",
              "PROVISION_INSTANCE_STATE_DONE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "waitingOn": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ProvisionWaitingOn"
              },
              {
                "type": "null"
              }
            ]
          },
          "webhookId": {
            "description": "This indicates the webhook id for this step.",
            "type": "string"
          },
          "webhookInstanceId": {
            "description": "This indicates the webhook instance id for this step.",
            "type": "string"
          }
        },
        "title": "Provision Instance",
        "type": "object",
        "x-speakeasy-name-override": "ProvisionInstance"
      },
      "c1.api.policy.v1.ProvisionPolicy": {
        "description": "ProvisionPolicy is a oneOf that indicates how a provision step should be processed.\n\nThis message contains a oneof named typ. Only a single field of the following list may be set at a time:\n  - connector\n  - manual\n  - delegated\n  - webhook\n  - multiStep\n  - externalTicket\n  - unconfigured\n  - action\n  - devicePlacement\n",
        "properties": {
          "action": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ActionProvision"
              },
              {
                "type": "null"
              }
            ]
          },
          "connector": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ConnectorProvision"
              },
              {
                "type": "null"
              }
            ]
          },
          "delegated": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.DelegatedProvision"
              },
              {
                "type": "null"
              }
            ]
          },
          "devicePlacement": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.DevicePlacementProvision"
              },
              {
                "type": "null"
              }
            ]
          },
          "externalTicket": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ExternalTicketProvision"
              },
              {
                "type": "null"
              }
            ]
          },
          "manual": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ManualProvision"
              },
              {
                "type": "null"
              }
            ]
          },
          "multiStep": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.MultiStep"
              },
              {
                "type": "null"
              }
            ]
          },
          "unconfigured": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.UnconfiguredProvision"
              },
              {
                "type": "null"
              }
            ]
          },
          "webhook": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.WebhookProvision"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Provision Policy",
        "type": "object",
        "x-speakeasy-name-override": "ProvisionPolicy"
      },
      "c1.api.policy.v1.ProvisionTarget": {
        "description": "ProvisionTarget indicates the specific app, app entitlement, and if known, the app user and grant duration of this provision step",
        "properties": {
          "appEntitlementId": {
            "description": "The app entitlement that should be provisioned.",
            "type": "string"
          },
          "appId": {
            "description": "The app in which the entitlement should be provisioned",
            "type": "string"
          },
          "appUserId": {
            "description": "The app user that should be provisioned. May be unset if the app user is unknown",
            "type": "string"
          },
          "grantDuration": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Provision Target",
        "type": "object",
        "x-speakeasy-name-override": "ProvisionTarget"
      },
      "c1.api.policy.v1.ProvisionWaitingOn": {
        "description": "Describes why a provision step is paused in the WAITING state.\n\nThis message contains a oneof named kind. Only a single field of the following list may be set at a time:\n  - entitlementMerge\n  - devicePlacement\n",
        "properties": {
          "devicePlacement": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.WaitingForDevicePlacement"
              },
              {
                "type": "null"
              }
            ]
          },
          "entitlementMerge": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.WaitingForEntitlementMerge"
              },
              {
                "type": "null"
              }
            ]
          },
          "fallbackAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "startedWaitingAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Provision Waiting On",
        "type": "object",
        "x-speakeasy-name-override": "ProvisionWaitingOn"
      },
      "c1.api.policy.v1.ProvisionerAssignment": {
        "description": "ProvisionerAssignment defines how a provisioner is dynamically assigned.\n\nThis message contains a oneof named typ. Only a single field of the following list may be set at a time:\n  - users\n  - appOwners\n  - group\n  - manager\n  - expression\n  - entitlementOwners\n",
        "properties": {
          "appOwners": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.AppOwnerProvisioner"
              },
              {
                "type": "null"
              }
            ]
          },
          "entitlementOwners": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.EntitlementOwnerProvisioner"
              },
              {
                "type": "null"
              }
            ]
          },
          "expression": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ExpressionProvisioner"
              },
              {
                "type": "null"
              }
            ]
          },
          "group": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.GroupProvisioner"
              },
              {
                "type": "null"
              }
            ]
          },
          "manager": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ManagerProvisioner"
              },
              {
                "type": "null"
              }
            ]
          },
          "users": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.UserProvisioner"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Provisioner Assignment",
        "type": "object",
        "x-speakeasy-name-override": "ProvisionerAssignment"
      },
      "c1.api.policy.v1.ReassignedAction": {
        "description": "The ReassignedAction object describes the outcome of a policy step that has been reassigned.",
        "properties": {
          "newPolicyStepId": {
            "description": "The ID of the policy step that was created as a result of this reassignment.",
            "readOnly": true,
            "type": "string"
          },
          "reassignedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "userId": {
            "description": "The UserID of the person who reassigned this step.",
            "readOnly": true,
            "type": "string"
          }
        },
        "title": "Reassigned Action",
        "type": "object",
        "x-speakeasy-name-override": "ReassignedAction"
      },
      "c1.api.policy.v1.ReassignedByErrorAction": {
        "description": "The ReassignedByErrorAction object describes the outcome of a policy step that has been reassigned because it had an error provisioning.",
        "properties": {
          "description": {
            "description": "The description of the error with more details on why this was reassigned.",
            "readOnly": true,
            "type": "string"
          },
          "errorCode": {
            "description": "Additional information about the error, like http status codes or error messages from SDKs.",
            "readOnly": true,
            "type": "string"
          },
          "errorUserId": {
            "description": "The UserID of the user who reassigned this due to an error. This will exclusively be the System's UserID.",
            "readOnly": true,
            "type": "string"
          },
          "erroredAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "newPolicyStepId": {
            "description": "The ID of the policy step that was created by this reassignment.",
            "readOnly": true,
            "type": "string"
          },
          "reassignedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Reassigned By Error Action",
        "type": "object",
        "x-speakeasy-name-override": "ReassignedByErrorAction"
      },
      "c1.api.policy.v1.Reject": {
        "description": "This policy step indicates that a ticket should have a denied outcome. This is a terminal approval state and is used to explicitly define the end of approval steps.",
        "properties": {
          "rejectMessage": {
            "description": "An optional message to include in the comments when a task is automatically rejected.",
            "type": "string"
          }
        },
        "title": "Reject",
        "type": "object",
        "x-speakeasy-name-override": "Reject"
      },
      "c1.api.policy.v1.RejectInstance": {
        "description": "This policy step indicates that a ticket should have a denied outcome. This is a terminal approval state and is used to explicitly define the end of approval steps.\n The instance is just a marker for it being copied into an active policy.",
        "properties": {
          "rejectMessage": {
            "description": "An optional message to include in the comments when a task is automatically rejected.",
            "type": "string"
          }
        },
        "title": "Reject Instance",
        "type": "object",
        "x-speakeasy-name-override": "RejectInstance"
      },
      "c1.api.policy.v1.ResourceOwnerApproval": {
        "description": "The resource owner approval allows configuration of the approval step when the target approvers are the resource owners.",
        "properties": {
          "allowSelfApproval": {
            "description": "Configuration to allow self approval if the target user is an resource owner during this step.",
            "type": "boolean"
          },
          "fallback": {
            "description": "Configuration to allow a fallback if the resource owner cannot be identified.",
            "type": "boolean"
          },
          "fallbackGroupIds": {
            "description": "Configuration to specify which groups to fallback to if fallback is enabled and the resource owner cannot be identified.",
            "items": {
              "$ref": "#/components/schemas/c1.api.policy.v1.AppEntitlementReference"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "fallbackUserIds": {
            "description": "Configuration to specific which users to fallback to if fallback is enabled and the resource owner cannot be identified.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "isGroupFallbackEnabled": {
            "description": "Configuration to enable fallback for group fallback.",
            "type": "boolean"
          },
          "requireDistinctApprovers": {
            "description": "Configuration to require distinct approvers across approval steps of a rule.",
            "type": "boolean"
          }
        },
        "title": "Resource Owner Approval",
        "type": "object",
        "x-speakeasy-name-override": "ResourceOwnerApproval"
      },
      "c1.api.policy.v1.RestartAction": {
        "description": "The restart action describes the outcome of policy steps for when the task was restarted. This can be applied to multiple steps since restart skips all pending next steps.",
        "properties": {
          "oldPolicyStepId": {
            "description": "The step ID that was restarted. Potentially multiple \"history\" steps will reference this ID to indicate by what step they were restarted.",
            "readOnly": true,
            "type": "string"
          },
          "restartedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "userId": {
            "description": "The user that submitted the restart action.",
            "readOnly": true,
            "type": "string"
          }
        },
        "title": "Restart Action",
        "type": "object",
        "x-speakeasy-name-override": "RestartAction"
      },
      "c1.api.policy.v1.Rule": {
        "description": "A conditional routing rule that maps a CEL expression to an outcome.\n Rules are evaluated top-to-bottom; the first matching rule's outcome\n determines which steps run. If the outcome is policy_key, the step sequence\n of that key in this policy's policy_steps map is used. If the outcome is\n policy_id, the referenced policy is evaluated recursively (depth-bounded,\n cycle-free, same policy_type). If no rule matches, the baseline entry of\n policy_steps is used.\n\nThis message contains a oneof named outcome. Only a single field of the following list may be set at a time:\n  - stepKey\n  - policyId\n",
        "properties": {
          "condition": {
            "description": "A CEL expression that is evaluated against the request context. If it\n returns true, the step sequence identified by the outcome is used.",
            "type": "string"
          },
          "policyId": {
            "description": "The ID of another Policy that is evaluated recursively when this\n rule matches. The referenced policy must share this policy's\n policy_type, must not introduce a cycle, and must not push any\n reachable chain over depth 5. Gated by the\n POLICY_REFERENCES_POLICY feature flag.\nThis field is part of the `outcome` oneof.\nSee the documentation for `c1.api.policy.v1.Rule` for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "policyKey": {
            "deprecated": true,
            "description": "Deprecated: prefer outcome.step_key. Still read by the request path\n for backward compatibility with rules persisted before the outcome\n oneof existed.",
            "type": "string",
            "x-sunset": "2027-05-30"
          },
          "stepKey": {
            "description": "A key into the policy's policy_steps map identifying which step\n sequence to execute when this rule's condition matches.\nThis field is part of the `outcome` oneof.\nSee the documentation for `c1.api.policy.v1.Rule` for more details.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Rule",
        "type": "object",
        "x-speakeasy-name-override": "Rule"
      },
      "c1.api.policy.v1.SearchPoliciesRequest": {
        "description": "Search Policies by a few properties.",
        "properties": {
          "displayName": {
            "description": "Search for policies with a case insensitive match on the display name.",
            "type": "string"
          },
          "excludePolicyIds": {
            "description": "The policy IDs to exclude from the search.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "includeDeleted": {
            "description": "The includeDeleted field.",
            "type": "boolean"
          },
          "pageSize": {
            "description": "The pageSize where 0 \u003c= pageSize \u003c= 100. Values \u003c 10 will be set to 10. A value of 0 returns the default page size (currently 25)",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          },
          "policyTypes": {
            "description": "The policy type to search on. This can be POLICY_TYPE_GRANT, POLICY_TYPE_REVOKE, POLICY_TYPE_CERTIFY, POLICY_TYPE_ACCESS_REQUEST, or POLICY_TYPE_PROVISION.",
            "items": {
              "enum": [
                "POLICY_TYPE_UNSPECIFIED",
                "POLICY_TYPE_GRANT",
                "POLICY_TYPE_REVOKE",
                "POLICY_TYPE_CERTIFY",
                "POLICY_TYPE_ACCESS_REQUEST",
                "POLICY_TYPE_PROVISION"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "query": {
            "description": "Query the policies with a fuzzy search on display name and description.",
            "type": "string"
          },
          "refs": {
            "description": "The refs field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.policy.v1.PolicyRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "scopeAppEntitlementId": {
            "description": "When scope_view is POLICY_SCOPE_VIEW_SCOPED, only return policies scoped\n to this entitlement.",
            "type": "string"
          },
          "scopeAppId": {
            "description": "When scope_view is POLICY_SCOPE_VIEW_SCOPED, only return policies scoped\n to this app.",
            "type": "string"
          },
          "scopeObjectType": {
            "description": "When scope_view is POLICY_SCOPE_VIEW_SCOPED, narrow local policies to a\n coarse object type (app-local vs entitlement-local).",
            "enum": [
              "POLICY_SCOPE_OBJECT_TYPE_UNSPECIFIED",
              "POLICY_SCOPE_OBJECT_TYPE_APP",
              "POLICY_SCOPE_OBJECT_TYPE_ENTITLEMENT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "scopeSlot": {
            "description": "When scope_view narrows to one object, only return that object's local\n policies in this slot. Ignored when no object is identified by\n scope_app_id, which lists every local policy regardless of slot.",
            "enum": [
              "POLICY_SCOPE_SLOT_UNSPECIFIED",
              "POLICY_SCOPE_SLOT_EMERGENCY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "scopeView": {
            "description": "Which policies to return based on scope. Defaults to global-only, so\n app/entitlement-scoped policies never appear unless explicitly requested.\n Ignored when refs are provided (explicit ID lookups always resolve).",
            "enum": [
              "POLICY_SCOPE_VIEW_UNSPECIFIED",
              "POLICY_SCOPE_VIEW_GLOBAL",
              "POLICY_SCOPE_VIEW_SCOPED",
              "POLICY_SCOPE_VIEW_ALL",
              "POLICY_SCOPE_VIEW_GLOBAL_AND_OBJECT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Search Policies Request",
        "type": "object",
        "x-speakeasy-name-override": "SearchPoliciesRequest"
      },
      "c1.api.policy.v1.SearchPoliciesResponse": {
        "description": "The SearchPoliciesResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.policy.v1.Policy"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Search Policies Response",
        "type": "object",
        "x-speakeasy-name-override": "SearchPoliciesResponse"
      },
      "c1.api.policy.v1.SelfApproval": {
        "description": "The self approval object describes the configuration of a policy step that needs to be approved by the target of the request.",
        "properties": {
          "assignedUserIds": {
            "description": "The array of users determined to be themselves during approval. This should only ever be one person, but is saved because it may change if the owner of an app user changes while the ticket is open.",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "fallback": {
            "description": "Configuration to allow a fallback if the identity user of the target app user cannot be determined.",
            "type": "boolean"
          },
          "fallbackGroupIds": {
            "description": "Configuration to specify which groups to fallback to if fallback is enabled and the identity user of the target app user cannot be determined.",
            "items": {
              "$ref": "#/components/schemas/c1.api.policy.v1.AppEntitlementReference"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "fallbackUserIds": {
            "description": "Configuration to specific which users to fallback to if fallback is enabled and the identity user of the target app user cannot be determined.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "isGroupFallbackEnabled": {
            "description": "Configuration to enable fallback for group fallback.",
            "type": "boolean"
          }
        },
        "title": "Self Approval",
        "type": "object",
        "x-speakeasy-name-override": "SelfApproval"
      },
      "c1.api.policy.v1.SkippedAction": {
        "description": "The SkippedAction object describes the outcome of a policy step that has been skipped.",
        "properties": {
          "newPolicyStepId": {
            "description": "The ID of the policy step that was created as a result of this skipping.",
            "readOnly": true,
            "type": "string"
          },
          "skippedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "userId": {
            "description": "The UserID of the user who skipped this step.",
            "readOnly": true,
            "type": "string"
          }
        },
        "title": "Skipped Action",
        "type": "object",
        "x-speakeasy-name-override": "SkippedAction"
      },
      "c1.api.policy.v1.TestAccountProvisionPolicyRequest": {
        "description": "TestAccountProvisionPolicyRequest is the request for testing an account provision policy.",
        "properties": {
          "cel": {
            "description": "The CEL expression to evaluate for the account provision policy.",
            "type": "string"
          }
        },
        "title": "Test Account Provision Policy Request",
        "type": "object",
        "x-speakeasy-name-override": "TestAccountProvisionPolicyRequest"
      },
      "c1.api.policy.v1.TestAccountProvisionPolicyResponse": {
        "description": "TestAccountProvisionPolicyResponse is the response for testing an account provision policy.",
        "properties": {
          "type": {
            "description": "The data type of the computed result value.",
            "type": "string"
          },
          "value": {
            "description": "The computed result value of the CEL expression evaluation.",
            "type": "string"
          }
        },
        "title": "Test Account Provision Policy Response",
        "type": "object",
        "x-speakeasy-name-override": "TestAccountProvisionPolicyResponse"
      },
      "c1.api.policy.v1.UnconfiguredProvision": {
        "description": "The UnconfiguredProvision message.",
        "title": "Unconfigured Provision",
        "type": "object",
        "x-speakeasy-name-override": "UnconfiguredProvision"
      },
      "c1.api.policy.v1.UpdatePolicyRequestInput": {
        "description": "The UpdatePolicyRequest message contains the policy object to update and a field mask to indicate which fields to update. It uses URL value for input.",
        "properties": {
          "policy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.Policy"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Update Policy Request",
        "type": "object",
        "x-speakeasy-name-override": "UpdatePolicyRequest"
      },
      "c1.api.policy.v1.UpdatePolicyResponse": {
        "description": "The UpdatePolicyResponse message contains the updated policy object.",
        "properties": {
          "policy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.Policy"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Update Policy Response",
        "type": "object",
        "x-speakeasy-name-override": "UpdatePolicyResponse"
      },
      "c1.api.policy.v1.UserApproval": {
        "description": "The user approval object describes the approval configuration of a policy step that needs to be approved by a specific list of users.",
        "properties": {
          "allowSelfApproval": {
            "description": "Configuration to allow self approval of if the user is specified and also the target of the ticket.",
            "type": "boolean"
          },
          "requireDistinctApprovers": {
            "description": "Configuration to require distinct approvers across approval steps of a rule.",
            "type": "boolean"
          },
          "userIds": {
            "description": "Array of users configured for approval.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "User Approval",
        "type": "object",
        "x-speakeasy-name-override": "UserApproval"
      },
      "c1.api.policy.v1.UserProvisioner": {
        "description": "UserProvisioner assigns specific users as provisioners.",
        "properties": {
          "allowReassignment": {
            "description": "Whether the provisioner can reassign the task.",
            "type": "boolean"
          },
          "userIds": {
            "description": "The user IDs to assign as provisioners.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "User Provisioner",
        "type": "object",
        "x-speakeasy-name-override": "UserProvisioner"
      },
      "c1.api.policy.v1.Wait": {
        "description": "Define a Wait step for a policy to wait on a condition to be met.\n\nThis message contains a oneof named until. Only a single field of the following list may be set at a time:\n  - condition\n  - duration\n  - untilTime\n",
        "properties": {
          "commentOnFirstWait": {
            "description": "The comment to post on first failed check.",
            "type": "string"
          },
          "commentOnTimeout": {
            "description": "The comment to post if we timeout.",
            "type": "string"
          },
          "condition": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.WaitCondition"
              },
              {
                "type": "null"
              }
            ]
          },
          "duration": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.WaitDuration"
              },
              {
                "type": "null"
              }
            ]
          },
          "name": {
            "description": "The name of our condition to show on the task details page",
            "type": "string"
          },
          "timeoutDuration": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "untilTime": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.WaitUntilTime"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Wait",
        "type": "object",
        "x-speakeasy-name-override": "Wait"
      },
      "c1.api.policy.v1.WaitCondition": {
        "description": "The WaitCondition message.",
        "properties": {
          "condition": {
            "description": "The condition that has to be true for this wait condition to continue.",
            "type": "string"
          }
        },
        "title": "Wait Condition",
        "type": "object",
        "x-speakeasy-name-override": "WaitCondition"
      },
      "c1.api.policy.v1.WaitConditionInstance": {
        "description": "Used by the policy engine to describe an instantiated condition to wait on.",
        "properties": {
          "condition": {
            "description": "The condition that has to be true for this wait condition instance to continue.",
            "type": "string"
          }
        },
        "title": "Wait Condition Instance",
        "type": "object",
        "x-speakeasy-name-override": "WaitConditionInstance"
      },
      "c1.api.policy.v1.WaitDuration": {
        "description": "The WaitDuration message.",
        "properties": {
          "duration": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Wait Duration",
        "type": "object",
        "x-speakeasy-name-override": "WaitDuration"
      },
      "c1.api.policy.v1.WaitInstance": {
        "description": "Used by the policy engine to describe an instantiated wait step.\n\nThis message contains a oneof named until. Only a single field of the following list may be set at a time:\n  - condition\n  - untilTime\n\n\nThis message contains a oneof named outcome. Only a single field of the following list may be set at a time:\n  - succeeded\n  - timedOut\n  - skipped\n",
        "properties": {
          "commentOnFirstWait": {
            "description": "The comment to post on first failed check.",
            "type": "string"
          },
          "commentOnTimeout": {
            "description": "The comment to post if we timeout.",
            "type": "string"
          },
          "condition": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.WaitConditionInstance"
              },
              {
                "type": "null"
              }
            ]
          },
          "name": {
            "description": "The name field.",
            "type": "string"
          },
          "skipped": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.SkippedAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "startedWaitingAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "state": {
            "description": "The state field.",
            "enum": [
              "WAIT_INSTANCE_STATE_UNSPECIFIED",
              "WAIT_INSTANCE_STATE_WAITING",
              "WAIT_INSTANCE_STATE_COMPLETED",
              "WAIT_INSTANCE_STATE_TIMED_OUT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "succeeded": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.WaitInstance.ConditionSucceeded"
              },
              {
                "type": "null"
              }
            ]
          },
          "timedOut": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.WaitInstance.ConditionTimedOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "timeout": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "timeoutDuration": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "untilTime": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.WaitUntilTimeInstance"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Wait Instance",
        "type": "object",
        "x-speakeasy-name-override": "WaitInstance"
      },
      "c1.api.policy.v1.WaitInstance.ConditionSucceeded": {
        "description": "The ConditionSucceeded message.",
        "properties": {
          "succeededAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Condition Succeeded",
        "type": "object",
        "x-speakeasy-name-override": "ConditionSucceeded"
      },
      "c1.api.policy.v1.WaitInstance.ConditionTimedOut": {
        "description": "The ConditionTimedOut message.",
        "properties": {
          "timedOutAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Condition Timed Out",
        "type": "object",
        "x-speakeasy-name-override": "ConditionTimedOut"
      },
      "c1.api.policy.v1.WaitUntilTime": {
        "description": "Waits until a specific time of the day (UTC)",
        "properties": {
          "hours": {
            "description": "The hours field.",
            "format": "uint32",
            "type": "integer"
          },
          "minutes": {
            "description": "The minutes field.",
            "format": "uint32",
            "type": "integer"
          },
          "timezone": {
            "description": "The timezone field.",
            "type": "string"
          }
        },
        "title": "Wait Until Time",
        "type": "object",
        "x-speakeasy-name-override": "WaitUntilTime"
      },
      "c1.api.policy.v1.WaitUntilTimeInstance": {
        "description": "The WaitUntilTimeInstance message.",
        "properties": {
          "durationIfExists": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "untilTime": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Wait Until Time Instance",
        "type": "object",
        "x-speakeasy-name-override": "WaitUntilTimeInstance"
      },
      "c1.api.policy.v1.WaitingForDevicePlacement": {
        "description": "Describes a provision step that is paused until the recipient joins the vault's MLS group.",
        "properties": {
          "recipientUserId": {
            "description": "The ID of the user being placed.",
            "type": "string"
          },
          "vaultBoundaryId": {
            "description": "The ID of the vault boundary the recipient is being placed in.",
            "type": "string"
          }
        },
        "title": "Waiting For Device Placement",
        "type": "object",
        "x-speakeasy-name-override": "WaitingForDevicePlacement"
      },
      "c1.api.policy.v1.WaitingForEntitlementMerge": {
        "description": "Describes a provision step that is paused until the target entitlement, created ahead of connector sync with a Baton match ID, is merged with its connector-synced counterpart.",
        "properties": {
          "appEntitlementId": {
            "description": "The ID of the entitlement being waited on.",
            "type": "string"
          },
          "appId": {
            "description": "The ID of the app the awaited entitlement belongs to.",
            "type": "string"
          }
        },
        "title": "Waiting For Entitlement Merge",
        "type": "object",
        "x-speakeasy-name-override": "WaitingForEntitlementMerge"
      },
      "c1.api.policy.v1.WebhookApproval": {
        "description": "The WebhookApproval message.",
        "properties": {
          "webhookId": {
            "description": "The ID of the webhook to call for approval.",
            "type": "string"
          }
        },
        "title": "Webhook Approval",
        "type": "object",
        "x-speakeasy-name-override": "WebhookApproval"
      },
      "c1.api.policy.v1.WebhookProvision": {
        "description": "This provision step indicates that a webhook should be called to provision this entitlement.",
        "properties": {
          "webhookId": {
            "description": "The ID of the webhook to call for provisioning.",
            "type": "string"
          }
        },
        "title": "Webhook Provision",
        "type": "object",
        "x-speakeasy-name-override": "WebhookProvision"
      },
      "c1.api.profiletype.v1.ProfileType": {
        "description": "ProfileType represents a type of profile in the system",
        "properties": {
          "description": {
            "description": "The description field.",
            "type": "string"
          },
          "displayToUser": {
            "description": "Whether to display this profile type to users in profile page. Defaults to false if not set",
            "type": "boolean"
          },
          "iconUrl": {
            "description": "The iconUrl field.",
            "type": "string"
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "name": {
            "description": "The name field.",
            "type": "string"
          },
          "priority": {
            "description": "The priority field.",
            "format": "uint32",
            "type": "integer"
          },
          "sizes": {
            "description": "icon sizes",
            "items": {
              "format": "int32",
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "slug": {
            "description": "Add this field to allow users to reference profile type in cel expressions",
            "type": "string"
          }
        },
        "title": "Profile Type",
        "type": "object",
        "x-speakeasy-name-override": "ProfileType"
      },
      "c1.api.reporting.v1.ProgramRef": {
        "description": "ProgramRef identifies a report's own copy of an executable program.",
        "properties": {
          "commitId": {
            "deprecated": true,
            "description": "The commitId field.",
            "type": "string"
          },
          "functionId": {
            "deprecated": true,
            "description": "Deprecated tombstones. Source-owned reports never populate Function or\n commit identity; these declarations remain only because c1api forbids\n deleting published fields.",
            "type": "string"
          },
          "plannedFromPrompt": {
            "description": "The prompt this program was planned from. Report.prompt is editable and a\n refresh never re-plans, so this is the only way to detect that a report's\n question has drifted from the program answering it.",
            "type": "string"
          },
          "programId": {
            "description": "Identifies this durable source version. Minted for each save.",
            "type": "string"
          }
        },
        "title": "Program Ref",
        "type": "object",
        "x-speakeasy-name-override": "ProgramRef"
      },
      "c1.api.reporting.v1.Report": {
        "description": "Report is a saved report: the question, the program that answers it, and the\n parameters a re-run may vary.",
        "properties": {
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "createdByUserId": {
            "description": "The createdByUserId field.",
            "type": "string"
          },
          "deletedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "The description field.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "latestRunId": {
            "description": "Separate pointers: the last attempt may have failed while callers still need\n the last renderable result.",
            "type": "string"
          },
          "latestRunSummary": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.reporting.v1.ReportRun"
              },
              {
                "type": "null"
              }
            ]
          },
          "latestSuccessfulRunId": {
            "description": "The latestSuccessfulRunId field.",
            "type": "string"
          },
          "parameterSchema": {
            "additionalProperties": true,
            "type": [
              "object",
              "null"
            ]
          },
          "parameterValues": {
            "additionalProperties": true,
            "type": [
              "object",
              "null"
            ]
          },
          "program": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.reporting.v1.ProgramRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "prompt": {
            "description": "The editable natural-language question. Only a re-plan reads this.",
            "type": "string"
          },
          "tenantId": {
            "description": "The tenantId field.",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Report",
        "type": "object",
        "x-speakeasy-name-override": "Report"
      },
      "c1.api.reporting.v1.ReportRun": {
        "description": "ReportRun is one execution of a Report's program. Write-once.",
        "properties": {
          "artifactUrl": {
            "description": "The artifactUrl field.",
            "type": "string"
          },
          "conversationId": {
            "deprecated": true,
            "description": "Historical source-surface address. New runs render from surface_snapshot\n without a live A2UI address and leave these empty.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "editInstruction": {
            "description": "The immutable user instruction that produced an applied edit. Empty for\n an initial save and for headless refreshes.",
            "type": "string"
          },
          "error": {
            "description": "The error field.",
            "type": "string"
          },
          "expiresAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "finalizingAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "finishedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "KSUID, so runs sort by time.",
            "type": "string"
          },
          "invocationId": {
            "description": "Not a live join: the originating code-mode invocation is archived at the\n code-mode retention cutoff.",
            "type": "string"
          },
          "lineage": {
            "additionalProperties": true,
            "type": [
              "object",
              "null"
            ]
          },
          "parameterSchema": {
            "additionalProperties": true,
            "type": [
              "object",
              "null"
            ]
          },
          "parameterValues": {
            "additionalProperties": true,
            "type": [
              "object",
              "null"
            ]
          },
          "phase": {
            "description": "Durable execution progress and milestone timestamps. Pending refreshes\n expose their current phase; terminal runs retain timings for analysis.",
            "enum": [
              "REPORT_RUN_PHASE_UNSPECIFIED",
              "REPORT_RUN_PHASE_REQUESTED",
              "REPORT_RUN_PHASE_PREPARING_SCRATCH",
              "REPORT_RUN_PHASE_RUNNING_FUNCTION",
              "REPORT_RUN_PHASE_FINALIZING_OUTPUT",
              "REPORT_RUN_PHASE_SUCCEEDED",
              "REPORT_RUN_PHASE_FAILED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "preparingAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "program": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.reporting.v1.ProgramRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "reportId": {
            "description": "The reportId field.",
            "type": "string"
          },
          "requestedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "runByUserId": {
            "description": "Copied from the invocation's user_id, which is archived at the code-mode\n retention cutoff. Not Report.created_by_user_id — a refresh may execute as a\n different principal than the report's owner.",
            "type": "string"
          },
          "runningAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "sources": {
            "deprecated": true,
            "description": "Retired copied provenance. GetRunProvenance derives provenance from the\n durable surface and program snapshots for both saved and refreshed runs.",
            "items": {
              "$ref": "#/components/schemas/c1.api.reporting.v1.ReportSource"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "status": {
            "description": "The status field.",
            "enum": [
              "REPORT_RUN_STATUS_UNSPECIFIED",
              "REPORT_RUN_STATUS_PENDING",
              "REPORT_RUN_STATUS_SUCCEEDED",
              "REPORT_RUN_STATUS_FAILED",
              "REPORT_RUN_STATUS_STALE_PROGRAM"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "surfaceId": {
            "deprecated": true,
            "description": "The surfaceId field.",
            "type": "string"
          },
          "surfaceSnapshot": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.A2UISurface"
              },
              {
                "type": "null"
              }
            ]
          },
          "tenantId": {
            "description": "The tenantId field.",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "vfsId": {
            "description": "The vfsId field.",
            "type": "string"
          }
        },
        "title": "Report Run",
        "type": "object",
        "x-speakeasy-name-override": "ReportRun"
      },
      "c1.api.reporting.v1.ReportSource": {
        "deprecated": true,
        "description": "ReportSource is one provenance entry: what a run read to produce its numbers.\n\n Retired: ReportingService.GetRunProvenance derives provenance from the\n durable surface and program snapshots rather than this copied list. Kept\n because a published message may not be deleted.",
        "properties": {
          "count": {
            "description": "Rows contributing.",
            "format": "int64",
            "type": "string"
          },
          "kind": {
            "description": "The kind field.",
            "type": "string"
          },
          "label": {
            "description": "The label field.",
            "type": "string"
          },
          "ref": {
            "description": "Tool + query fingerprint, or object type/id.",
            "type": "string"
          }
        },
        "title": "Report Source",
        "type": "object",
        "x-speakeasy-name-override": "ReportSource"
      },
      "c1.api.reporting.v1.ReportingServiceDeleteRequestInput": {
        "description": "The ReportingServiceDeleteRequest message.",
        "title": "Reporting Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "ReportingServiceDeleteRequest"
      },
      "c1.api.reporting.v1.ReportingServiceDeleteResponse": {
        "description": "The ReportingServiceDeleteResponse message.",
        "title": "Reporting Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "ReportingServiceDeleteResponse"
      },
      "c1.api.reporting.v1.ReportingServiceGetProgramResponse": {
        "description": "The ReportingServiceGetProgramResponse message.",
        "properties": {
          "files": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "The files field.",
            "type": "object"
          },
          "programId": {
            "description": "The programId field.",
            "type": "string"
          }
        },
        "title": "Reporting Service Get Program Response",
        "type": "object",
        "x-speakeasy-name-override": "ReportingServiceGetProgramResponse"
      },
      "c1.api.reporting.v1.ReportingServiceGetResponse": {
        "description": "The ReportingServiceGetResponse message.",
        "properties": {
          "latestRun": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.reporting.v1.ReportRun"
              },
              {
                "type": "null"
              }
            ]
          },
          "latestSuccessfulRun": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.reporting.v1.ReportRun"
              },
              {
                "type": "null"
              }
            ]
          },
          "promptDrifted": {
            "description": "True when prompt no longer matches program.planned_from_prompt. A rerun\n re-executes and never re-plans, so an edited question leaves the program\n answering the old one.",
            "type": "boolean"
          },
          "report": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.reporting.v1.Report"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Reporting Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "ReportingServiceGetResponse"
      },
      "c1.api.reporting.v1.ReportingServiceGetRunProvenanceResponse": {
        "description": "The ReportingServiceGetRunProvenanceResponse message.",
        "properties": {
          "editInstruction": {
            "description": "The immutable user instruction that produced an applied edit.",
            "type": "string"
          },
          "programCommitId": {
            "deprecated": true,
            "description": "The programCommitId field.",
            "type": "string"
          },
          "programFunctionId": {
            "deprecated": true,
            "description": "Deprecated tombstones. Source-owned reports never populate Function or\n commit identity; these declarations remain only because c1api forbids\n deleting published fields.",
            "type": "string"
          },
          "programId": {
            "description": "The durable source version this run pinned.",
            "type": "string"
          },
          "programInput": {
            "description": "The parameters this run was bound to, as JSON. \"{}\" for a program that\n takes none — a real answer, distinct from absent.",
            "type": "string"
          },
          "programSource": {
            "description": "The programSource field.",
            "type": "string"
          },
          "sources": {
            "description": "What each part of the report shows, read off the run's own copy of the\n surface rather than a live one.",
            "items": {
              "$ref": "#/components/schemas/c1.api.a2ui.v1.A2UIProvenanceSource"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "steps": {
            "description": "What the program looked at, derived from its source.",
            "items": {
              "$ref": "#/components/schemas/c1.api.a2ui.v1.A2UIProvenanceStep"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "stepsAvailable": {
            "description": "False when the program's source could not be read, which is what makes an\n empty steps list mean \"unknown\" rather than \"it read nothing\".",
            "type": "boolean"
          }
        },
        "title": "Reporting Service Get Run Provenance Response",
        "type": "object",
        "x-speakeasy-name-override": "ReportingServiceGetRunProvenanceResponse"
      },
      "c1.api.reporting.v1.ReportingServiceListResponse": {
        "description": "The ReportingServiceListResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.reporting.v1.Report"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Reporting Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "ReportingServiceListResponse"
      },
      "c1.api.reporting.v1.ReportingServiceRunRequestInput": {
        "description": "The ReportingServiceRunRequest message.",
        "title": "Reporting Service Run Request",
        "type": "object",
        "x-speakeasy-name-override": "ReportingServiceRunRequest"
      },
      "c1.api.reporting.v1.ReportingServiceRunResponse": {
        "description": "The ReportingServiceRunResponse message.",
        "properties": {
          "run": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.reporting.v1.ReportRun"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Reporting Service Run Response",
        "type": "object",
        "x-speakeasy-name-override": "ReportingServiceRunResponse"
      },
      "c1.api.reporting.v1.ReportingServiceSaveRequest": {
        "description": "The ReportingServiceSaveRequest message.",
        "properties": {
          "conversationId": {
            "description": "The conversation and surface are both required to address a rendered\n surface; neither identifies one alone.",
            "type": "string"
          },
          "description": {
            "description": "Optional user-facing context for a new report. Rejected while applying an\n edit, where metadata remains unchanged.",
            "type": "string"
          },
          "displayName": {
            "description": "Required for a new report and rejected when report_id is set.",
            "type": "string"
          },
          "expectedProgramId": {
            "description": "Required with report_id. A stale source version is rejected rather than\n silently overwriting a newer edit.",
            "type": "string"
          },
          "prompt": {
            "description": "The question this surface answered. Used only when creating a report;\n applying an edit preserves the report's canonical question and records the\n incremental instruction on the immutable run.",
            "type": "string"
          },
          "reportId": {
            "description": "Empty creates a report. Set to apply the validated edit surface to an\n existing report without changing its identity or history.",
            "type": "string"
          },
          "surfaceId": {
            "description": "The surfaceId field.",
            "type": "string"
          }
        },
        "title": "Reporting Service Save Request",
        "type": "object",
        "x-speakeasy-name-override": "ReportingServiceSaveRequest"
      },
      "c1.api.reporting.v1.ReportingServiceSaveResponse": {
        "description": "The ReportingServiceSaveResponse message.",
        "properties": {
          "report": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.reporting.v1.Report"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Reporting Service Save Response",
        "type": "object",
        "x-speakeasy-name-override": "ReportingServiceSaveResponse"
      },
      "c1.api.reporting.v1.ReportingServiceUpdateRequestInput": {
        "description": "Both editable fields are optional; an empty one leaves the stored value alone.\n At least one must be set.",
        "properties": {
          "description": {
            "description": "The description field.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "expectedProgramId": {
            "description": "Required with parameter_values. Prevents values prepared for one source\n version from being installed after an assistant edit advances the report.",
            "type": "string"
          },
          "parameterValues": {
            "additionalProperties": true,
            "type": [
              "object",
              "null"
            ]
          },
          "prompt": {
            "description": "Editing this does not re-plan, so it may drift from\n program.planned_from_prompt — that drift is how a stale report is detected.",
            "type": "string"
          }
        },
        "title": "Reporting Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "ReportingServiceUpdateRequest"
      },
      "c1.api.reporting.v1.ReportingServiceUpdateResponse": {
        "description": "The ReportingServiceUpdateResponse message.",
        "properties": {
          "report": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.reporting.v1.Report"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Reporting Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "ReportingServiceUpdateResponse"
      },
      "c1.api.request_schema.v1.RequestSchema": {
        "description": "A request schema defines a form template that users fill out when requesting access.",
        "properties": {
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "form": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.form.v1.Form"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "description": "The unique identifier of this request schema.",
            "type": "string"
          },
          "justificationVisibility": {
            "description": "Controls whether the justification field is shown or hidden on the request form.",
            "enum": [
              "JUSTIFICATION_VISIBILITY_UNSPECIFIED",
              "JUSTIFICATION_VISIBILITY_SHOW",
              "JUSTIFICATION_VISIBILITY_HIDE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "modifiedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Request Schema",
        "type": "object",
        "x-speakeasy-name-override": "RequestSchema"
      },
      "c1.api.request_schema.v1.RequestSchemaServiceCreateEntitlementBindingRequest": {
        "description": "The request message for creating a single entitlement binding on a request schema.",
        "properties": {
          "entitlementRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "requestSchemaId": {
            "description": "The unique identifier of the request schema to bind the entitlement to.",
            "type": "string"
          }
        },
        "title": "Request Schema Service Create Entitlement Binding Request",
        "type": "object",
        "x-speakeasy-name-override": "RequestSchemaServiceCreateEntitlementBindingRequest"
      },
      "c1.api.request_schema.v1.RequestSchemaServiceCreateEntitlementBindingResponse": {
        "description": "The response message for creating a single entitlement binding.",
        "properties": {
          "entitlementRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "requestSchemaId": {
            "description": "The unique identifier of the request schema the entitlement was bound to.",
            "type": "string"
          }
        },
        "title": "Request Schema Service Create Entitlement Binding Response",
        "type": "object",
        "x-speakeasy-name-override": "RequestSchemaServiceCreateEntitlementBindingResponse"
      },
      "c1.api.request_schema.v1.RequestSchemaServiceCreateRequest": {
        "description": "The request message for creating a new request schema.",
        "properties": {
          "description": {
            "description": "An optional description of the request schema's purpose.",
            "type": "string"
          },
          "fieldGroups": {
            "description": "Logical groupings of fields for display purposes.",
            "items": {
              "$ref": "#/components/schemas/c1.api.form.v1.FieldGroup"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "fieldRelationships": {
            "description": "Dependencies between fields that control conditional visibility or validation.",
            "items": {
              "$ref": "#/components/schemas/c1.api.form.v1.FieldRelationship"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "fields": {
            "description": "The form fields that users must fill out when requesting access.",
            "items": {
              "$ref": "#/components/schemas/c1.api.form.v1.Field"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "justificationVisibility": {
            "description": "Controls whether the justification field is shown or hidden on the request form.",
            "enum": [
              "JUSTIFICATION_VISIBILITY_UNSPECIFIED",
              "JUSTIFICATION_VISIBILITY_SHOW",
              "JUSTIFICATION_VISIBILITY_HIDE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "name": {
            "description": "The human-readable name for the request schema.",
            "type": "string"
          }
        },
        "title": "Request Schema Service Create Request",
        "type": "object",
        "x-speakeasy-name-override": "RequestSchemaServiceCreateRequest"
      },
      "c1.api.request_schema.v1.RequestSchemaServiceCreateResponse": {
        "description": "The response message for creating a request schema.",
        "properties": {
          "requestSchema": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.request_schema.v1.RequestSchema"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Request Schema Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "RequestSchemaServiceCreateResponse"
      },
      "c1.api.request_schema.v1.RequestSchemaServiceDeleteRequestInput": {
        "description": "The request message for deleting a request schema.",
        "title": "Request Schema Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "RequestSchemaServiceDeleteRequest"
      },
      "c1.api.request_schema.v1.RequestSchemaServiceDeleteResponse": {
        "description": "The response message for deleting a request schema.",
        "title": "Request Schema Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "RequestSchemaServiceDeleteResponse"
      },
      "c1.api.request_schema.v1.RequestSchemaServiceFindBindingForAppEntitlementRequest": {
        "description": "The request message for finding which request schema is bound to a given app entitlement.",
        "properties": {
          "entitlementRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Request Schema Service Find Binding For App Entitlement Request",
        "type": "object",
        "x-speakeasy-name-override": "RequestSchemaServiceFindBindingForAppEntitlementRequest"
      },
      "c1.api.request_schema.v1.RequestSchemaServiceFindBindingForAppEntitlementResponse": {
        "description": "The response message containing the binding for the specified app entitlement.",
        "properties": {
          "entitlementRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "requestSchemaId": {
            "description": "The unique identifier of the request schema bound to this entitlement, if any.",
            "type": "string"
          }
        },
        "title": "Request Schema Service Find Binding For App Entitlement Response",
        "type": "object",
        "x-speakeasy-name-override": "RequestSchemaServiceFindBindingForAppEntitlementResponse"
      },
      "c1.api.request_schema.v1.RequestSchemaServiceGetResponse": {
        "description": "The response message for retrieving a request schema.",
        "properties": {
          "requestSchema": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.request_schema.v1.RequestSchema"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Request Schema Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "RequestSchemaServiceGetResponse"
      },
      "c1.api.request_schema.v1.RequestSchemaServiceRemoveEntitlementBindingRequest": {
        "description": "The request message for removing a single entitlement binding from a request schema.",
        "properties": {
          "entitlementRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "requestSchemaId": {
            "description": "The unique identifier of the request schema to remove the binding from.",
            "type": "string"
          }
        },
        "title": "Request Schema Service Remove Entitlement Binding Request",
        "type": "object",
        "x-speakeasy-name-override": "RequestSchemaServiceRemoveEntitlementBindingRequest"
      },
      "c1.api.request_schema.v1.RequestSchemaServiceRemoveEntitlementBindingResponse": {
        "description": "The response message for removing a single entitlement binding.",
        "title": "Request Schema Service Remove Entitlement Binding Response",
        "type": "object",
        "x-speakeasy-name-override": "RequestSchemaServiceRemoveEntitlementBindingResponse"
      },
      "c1.api.request_schema.v1.RequestSchemaServiceUpdateRequestInput": {
        "description": "The request message for updating an existing request schema.",
        "properties": {
          "requestSchema": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.request_schema.v1.RequestSchema"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Request Schema Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "RequestSchemaServiceUpdateRequest"
      },
      "c1.api.request_schema.v1.RequestSchemaServiceUpdateResponse": {
        "description": "The response message for updating a request schema.",
        "properties": {
          "requestSchema": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.request_schema.v1.RequestSchema"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Request Schema Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "RequestSchemaServiceUpdateResponse"
      },
      "c1.api.requestcatalog.v1.AppEntitlementWithUserBindings": {
        "description": "The AppEntitlementWithUserBindings message represents an app entitlement and its associated user bindings.",
        "properties": {
          "appEntitlementUserBindings": {
            "description": "An array of AppEntitlementUserBinding objects which represent the relationships that give app users access to the specific app entitlement.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementUserBinding"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "entitlement": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementView"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "App Entitlement With User Bindings",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementWithUserBindings"
      },
      "c1.api.requestcatalog.v1.BundleAutomation": {
        "description": "The BundleAutomation message.\n\nThis message contains a oneof named conditions. Only a single field of the following list may be set at a time:\n  - entitlements\n  - cel\n",
        "properties": {
          "cel": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.BundleAutomationRuleCEL"
              },
              {
                "type": "null"
              }
            ]
          },
          "circuitBreaker": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.BundleAutomationCircuitBreaker"
              },
              {
                "type": "null"
              }
            ]
          },
          "createTasks": {
            "description": "The createTasks field.",
            "type": "boolean"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "disableCircuitBreaker": {
            "description": "The disableCircuitBreaker field.",
            "type": "boolean"
          },
          "enabled": {
            "description": "The enabled field.",
            "type": "boolean"
          },
          "enforceOnSmallProfiles": {
            "description": "When true, the circuit breaker is evaluated even on profiles below the\n tenant min-members floor.",
            "type": "boolean"
          },
          "entitlements": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.BundleAutomationRuleEntitlement"
              },
              {
                "type": "null"
              }
            ]
          },
          "removedMembersThresholdPercent": {
            "description": "Per-automation override for the removed-members percent that trips the\n circuit breaker (1-100). 0 / unset means the tenant default applies.",
            "format": "int64",
            "type": "string"
          },
          "requestCatalogId": {
            "description": "The requestCatalogId field.",
            "type": "string"
          },
          "state": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.BundleAutomationLastRunState"
              },
              {
                "type": "null"
              }
            ]
          },
          "tenantId": {
            "description": "The tenantId field.",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Bundle Automation",
        "type": "object",
        "x-speakeasy-name-override": "BundleAutomation"
      },
      "c1.api.requestcatalog.v1.BundleAutomationCelEvaluationState": {
        "description": "The BundleAutomationCelEvaluationState message.",
        "properties": {
          "errorMessage": {
            "description": "The errorMessage field.",
            "type": "string"
          },
          "lastEvaluatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "matchedUsers": {
            "description": "The matchedUsers field.",
            "format": "int64",
            "type": "string"
          },
          "status": {
            "description": "The status field.",
            "enum": [
              "BUNDLE_AUTOMATION_RUN_STATUS_UNSPECIFIED",
              "BUNDLE_AUTOMATION_RUN_STATUS_SUCCESS",
              "BUNDLE_AUTOMATION_RUN_STATUS_FAILURE",
              "BUNDLE_AUTOMATION_RUN_STATUS_IN_PROGRESS",
              "BUNDLE_AUTOMATION_RUN_STATUS_WAITING_FOR_APPROVAL"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Bundle Automation Cel Evaluation State",
        "type": "object",
        "x-speakeasy-name-override": "BundleAutomationCelEvaluationState"
      },
      "c1.api.requestcatalog.v1.BundleAutomationCircuitBreaker": {
        "description": "The BundleAutomationCircuitBreaker message.",
        "properties": {
          "removedMembersThresholdPercentage": {
            "description": "The removedMembersThresholdPercentage field.",
            "format": "int64",
            "type": "string"
          },
          "state": {
            "description": "The state field.",
            "enum": [
              "CIRCUIT_BREAKER_STATE_UNSPECIFIED",
              "CIRCUIT_BREAKER_STATE_TRIGGERED",
              "CIRCUIT_BREAKER_STATE_BYPASS",
              "CIRCUIT_BREAKER_STATE_SUPPORT_DISABLED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "userRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Bundle Automation Circuit Breaker",
        "type": "object",
        "x-speakeasy-name-override": "BundleAutomationCircuitBreaker"
      },
      "c1.api.requestcatalog.v1.BundleAutomationLastRunState": {
        "description": "The BundleAutomationLastRunState message.",
        "properties": {
          "celEvaluation": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.BundleAutomationCelEvaluationState"
              },
              {
                "type": "null"
              }
            ]
          },
          "errorMessage": {
            "description": "The errorMessage field.",
            "type": "string"
          },
          "lastRunAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "description": "The status field.",
            "enum": [
              "BUNDLE_AUTOMATION_RUN_STATUS_UNSPECIFIED",
              "BUNDLE_AUTOMATION_RUN_STATUS_SUCCESS",
              "BUNDLE_AUTOMATION_RUN_STATUS_FAILURE",
              "BUNDLE_AUTOMATION_RUN_STATUS_IN_PROGRESS",
              "BUNDLE_AUTOMATION_RUN_STATUS_WAITING_FOR_APPROVAL"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Bundle Automation Last Run State",
        "type": "object",
        "x-speakeasy-name-override": "BundleAutomationLastRunState"
      },
      "c1.api.requestcatalog.v1.BundleAutomationRef": {
        "description": "The BundleAutomationRef message.",
        "properties": {
          "requestCatalogId": {
            "description": "The requestCatalogId field.",
            "type": "string"
          }
        },
        "title": "Bundle Automation Ref",
        "type": "object",
        "x-speakeasy-name-override": "BundleAutomationRef"
      },
      "c1.api.requestcatalog.v1.BundleAutomationRuleCEL": {
        "description": "The BundleAutomationRuleCEL message.",
        "properties": {
          "expression": {
            "description": "The expression field.",
            "type": "string"
          }
        },
        "title": "Bundle Automation Rule Cel",
        "type": "object",
        "x-speakeasy-name-override": "BundleAutomationRuleCEL"
      },
      "c1.api.requestcatalog.v1.BundleAutomationRuleEntitlement": {
        "description": "The BundleAutomationRuleEntitlement message.",
        "properties": {
          "entitlementRefs": {
            "description": "The entitlementRefs field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Bundle Automation Rule Entitlement",
        "type": "object",
        "x-speakeasy-name-override": "BundleAutomationRuleEntitlement"
      },
      "c1.api.requestcatalog.v1.CreateBundleAutomationRequestInput": {
        "description": "The request message for creating a new bundle automation rule on a catalog.\n\nThis message contains a oneof named conditions. Only a single field of the following list may be set at a time:\n  - entitlements\n  - cel\n",
        "properties": {
          "cel": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.BundleAutomationRuleCEL"
              },
              {
                "type": "null"
              }
            ]
          },
          "createTasks": {
            "description": "Whether to create access request tasks for matched users instead of granting directly.",
            "type": "boolean"
          },
          "disableCircuitBreaker": {
            "description": "Whether to disable the circuit breaker that pauses the automation when excessive membership changes are detected.",
            "type": "boolean"
          },
          "enabled": {
            "description": "Whether the automation should actively run on its schedule.",
            "type": "boolean"
          },
          "enforceOnSmallProfiles": {
            "description": "When true, the circuit breaker is evaluated even on profiles below the\n tenant min-members floor. Defaults to false.",
            "type": "boolean"
          },
          "entitlements": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.BundleAutomationRuleEntitlement"
              },
              {
                "type": "null"
              }
            ]
          },
          "removedMembersThresholdPercent": {
            "description": "Per-automation override for the removed-members percent that trips the\n circuit breaker (1-100). 0 / unset means inherit the tenant default.",
            "format": "int64",
            "type": "string"
          }
        },
        "title": "Create Bundle Automation Request",
        "type": "object",
        "x-speakeasy-name-override": "CreateBundleAutomationRequest"
      },
      "c1.api.requestcatalog.v1.CredentialOfferingView": {
        "description": "CredentialOfferingView is one connector credential kind published through an Access Profile.",
        "properties": {
          "allowedViews": {
            "description": "The allowedViews field.",
            "format": "int32",
            "type": "integer"
          },
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "maxDuration": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "requestCatalogId": {
            "description": "The Access Profile that publishes this offering. An offering can be\n published through multiple profiles, so requests must retain this binding.",
            "type": "string"
          },
          "requesterAccountSubject": {
            "description": "True when the credential is issued for an account owned by the request\n recipient. Shared-account offerings never accept an account selection.",
            "type": "boolean"
          },
          "requesterAppUserIds": {
            "description": "Connector-compatible app accounts owned by the request recipient. This is\n populated only when the search has a target user. It never includes\n another user's app account.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "retrievalWindow": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Credential Offering View",
        "type": "object",
        "x-speakeasy-name-override": "CredentialOfferingView"
      },
      "c1.api.requestcatalog.v1.DeleteBundleAutomationRequestInput": {
        "description": "The request message for deleting a bundle automation from a catalog.",
        "title": "Delete Bundle Automation Request",
        "type": "object",
        "x-speakeasy-name-override": "DeleteBundleAutomationRequest"
      },
      "c1.api.requestcatalog.v1.DeleteBundleAutomationResponse": {
        "description": "The response message for deleting a bundle automation.",
        "title": "Delete Bundle Automation Response",
        "type": "object",
        "x-speakeasy-name-override": "DeleteBundleAutomationResponse"
      },
      "c1.api.requestcatalog.v1.ForceRunBundleAutomationRequestInput": {
        "description": "The request message for triggering an immediate bundle automation run.",
        "properties": {
          "refs": {
            "description": "Optional entitlement references to scope the run to specific entitlements.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Force Run Bundle Automation Request",
        "type": "object",
        "x-speakeasy-name-override": "ForceRunBundleAutomationRequest"
      },
      "c1.api.requestcatalog.v1.ForceRunBundleAutomationResponse": {
        "description": "The response message for triggering a bundle automation run.",
        "title": "Force Run Bundle Automation Response",
        "type": "object",
        "x-speakeasy-name-override": "ForceRunBundleAutomationResponse"
      },
      "c1.api.requestcatalog.v1.RequestCatalog": {
        "description": "The RequestCatalog is used for managing which entitlements are requestable, and who can request them.",
        "properties": {
          "accessEntitlements": {
            "description": "An array of app entitlements that, if the user has, can view the contents of this catalog.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlement"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "annotations": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Bounded key/value metadata bag for IaC marking and customer tags.\n See .rfcs/object-annotations.md §2. Limits: ≤16 entries; keys 1–128\n chars matching ^[A-Za-z][A-Za-z0-9._/-]{0,127}$; values 0–256 chars\n URL-safe ASCII; total serialized ≤ 4096 bytes. Keys matching ^c1/\n are reserved.\n\n Well-known keys: `managed_by`, `iac_workspace`,\n `iac_resource_address`, `iac_tool_version`.",
            "type": "object",
            "x-speakeasy-terraform-plan-modifier": {
              "imports": [
                "github.com/conductorone/terraform-provider-conductorone/internal/annotations"
              ],
              "schemaDefinition": "annotations.PlanModifier()"
            }
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "createdByUserId": {
            "description": "The id of the user this request catalog was created by.",
            "type": "string"
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "The description of the request catalog.",
            "type": "string"
          },
          "displayName": {
            "description": "The display name of the request catalog.",
            "type": "string"
          },
          "enrollmentBehavior": {
            "description": "Defines how to handle the request policies of the entitlements in the catalog during enrollment.",
            "enum": [
              "REQUEST_CATALOG_ENROLLMENT_BEHAVIOR_UNSPECIFIED",
              "REQUEST_CATALOG_ENROLLMENT_BEHAVIOR_BYPASS_ENTITLEMENT_REQUEST_POLICY",
              "REQUEST_CATALOG_ENROLLMENT_BEHAVIOR_ENFORCE_ENTITLEMENT_REQUEST_POLICY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "id": {
            "description": "The id of the request catalog.",
            "type": "string"
          },
          "published": {
            "description": "Whether or not this catalog is published.",
            "type": "boolean"
          },
          "requestBundle": {
            "description": "Whether all the entitlements in the catalog can be requests at once. Your tenant must have the bundles feature to use this.",
            "type": "boolean"
          },
          "type": {
            "description": "The type of this access profile. Reports CATALOG_AND_BUNDLE for a profile\n created before the type was recorded; UNSPECIFIED only for a tenant whose\n backfill has not been run. Updates require the access profile types feature\n and an update mask containing \"type\".",
            "enum": [
              "REQUEST_CATALOG_TYPE_UNSPECIFIED",
              "REQUEST_CATALOG_TYPE_CATALOG",
              "REQUEST_CATALOG_TYPE_PROFILE",
              "REQUEST_CATALOG_TYPE_CATALOG_AND_BUNDLE",
              "REQUEST_CATALOG_TYPE_BUNDLE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "unenrollmentBehavior": {
            "description": "Defines how to handle the revocation of the entitlements in the catalog during unenrollment.",
            "enum": [
              "REQUEST_CATALOG_UNENROLLMENT_BEHAVIOR_UNSPECIFIED",
              "REQUEST_CATALOG_UNENROLLMENT_BEHAVIOR_LEAVE_ACCESS_AS_IS",
              "REQUEST_CATALOG_UNENROLLMENT_BEHAVIOR_REVOKE_ALL",
              "REQUEST_CATALOG_UNENROLLMENT_BEHAVIOR_REVOKE_UNJUSTIFIED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "unenrollmentEntitlementBehavior": {
            "description": "Defines how to handle the revoke policies of the entitlements in the catalog during unenrollment.",
            "enum": [
              "REQUEST_CATALOG_UNENROLLMENT_ENTITLEMENT_BEHAVIOR_UNSPECIFIED",
              "REQUEST_CATALOG_UNENROLLMENT_ENTITLEMENT_BEHAVIOR_BYPASS",
              "REQUEST_CATALOG_UNENROLLMENT_ENTITLEMENT_BEHAVIOR_ENFORCE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "visibleToEveryone": {
            "description": "If this is true, the access entitlement requirement is ignored.",
            "type": "boolean"
          }
        },
        "title": "Request Catalog",
        "type": "object",
        "x-speakeasy-entity": "Access_Profile",
        "x-speakeasy-name-override": "RequestCatalog"
      },
      "c1.api.requestcatalog.v1.RequestCatalogExpandMask": {
        "description": "The RequestCatalogExpandMask includes the paths in the catalog view to expand in the return value of this call.",
        "properties": {
          "paths": {
            "description": "An array of paths to be expanded in the response. May be any combination of \"*\", \"created_by_user_id\", \"app_ids\", and \"access_entitlements\".",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Request Catalog Expand Mask",
        "type": "object",
        "x-speakeasy-name-override": "RequestCatalogExpandMask"
      },
      "c1.api.requestcatalog.v1.RequestCatalogManagementServiceAddAccessEntitlementsRequestInput": {
        "description": "The RequestCatalogManagementServiceAddAccessEntitlementsRequest message is used to add access entitlements to a request\n catalog to determine which users can view the request catalog.",
        "properties": {
          "accessEntitlements": {
            "description": "List of entitlements to add to the request catalog as access entitlements.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "accessEntitlements"
        ],
        "title": "Request Catalog Management Service Add Access Entitlements Request",
        "type": "object",
        "x-speakeasy-entity": "Access_Profile_Visibility_Bindings",
        "x-speakeasy-name-override": "RequestCatalogManagementServiceAddAccessEntitlementsRequest"
      },
      "c1.api.requestcatalog.v1.RequestCatalogManagementServiceAddAccessEntitlementsResponse": {
        "description": "Empty response with a status code indicating success.",
        "title": "Request Catalog Management Service Add Access Entitlements Response",
        "type": "object",
        "x-speakeasy-name-override": "RequestCatalogManagementServiceAddAccessEntitlementsResponse"
      },
      "c1.api.requestcatalog.v1.RequestCatalogManagementServiceAddAppEntitlementsRequestInput": {
        "description": "The RequestCatalogManagementServiceAddAppEntitlementsRequest object is used to add app requestable app entitlements to a request catalog.",
        "properties": {
          "appEntitlements": {
            "description": "List of entitlements to add to the request catalog.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "createRequests": {
            "description": "Whether or not to create requests for newly added entitlements for users in the catalog.\n By default, this is false and no requests are created.",
            "type": "boolean"
          }
        },
        "required": [
          "appEntitlements"
        ],
        "title": "Request Catalog Management Service Add App Entitlements Request",
        "type": "object",
        "x-speakeasy-entity": "Access_Profile_Requestable_Entries",
        "x-speakeasy-name-override": "RequestCatalogManagementServiceAddAppEntitlementsRequest"
      },
      "c1.api.requestcatalog.v1.RequestCatalogManagementServiceAddAppEntitlementsResponse": {
        "description": "Empty response with a status code indicating success.",
        "title": "Request Catalog Management Service Add App Entitlements Response",
        "type": "object",
        "x-speakeasy-name-override": "RequestCatalogManagementServiceAddAppEntitlementsResponse"
      },
      "c1.api.requestcatalog.v1.RequestCatalogManagementServiceCreateRequest": {
        "description": "Create a request catalog.",
        "properties": {
          "annotations": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Bounded key/value metadata bag for IaC marking and customer tags.\n See .rfcs/object-annotations.md §2. Limits: ≤16 entries; keys 1–128\n chars matching ^[A-Za-z][A-Za-z0-9._/-]{0,127}$; values 0–256 chars\n matching URL-safe ASCII; total serialized ≤4096 bytes. Keys starting\n with `c1/` are reserved for server-managed use and rejected on write.\n\n Well-known keys: `managed_by`, `iac_workspace`,\n `iac_resource_address`, `iac_tool_version`.",
            "type": "object",
            "x-speakeasy-terraform-plan-modifier": {
              "imports": [
                "github.com/conductorone/terraform-provider-conductorone/internal/annotations"
              ],
              "schemaDefinition": "annotations.PlanModifier()"
            }
          },
          "description": {
            "description": "The description of the new request catalog.",
            "type": "string"
          },
          "displayName": {
            "description": "The display name of the new request catalog.",
            "type": "string"
          },
          "enrollmentBehavior": {
            "description": "Defines how to handle the request policies of the entitlements in the catalog during enrollment.",
            "enum": [
              "REQUEST_CATALOG_ENROLLMENT_BEHAVIOR_UNSPECIFIED",
              "REQUEST_CATALOG_ENROLLMENT_BEHAVIOR_BYPASS_ENTITLEMENT_REQUEST_POLICY",
              "REQUEST_CATALOG_ENROLLMENT_BEHAVIOR_ENFORCE_ENTITLEMENT_REQUEST_POLICY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "published": {
            "description": "Whether or not the new catalog should be created as published.",
            "type": "boolean"
          },
          "requestBundle": {
            "description": "Whether all the entitlements in the catalog can be requests at once. Your tenant must have the bundles feature to use this.",
            "type": "boolean"
          },
          "type": {
            "description": "The type of access profile to create. Leave unset for\n REQUEST_CATALOG_TYPE_CATALOG_AND_BUNDLE, which is what every profile\n created before this field existed is. Setting it requires the\n ACCESS_PROFILE_TYPES feature.\n\n PROFILE is rejected rather than resolved: it is deprecated, has no stored\n counterpart, and shares wire number 2 with the stored BUNDLE, so honoring\n it would silently persist a type the caller did not ask for.",
            "enum": [
              "REQUEST_CATALOG_TYPE_UNSPECIFIED",
              "REQUEST_CATALOG_TYPE_CATALOG",
              "REQUEST_CATALOG_TYPE_PROFILE",
              "REQUEST_CATALOG_TYPE_CATALOG_AND_BUNDLE",
              "REQUEST_CATALOG_TYPE_BUNDLE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "unenrollmentBehavior": {
            "description": "Defines how to handle the revocation of the entitlements in the catalog during unenrollment.",
            "enum": [
              "REQUEST_CATALOG_UNENROLLMENT_BEHAVIOR_UNSPECIFIED",
              "REQUEST_CATALOG_UNENROLLMENT_BEHAVIOR_LEAVE_ACCESS_AS_IS",
              "REQUEST_CATALOG_UNENROLLMENT_BEHAVIOR_REVOKE_ALL",
              "REQUEST_CATALOG_UNENROLLMENT_BEHAVIOR_REVOKE_UNJUSTIFIED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "unenrollmentEntitlementBehavior": {
            "description": "Defines how to handle the revoke policies of the entitlements in the catalog during unenrollment.",
            "enum": [
              "REQUEST_CATALOG_UNENROLLMENT_ENTITLEMENT_BEHAVIOR_UNSPECIFIED",
              "REQUEST_CATALOG_UNENROLLMENT_ENTITLEMENT_BEHAVIOR_BYPASS",
              "REQUEST_CATALOG_UNENROLLMENT_ENTITLEMENT_BEHAVIOR_ENFORCE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "visibleToEveryone": {
            "description": "Whether or not the new catalog is visible to everyone by default.",
            "type": "boolean"
          }
        },
        "required": [
          "displayName"
        ],
        "title": "Request Catalog Management Service Create Request",
        "type": "object",
        "x-speakeasy-entity": "Access_Profile",
        "x-speakeasy-name-override": "RequestCatalogManagementServiceCreateRequest"
      },
      "c1.api.requestcatalog.v1.RequestCatalogManagementServiceCreateRequestableEntryRequestInput": {
        "description": "Create a single requestable entry",
        "properties": {
          "createRequests": {
            "description": "Whether or not to create requests for newly added entitlement for users in the catalog.\n By default, this is false and no requests are created.",
            "type": "boolean"
          }
        },
        "title": "Request Catalog Management Service Create Requestable Entry Request",
        "type": "object",
        "x-speakeasy-entity": "Access_Profile_Requestable_Entry",
        "x-speakeasy-name-override": "RequestCatalogManagementServiceCreateRequestableEntryRequest"
      },
      "c1.api.requestcatalog.v1.RequestCatalogManagementServiceCreateRequestableEntryResponse": {
        "description": "Response containing the created requestable entry",
        "properties": {
          "requestableEntry": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestableEntry"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Request Catalog Management Service Create Requestable Entry Response",
        "type": "object",
        "x-speakeasy-name-override": "RequestCatalogManagementServiceCreateRequestableEntryResponse"
      },
      "c1.api.requestcatalog.v1.RequestCatalogManagementServiceDeleteRequestInput": {
        "description": "Delete a request catalog by Id. It uses URL value for input.",
        "title": "Request Catalog Management Service Delete Request",
        "type": "object",
        "x-speakeasy-entity": "Access_Profile",
        "x-speakeasy-name-override": "RequestCatalogManagementServiceDeleteRequest"
      },
      "c1.api.requestcatalog.v1.RequestCatalogManagementServiceDeleteRequestableEntryRequestInput": {
        "description": "Delete a single requestable entry",
        "title": "Request Catalog Management Service Delete Requestable Entry Request",
        "type": "object",
        "x-speakeasy-entity": "Access_Profile_Requestable_Entry",
        "x-speakeasy-name-override": "RequestCatalogManagementServiceDeleteRequestableEntryRequest"
      },
      "c1.api.requestcatalog.v1.RequestCatalogManagementServiceDeleteRequestableEntryResponse": {
        "description": "Empty response for delete operation",
        "title": "Request Catalog Management Service Delete Requestable Entry Response",
        "type": "object",
        "x-speakeasy-name-override": "RequestCatalogManagementServiceDeleteRequestableEntryResponse"
      },
      "c1.api.requestcatalog.v1.RequestCatalogManagementServiceDeleteResponse": {
        "description": "Empty response with a status code indicating success.",
        "title": "Request Catalog Management Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "RequestCatalogManagementServiceDeleteResponse"
      },
      "c1.api.requestcatalog.v1.RequestCatalogManagementServiceGetRequestableEntryResponse": {
        "description": "Response containing the requested entry",
        "properties": {
          "requestableEntry": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestableEntry"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Request Catalog Management Service Get Requestable Entry Response",
        "type": "object",
        "x-speakeasy-name-override": "RequestCatalogManagementServiceGetRequestableEntryResponse"
      },
      "c1.api.requestcatalog.v1.RequestCatalogManagementServiceGetResponse": {
        "description": "The request catalog management service get response returns a request catalog view with the expanded items in the expanded array indicated by the expand mask in the request.",
        "properties": {
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "requestCatalogView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogView"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Request Catalog Management Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "RequestCatalogManagementServiceGetResponse"
      },
      "c1.api.requestcatalog.v1.RequestCatalogManagementServiceListAllEntitlementIdsPerCatalogResponse": {
        "description": "The response message containing all requestable entitlement references in the catalog.",
        "properties": {
          "refs": {
            "description": "The complete list of app entitlement references in this catalog.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Request Catalog Management Service List All Entitlement Ids Per Catalog Response",
        "type": "object",
        "x-speakeasy-name-override": "RequestCatalogManagementServiceListAllEntitlementIdsPerCatalogResponse"
      },
      "c1.api.requestcatalog.v1.RequestCatalogManagementServiceListEntitlementsForAccessResponse": {
        "description": "The RequestCatalogManagementServiceListEntitlementsForAccessResponse message contains a list of results and a nextPageToken if applicable.",
        "properties": {
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "list": {
            "description": "The list of results containing up to X results, where X is the page size defined in the request.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken is shown for the next page if the number of results is larger than the max page size.\n The server returns one page of results and the nextPageToken until all results are retreived.\n To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page.",
            "type": "string"
          }
        },
        "title": "Request Catalog Management Service List Entitlements For Access Response",
        "type": "object",
        "x-speakeasy-name-override": "RequestCatalogManagementServiceListEntitlementsForAccessResponse"
      },
      "c1.api.requestcatalog.v1.RequestCatalogManagementServiceListEntitlementsPerCatalogResponse": {
        "description": "The RequestCatalogManagementServiceListEntitlementsPerCatalogResponse message contains a list of results and a nextPageToken if applicable.",
        "properties": {
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "list": {
            "description": "The list of results containing up to X results, where X is the page size defined in the request.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken is shown for the next page if the number of results is larger than the max page size.\n The server returns one page of results and the nextPageToken until all results are retreived.\n To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page.",
            "type": "string"
          }
        },
        "title": "Request Catalog Management Service List Entitlements Per Catalog Response",
        "type": "object",
        "x-speakeasy-name-override": "RequestCatalogManagementServiceListEntitlementsPerCatalogResponse"
      },
      "c1.api.requestcatalog.v1.RequestCatalogManagementServiceListResponse": {
        "description": "The RequestCatalogManagementServiceListResponse message.",
        "properties": {
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "list": {
            "description": "The list of request catalogs.",
            "items": {
              "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken is shown for the next page if the number of results is larger than the max page size.\n The server returns one page of results and the nextPageToken until all results are retreived.\n To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page.",
            "type": "string"
          }
        },
        "title": "Request Catalog Management Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "RequestCatalogManagementServiceListResponse"
      },
      "c1.api.requestcatalog.v1.RequestCatalogManagementServicePlanTypeChangeRequestInput": {
        "description": "Requests a side-effect-free plan for changing an access profile's type.",
        "properties": {
          "targetType": {
            "description": "Requested type. UNSPECIFIED and the deprecated PROFILE value are rejected.",
            "enum": [
              "REQUEST_CATALOG_TYPE_UNSPECIFIED",
              "REQUEST_CATALOG_TYPE_CATALOG",
              "REQUEST_CATALOG_TYPE_PROFILE",
              "REQUEST_CATALOG_TYPE_CATALOG_AND_BUNDLE",
              "REQUEST_CATALOG_TYPE_BUNDLE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Request Catalog Management Service Plan Type Change Request",
        "type": "object",
        "x-speakeasy-name-override": "RequestCatalogManagementServicePlanTypeChangeRequest"
      },
      "c1.api.requestcatalog.v1.RequestCatalogManagementServicePlanTypeChangeResponse": {
        "description": "Describes behavior affected by an access profile type change.",
        "properties": {
          "currentType": {
            "description": "Current stored type. UNSPECIFIED means the profile predates type backfill\n or contains an unknown future value.",
            "enum": [
              "REQUEST_CATALOG_TYPE_UNSPECIFIED",
              "REQUEST_CATALOG_TYPE_CATALOG",
              "REQUEST_CATALOG_TYPE_PROFILE",
              "REQUEST_CATALOG_TYPE_CATALOG_AND_BUNDLE",
              "REQUEST_CATALOG_TYPE_BUNDLE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "impacts": {
            "description": "Deterministically ordered behavior affected by the transition. These\n impacts describe what the target type does not support; the change does not\n remove or modify the underlying state.",
            "items": {
              "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogTypeChangeImpact"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "targetType": {
            "description": "Type requested by the caller.",
            "enum": [
              "REQUEST_CATALOG_TYPE_UNSPECIFIED",
              "REQUEST_CATALOG_TYPE_CATALOG",
              "REQUEST_CATALOG_TYPE_PROFILE",
              "REQUEST_CATALOG_TYPE_CATALOG_AND_BUNDLE",
              "REQUEST_CATALOG_TYPE_BUNDLE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Request Catalog Management Service Plan Type Change Response",
        "type": "object",
        "x-speakeasy-name-override": "RequestCatalogManagementServicePlanTypeChangeResponse"
      },
      "c1.api.requestcatalog.v1.RequestCatalogManagementServiceRemoveAccessEntitlementsRequestInput": {
        "description": "The RequestCatalogManagementServiceRemoveAccessEntitlementsRequest message is used to remove access entitlements from a request catalog.\n The access entitlements are used to determine which users can view the request catalog.",
        "properties": {
          "accessEntitlements": {
            "description": "The list of access entitlements to remove from the catalog.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Request Catalog Management Service Remove Access Entitlements Request",
        "type": "object",
        "x-speakeasy-entity": "Access_Profile_Visibility_Bindings",
        "x-speakeasy-name-override": "RequestCatalogManagementServiceRemoveAccessEntitlementsRequest"
      },
      "c1.api.requestcatalog.v1.RequestCatalogManagementServiceRemoveAccessEntitlementsResponse": {
        "description": "Empty response with a status code indicating success.",
        "title": "Request Catalog Management Service Remove Access Entitlements Response",
        "type": "object",
        "x-speakeasy-name-override": "RequestCatalogManagementServiceRemoveAccessEntitlementsResponse"
      },
      "c1.api.requestcatalog.v1.RequestCatalogManagementServiceRemoveAppEntitlementsRequestInput": {
        "description": "The RequestCatalogManagementServiceRemoveAppEntitlementsRequest message is used to remove app entitlements from a request catalog.",
        "properties": {
          "appEntitlements": {
            "description": "The list of app entitlements to remove from the catalog.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Request Catalog Management Service Remove App Entitlements Request",
        "type": "object",
        "x-speakeasy-entity": "Access_Profile_Requestable_Entries",
        "x-speakeasy-name-override": "RequestCatalogManagementServiceRemoveAppEntitlementsRequest"
      },
      "c1.api.requestcatalog.v1.RequestCatalogManagementServiceRemoveAppEntitlementsResponse": {
        "description": "Empty response with a status code indicating success",
        "title": "Request Catalog Management Service Remove App Entitlements Response",
        "type": "object",
        "x-speakeasy-name-override": "RequestCatalogManagementServiceRemoveAppEntitlementsResponse"
      },
      "c1.api.requestcatalog.v1.RequestCatalogManagementServiceSearchScopeRoleBindingsPerCatalogResponse": {
        "description": "The response message containing the scope-role bindings in an access profile, one entry per (app, scope).",
        "properties": {
          "list": {
            "description": "The list of scopes, each with its bound roles, ordered by app and then scope.",
            "items": {
              "$ref": "#/components/schemas/c1.api.requestcatalog.v1.ScopeWithRoles"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken is shown for the next page if the number of results is larger than the max page size.\n The server returns one page of results and the nextPageToken until all results are retrieved.\n To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page.",
            "type": "string"
          }
        },
        "title": "Request Catalog Management Service Search Scope Role Bindings Per Catalog Response",
        "type": "object",
        "x-speakeasy-name-override": "RequestCatalogManagementServiceSearchScopeRoleBindingsPerCatalogResponse"
      },
      "c1.api.requestcatalog.v1.RequestCatalogManagementServiceUpdateAppEntitlementsRequestInput": {
        "description": "The RequestCatalogManagementServiceUpdateAppEntitlementsRequest object is used to update app entitlements to a request catalog id.",
        "properties": {
          "appEntitlements": {
            "description": "The entitlement to get from the request catalog.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "appEntitlements"
        ],
        "title": "Request Catalog Management Service Update App Entitlements Request",
        "type": "object",
        "x-speakeasy-entity": "Access_Profile_Requestable_Entries",
        "x-speakeasy-name-override": "RequestCatalogManagementServiceUpdateAppEntitlementsRequest"
      },
      "c1.api.requestcatalog.v1.RequestCatalogManagementServiceUpdateAppEntitlementsResponse": {
        "description": "The RequestCatalogManagementServiceUpdateAppEntitlementsResponse object is is the response from UpdateAppEntitlements endpoint.",
        "title": "Request Catalog Management Service Update App Entitlements Response",
        "type": "object",
        "x-speakeasy-name-override": "RequestCatalogManagementServiceUpdateAppEntitlementsResponse"
      },
      "c1.api.requestcatalog.v1.RequestCatalogManagementServiceUpdateRequestInput": {
        "description": "Update a request catalog object by ID.",
        "properties": {
          "catalog": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalog"
              },
              {
                "type": "null"
              }
            ]
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Request Catalog Management Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "RequestCatalogManagementServiceUpdateRequest"
      },
      "c1.api.requestcatalog.v1.RequestCatalogRef": {
        "description": "The RequestCatalogRef message.",
        "properties": {
          "id": {
            "description": "The id field.",
            "type": "string"
          }
        },
        "title": "Request Catalog Ref",
        "type": "object",
        "x-speakeasy-name-override": "RequestCatalogRef"
      },
      "c1.api.requestcatalog.v1.RequestCatalogSearchServiceSearchEntitlementsRequest": {
        "description": "The RequestCatalogSearchServiceSearchEntitlementsRequest searches entitlements, but only ones that are available to you through the open catalogs.",
        "properties": {
          "appDisplayName": {
            "description": "Search entitlements that belong to this app name (exact match).",
            "type": "string"
          },
          "entitlementAlias": {
            "description": "Search for entitlements with this alias (exact match).",
            "type": "string"
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "grantedStatus": {
            "description": "Search entitlements with this granted status for your signed in user.",
            "enum": [
              "UNSPECIFIED",
              "ALL",
              "GRANTED",
              "NOT_GRANTED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "includeDeleted": {
            "description": "Include deleted entitlements",
            "type": "boolean"
          },
          "pageSize": {
            "description": "The pageSize where 0 \u003c= pageSize \u003c= 100. Values \u003c 10 will be set to 10. A value of 0 returns the default page size (currently 25)",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          },
          "query": {
            "description": "Fuzzy search the display name of resource types.",
            "type": "string"
          }
        },
        "title": "Request Catalog Search Service Search Entitlements Request",
        "type": "object",
        "x-speakeasy-name-override": "RequestCatalogSearchServiceSearchEntitlementsRequest"
      },
      "c1.api.requestcatalog.v1.RequestCatalogSearchServiceSearchEntitlementsResponse": {
        "description": "The RequestCatalogSearchServiceSearchEntitlementsResponse message contains a list of results and a nextPageToken if applicable.",
        "properties": {
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "list": {
            "description": "The list of results containing up to X results, where X is the page size defined in the request.",
            "items": {
              "$ref": "#/components/schemas/c1.api.requestcatalog.v1.AppEntitlementWithUserBindings"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken is shown for the next page if the number of results is larger than the max page size.\n The server returns one page of results and the nextPageToken until all results are retreived.\n To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page.",
            "type": "string"
          }
        },
        "title": "Request Catalog Search Service Search Entitlements Response",
        "type": "object",
        "x-speakeasy-name-override": "RequestCatalogSearchServiceSearchEntitlementsResponse"
      },
      "c1.api.requestcatalog.v1.RequestCatalogTypeChangeImpact": {
        "description": "Stable machine-readable impact produced by access profile type planning.",
        "properties": {
          "category": {
            "description": "How the target type treats the current state.",
            "enum": [
              "REQUEST_CATALOG_TYPE_CHANGE_IMPACT_CATEGORY_UNSPECIFIED",
              "REQUEST_CATALOG_TYPE_CHANGE_IMPACT_CATEGORY_BLOCKS_CHANGE",
              "REQUEST_CATALOG_TYPE_CHANGE_IMPACT_CATEGORY_WILL_DISABLE",
              "REQUEST_CATALOG_TYPE_CHANGE_IMPACT_CATEGORY_WILL_REMOVE",
              "REQUEST_CATALOG_TYPE_CHANGE_IMPACT_CATEGORY_INFORMATIONAL",
              "REQUEST_CATALOG_TYPE_CHANGE_IMPACT_CATEGORY_NEEDS_ATTENTION",
              "REQUEST_CATALOG_TYPE_CHANGE_IMPACT_CATEGORY_NOT_SUPPORTED",
              "REQUEST_CATALOG_TYPE_CHANGE_IMPACT_CATEGORY_IGNORED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "code": {
            "description": "Stable reason identifier for rendering, diagnostics, and tests.",
            "enum": [
              "REQUEST_CATALOG_TYPE_CHANGE_IMPACT_CODE_UNSPECIFIED",
              "REQUEST_CATALOG_TYPE_CHANGE_IMPACT_CODE_SAME_TYPE",
              "REQUEST_CATALOG_TYPE_CHANGE_IMPACT_CODE_CURRENT_TYPE_UNSPECIFIED",
              "REQUEST_CATALOG_TYPE_CHANGE_IMPACT_CODE_CURRENT_TYPE_UNKNOWN",
              "REQUEST_CATALOG_TYPE_CHANGE_IMPACT_CODE_MEMBERSHIP_ENTITLEMENT_MISSING",
              "REQUEST_CATALOG_TYPE_CHANGE_IMPACT_CODE_PUBLISHED",
              "REQUEST_CATALOG_TYPE_CHANGE_IMPACT_CODE_VISIBLE_TO_EVERYONE",
              "REQUEST_CATALOG_TYPE_CHANGE_IMPACT_CODE_VISIBILITY_BINDINGS",
              "REQUEST_CATALOG_TYPE_CHANGE_IMPACT_CODE_REQUEST_BUNDLE",
              "REQUEST_CATALOG_TYPE_CHANGE_IMPACT_CODE_ENROLLMENT_BEHAVIOR",
              "REQUEST_CATALOG_TYPE_CHANGE_IMPACT_CODE_UNENROLLMENT_BEHAVIOR",
              "REQUEST_CATALOG_TYPE_CHANGE_IMPACT_CODE_UNENROLLMENT_ENTITLEMENT_BEHAVIOR",
              "REQUEST_CATALOG_TYPE_CHANGE_IMPACT_CODE_MEMBERSHIP_REQUEST_SCHEMA",
              "REQUEST_CATALOG_TYPE_CHANGE_IMPACT_CODE_MEMBERSHIP_REQUEST_DEFAULTS_OVERRIDE",
              "REQUEST_CATALOG_TYPE_CHANGE_IMPACT_CODE_BUNDLE_AUTOMATION",
              "REQUEST_CATALOG_TYPE_CHANGE_IMPACT_CODE_MEMBERSHIP_ENTITLEMENT_AUTOMATION",
              "REQUEST_CATALOG_TYPE_CHANGE_IMPACT_CODE_AUTOMATION_EXCLUSIONS",
              "REQUEST_CATALOG_TYPE_CHANGE_IMPACT_CODE_ENROLLED_MEMBERS",
              "REQUEST_CATALOG_TYPE_CHANGE_IMPACT_CODE_CATALOG_MEMBERSHIP_GRANTS",
              "REQUEST_CATALOG_TYPE_CHANGE_IMPACT_CODE_ROLE_MEMBERSHIP_ENTITLEMENTS",
              "REQUEST_CATALOG_TYPE_CHANGE_IMPACT_CODE_CONTAINING_CATALOGS"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "count": {
            "description": "Number of affected objects. Zero means the impact describes one setting.",
            "format": "int64",
            "type": "string"
          },
          "countIsLowerBound": {
            "description": "True when count reached the service safety bound and is a lower bound.",
            "type": "boolean"
          },
          "fieldPath": {
            "description": "Protobuf-style field path when the impact is caused by stored settings.",
            "type": "string"
          },
          "ref": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogTypeChangeImpactRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Request Catalog Type Change Impact",
        "type": "object",
        "x-speakeasy-name-override": "RequestCatalogTypeChangeImpact"
      },
      "c1.api.requestcatalog.v1.RequestCatalogTypeChangeImpactRef": {
        "description": "Object associated with a type-change impact.\n\nThis message contains a oneof named ref. Only a single field of the following list may be set at a time:\n  - requestCatalog\n  - appEntitlement\n  - bundleAutomation\n",
        "properties": {
          "appEntitlement": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "bundleAutomation": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.BundleAutomationRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "requestCatalog": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Request Catalog Type Change Impact Ref",
        "type": "object",
        "x-speakeasy-name-override": "RequestCatalogTypeChangeImpactRef"
      },
      "c1.api.requestcatalog.v1.RequestCatalogView": {
        "description": "The request catalog view contains the serialized request catalog and paths to objects referenced by the request catalog.",
        "properties": {
          "accessEntitlementsPath": {
            "description": "JSONPATH expression indicating the location of the access entitlement objects, that the request catalog allows users to request, in the array.",
            "type": "string"
          },
          "createdByUserPath": {
            "description": "JSONPATH expression indicating the location of the User object, that created the request catalog, in the array.",
            "type": "string"
          },
          "memberCount": {
            "description": "Total number of the members of the catalog",
            "format": "int64",
            "type": "string"
          },
          "requestCatalog": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalog"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Request Catalog View",
        "type": "object",
        "x-speakeasy-name-override": "RequestCatalogView"
      },
      "c1.api.requestcatalog.v1.RequestableEntry": {
        "description": "A requestable entry in a catalog",
        "properties": {
          "appId": {
            "description": "The ID of the app that contains the entitlement",
            "type": "string"
          },
          "catalogId": {
            "description": "The ID of the access profile (catalog)",
            "type": "string"
          },
          "entitlementId": {
            "description": "The ID of the entitlement",
            "type": "string"
          }
        },
        "title": "Requestable Entry",
        "type": "object",
        "x-speakeasy-name-override": "RequestableEntry"
      },
      "c1.api.requestcatalog.v1.ResumePausedBundleAutomationRequestInput": {
        "description": "The request message for resuming a paused bundle automation.",
        "title": "Resume Paused Bundle Automation Request",
        "type": "object",
        "x-speakeasy-name-override": "ResumePausedBundleAutomationRequest"
      },
      "c1.api.requestcatalog.v1.ResumePausedBundleAutomationResponse": {
        "description": "The response message for resuming a paused bundle automation.",
        "title": "Resume Paused Bundle Automation Response",
        "type": "object",
        "x-speakeasy-name-override": "ResumePausedBundleAutomationResponse"
      },
      "c1.api.requestcatalog.v1.ScopeRoleBindingRef": {
        "description": "ScopeRoleBindingRef uniquely identifies a scope's binding state within an access profile and app.",
        "properties": {
          "appId": {
            "description": "The unique identifier of the app.",
            "type": "string"
          },
          "catalogId": {
            "description": "The unique identifier of the access profile.",
            "type": "string"
          },
          "scopeId": {
            "description": "The unique identifier of the scope app resource.",
            "type": "string"
          }
        },
        "title": "Scope Role Binding Ref",
        "type": "object",
        "x-speakeasy-name-override": "ScopeRoleBindingRef"
      },
      "c1.api.requestcatalog.v1.ScopeWithRoles": {
        "description": "ScopeWithRoles represents a single scope resource in an access profile with all of its bound roles.\n There is one entry per unique (app, scope). When is_app_access is true, roles is empty and the\n binding grants app access instead of a role.",
        "properties": {
          "appId": {
            "description": "The unique identifier of the app that the scope belongs to.",
            "type": "string"
          },
          "catalogId": {
            "description": "The unique identifier of the access profile.",
            "type": "string"
          },
          "isAppAccess": {
            "description": "True when the binding is an app-access entitlement rather than a role; roles is empty in that case.",
            "type": "boolean"
          },
          "ref": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.ScopeRoleBindingRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "roles": {
            "description": "The roles bound to this scope in the access profile.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppResource"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "scopeAppResource": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppResource"
              },
              {
                "type": "null"
              }
            ]
          },
          "scopeAppResourceType": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppResourceType"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Scope With Roles",
        "type": "object",
        "x-speakeasy-name-override": "ScopeWithRoles"
      },
      "c1.api.requestcatalog.v1.SearchRequestableCredentialOfferingsRequest": {
        "description": "The SearchRequestableCredentialOfferingsRequest message.",
        "properties": {
          "appId": {
            "description": "Limits the search to one app.",
            "type": "string"
          },
          "pageSize": {
            "description": "The pageSize field.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          },
          "query": {
            "description": "The query field.",
            "type": "string"
          },
          "targetUserId": {
            "description": "The user to search for. Defaults to the caller.",
            "type": "string"
          }
        },
        "title": "Search Requestable Credential Offerings Request",
        "type": "object",
        "x-speakeasy-name-override": "SearchRequestableCredentialOfferingsRequest"
      },
      "c1.api.requestcatalog.v1.SearchRequestableCredentialOfferingsResponse": {
        "description": "The SearchRequestableCredentialOfferingsResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.requestcatalog.v1.CredentialOfferingView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Search Requestable Credential Offerings Response",
        "type": "object",
        "x-speakeasy-name-override": "SearchRequestableCredentialOfferingsResponse"
      },
      "c1.api.requestcatalog.v1.SetBundleAutomationRequestInput": {
        "description": "The request message for creating or updating a bundle automation rule on a catalog.\n\nThis message contains a oneof named conditions. Only a single field of the following list may be set at a time:\n  - entitlements\n  - cel\n",
        "properties": {
          "cel": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.BundleAutomationRuleCEL"
              },
              {
                "type": "null"
              }
            ]
          },
          "createTasks": {
            "description": "Whether to create access request tasks for matched users instead of granting directly.",
            "type": "boolean"
          },
          "disableCircuitBreaker": {
            "description": "Whether to disable the circuit breaker that pauses the automation when excessive membership changes are detected.",
            "type": "boolean"
          },
          "enabled": {
            "description": "Whether the automation should actively run on its schedule.",
            "type": "boolean"
          },
          "enforceOnSmallProfiles": {
            "description": "When true, the circuit breaker is evaluated even on profiles below the\n tenant min-members floor. Defaults to false.",
            "type": "boolean"
          },
          "entitlements": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.BundleAutomationRuleEntitlement"
              },
              {
                "type": "null"
              }
            ]
          },
          "removedMembersThresholdPercent": {
            "description": "Per-automation override for the removed-members percent that trips the\n circuit breaker (1-100). 0 / unset means inherit the tenant default.",
            "format": "int64",
            "type": "string"
          }
        },
        "title": "Set Bundle Automation Request",
        "type": "object",
        "x-speakeasy-name-override": "SetBundleAutomationRequest"
      },
      "c1.api.role_mining_management.v1.CohortHintInput": {
        "description": "The CohortHintInput message.",
        "properties": {
          "attribute": {
            "description": "The user attribute name to use for cohort grouping (e.g., \"department\", \"job_title\").",
            "type": "string"
          },
          "priority": {
            "description": "Relative priority of this hint. Higher values cause the analysis to weight this attribute more heavily.",
            "format": "int32",
            "type": "integer"
          },
          "values": {
            "description": "Specific attribute values to focus on. If empty, all values for the attribute are considered.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Cohort Hint Input",
        "type": "object",
        "x-speakeasy-name-override": "CohortHintInput"
      },
      "c1.api.role_mining_management.v1.CohortHintView": {
        "description": "The CohortHintView message.",
        "properties": {
          "attribute": {
            "description": "The user attribute name used for cohort grouping.",
            "type": "string"
          },
          "priority": {
            "description": "Relative priority of this hint.",
            "format": "int32",
            "type": "integer"
          },
          "values": {
            "description": "The specific attribute values targeted by this hint.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Cohort Hint View",
        "type": "object",
        "x-speakeasy-name-override": "CohortHintView"
      },
      "c1.api.role_mining_management.v1.CohortUserWithCoverage": {
        "description": "CohortUserWithCoverage pairs a user with the count of selected entitlements they hold.",
        "properties": {
          "coveredCount": {
            "description": "Number of selected_entitlements that this user currently holds.",
            "format": "int32",
            "type": "integer"
          },
          "user": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.User"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Cohort User With Coverage",
        "type": "object",
        "x-speakeasy-name-override": "CohortUserWithCoverage"
      },
      "c1.api.role_mining_management.v1.CountEntitlementSelectionFilterAttributeValuesRequestInput": {
        "description": "The CountEntitlementSelectionFilterAttributeValuesRequest message.",
        "properties": {
          "selection": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.role_mining_management.v1.EvaluateEntitlementSelectionRequest"
              },
              {
                "type": "null"
              }
            ]
          },
          "values": {
            "description": "The values field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Count Entitlement Selection Filter Attribute Values Request",
        "type": "object",
        "x-speakeasy-name-override": "CountEntitlementSelectionFilterAttributeValuesRequest"
      },
      "c1.api.role_mining_management.v1.CountEntitlementSelectionFilterAttributeValuesResponse": {
        "description": "The CountEntitlementSelectionFilterAttributeValuesResponse message.",
        "properties": {
          "cohortUserCount": {
            "description": "The cohortUserCount field.",
            "format": "int32",
            "type": "integer"
          },
          "coreUserCount": {
            "description": "The coreUserCount field.",
            "format": "int32",
            "type": "integer"
          },
          "values": {
            "description": "The values field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.role_mining_management.v1.EntitlementSelectionFilterAttributeValueCount"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Count Entitlement Selection Filter Attribute Values Response",
        "type": "object",
        "x-speakeasy-name-override": "CountEntitlementSelectionFilterAttributeValuesResponse"
      },
      "c1.api.role_mining_management.v1.CreateAccessProfileFromCohortRequest": {
        "description": "The CreateAccessProfileFromCohortRequest message.",
        "properties": {
          "accessScope": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.mcp.role_mining.v1.AccessScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "celExpression": {
            "description": "Optional CEL expression for dynamic membership. When non-empty, used\n instead of auto-generating from profile_filters.",
            "type": "string"
          },
          "createTasks": {
            "description": "If true, the automation will create JIT tasks for access changes.\n If false, users are synced to membership without creating tasks.",
            "type": "boolean"
          },
          "description": {
            "description": "Description for the access profile.",
            "type": "string"
          },
          "displayName": {
            "description": "Display name for the access profile.",
            "type": "string"
          },
          "enableAutomation": {
            "description": "If true, enable the dynamic membership automation immediately.",
            "type": "boolean"
          },
          "entitlements": {
            "description": "Entitlements to add to the access profile.",
            "items": {
              "$ref": "#/components/schemas/c1.mcp.role_mining.v1.CohortEntitlement"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "profileFilters": {
            "description": "Profile filters defining the cohort for dynamic membership.",
            "items": {
              "$ref": "#/components/schemas/c1.mcp.role_mining.v1.ProfileFilter"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "suggestionId": {
            "description": "Optional suggestion ID to mark as accepted after creating the profile.",
            "type": "string"
          }
        },
        "title": "Create Access Profile From Cohort Request",
        "type": "object",
        "x-speakeasy-name-override": "CreateAccessProfileFromCohortRequest"
      },
      "c1.api.role_mining_management.v1.CreateAccessProfileFromCohortResponse": {
        "description": "The CreateAccessProfileFromCohortResponse message.",
        "properties": {
          "accessProfileId": {
            "description": "The ID of the created access profile.",
            "type": "string"
          },
          "celExpression": {
            "description": "The CEL expression generated for dynamic membership.",
            "type": "string"
          }
        },
        "title": "Create Access Profile From Cohort Response",
        "type": "object",
        "x-speakeasy-name-override": "CreateAccessProfileFromCohortResponse"
      },
      "c1.api.role_mining_management.v1.CustomAnalysisResultView": {
        "description": "CustomAnalysisResultView is a lightweight summary of a past custom analysis run.",
        "properties": {
          "accessScope": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.mcp.role_mining.v1.AccessScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "cohortSize": {
            "description": "Number of users in the cohort.",
            "format": "int32",
            "type": "integer"
          },
          "completedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "createdByUserId": {
            "description": "User who created this analysis, empty for legacy results.",
            "type": "string"
          },
          "errorMessage": {
            "description": "Error message if the analysis failed, empty on success.",
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for this custom analysis result.",
            "type": "string"
          },
          "profileFilters": {
            "description": "Profile filters that defined the cohort for this analysis.",
            "items": {
              "$ref": "#/components/schemas/c1.mcp.role_mining.v1.ProfileFilter"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "resourceScope": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.mcp.role_mining.v1.ResourceScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "description": "Execution status of this analysis (e.g., running, completed, failed).",
            "enum": [
              "RUN_STATUS_UNSPECIFIED",
              "RUN_STATUS_RUNNING",
              "RUN_STATUS_COMPLETED",
              "RUN_STATUS_FAILED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "suggestionsGenerated": {
            "description": "Number of role suggestions generated.",
            "format": "int32",
            "type": "integer"
          },
          "supersededByResultId": {
            "description": "Newer result that superseded this analysis, when applicable.",
            "type": "string"
          },
          "terminalReason": {
            "description": "Structured terminal reason, unspecified for legacy results.",
            "enum": [
              "CUSTOM_ANALYSIS_TERMINAL_REASON_UNSPECIFIED",
              "CUSTOM_ANALYSIS_TERMINAL_REASON_ERROR",
              "CUSTOM_ANALYSIS_TERMINAL_REASON_SUPERSEDED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Custom Analysis Result View",
        "type": "object",
        "x-speakeasy-name-override": "CustomAnalysisResultView"
      },
      "c1.api.role_mining_management.v1.EntitlementRef": {
        "description": "EntitlementRef identifies an entitlement by application and entitlement ID.",
        "properties": {
          "appId": {
            "description": "Application that owns the entitlement.",
            "type": "string"
          },
          "entitlementId": {
            "description": "Entitlement within the application.",
            "type": "string"
          }
        },
        "title": "Entitlement Ref",
        "type": "object",
        "x-speakeasy-name-override": "EntitlementRef"
      },
      "c1.api.role_mining_management.v1.EntitlementSelectionFilterAttributeValueCount": {
        "description": "The EntitlementSelectionFilterAttributeValueCount message.",
        "properties": {
          "cohortUserCount": {
            "description": "The cohortUserCount field.",
            "format": "int32",
            "type": "integer"
          },
          "coreUserCount": {
            "description": "The coreUserCount field.",
            "format": "int32",
            "type": "integer"
          },
          "value": {
            "description": "The value field.",
            "type": "string"
          }
        },
        "title": "Entitlement Selection Filter Attribute Value Count",
        "type": "object",
        "x-speakeasy-name-override": "EntitlementSelectionFilterAttributeValueCount"
      },
      "c1.api.role_mining_management.v1.EvaluateEntitlementSelectionRequest": {
        "description": "EvaluateEntitlementSelectionRequest selects analyzed entitlements using an\n inclusive coverage cutoff plus optional manual overrides.",
        "properties": {
          "analysisId": {
            "description": "Custom analysis whose cohort and entitlement results define the selection.",
            "type": "string"
          },
          "explicitlyExcluded": {
            "description": "Analyzed entitlements to exclude when they meet the cutoff.",
            "items": {
              "$ref": "#/components/schemas/c1.api.role_mining_management.v1.EntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "explicitlyIncluded": {
            "description": "Analyzed entitlements to include even when they fall below the cutoff.",
            "items": {
              "$ref": "#/components/schemas/c1.api.role_mining_management.v1.EntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "includeFacets": {
            "description": "Whether to return profile attribute facets for exact holders.",
            "type": "boolean"
          },
          "minimumCoverageBasisPoints": {
            "description": "Inclusive minimum entitlement coverage in basis points, where 8000 is 80%.",
            "format": "int32",
            "type": "integer"
          }
        },
        "title": "Evaluate Entitlement Selection Request",
        "type": "object",
        "x-speakeasy-name-override": "EvaluateEntitlementSelectionRequest"
      },
      "c1.api.role_mining_management.v1.EvaluateEntitlementSelectionRequestInput": {
        "description": "EvaluateEntitlementSelectionRequest selects analyzed entitlements using an\n inclusive coverage cutoff plus optional manual overrides.",
        "properties": {
          "explicitlyExcluded": {
            "description": "Analyzed entitlements to exclude when they meet the cutoff.",
            "items": {
              "$ref": "#/components/schemas/c1.api.role_mining_management.v1.EntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "explicitlyIncluded": {
            "description": "Analyzed entitlements to include even when they fall below the cutoff.",
            "items": {
              "$ref": "#/components/schemas/c1.api.role_mining_management.v1.EntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "includeFacets": {
            "description": "Whether to return profile attribute facets for exact holders.",
            "type": "boolean"
          },
          "minimumCoverageBasisPoints": {
            "description": "Inclusive minimum entitlement coverage in basis points, where 8000 is 80%.",
            "format": "int32",
            "type": "integer"
          }
        },
        "title": "Evaluate Entitlement Selection Request",
        "type": "object",
        "x-speakeasy-name-override": "EvaluateEntitlementSelectionRequest"
      },
      "c1.api.role_mining_management.v1.EvaluateEntitlementSelectionResponse": {
        "description": "EvaluateEntitlementSelectionResponse contains the exact impact of the\n resolved entitlement selection.",
        "properties": {
          "coreHolderFacets": {
            "description": "Profile attribute facets narrowed to users who hold every selected entitlement.",
            "items": {
              "$ref": "#/components/schemas/c1.mcp.role_mining.v1.AttributeFacet"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "selectedEntitlementCount": {
            "description": "Number of entitlements in the resolved selection.",
            "format": "int32",
            "type": "integer"
          },
          "usersWithAllEntitlements": {
            "description": "Exact number of cohort users who hold every selected entitlement.",
            "format": "int32",
            "type": "integer"
          }
        },
        "title": "Evaluate Entitlement Selection Response",
        "type": "object",
        "x-speakeasy-name-override": "EvaluateEntitlementSelectionResponse"
      },
      "c1.api.role_mining_management.v1.GetCustomAnalysisResultResponse": {
        "description": "The GetCustomAnalysisResultResponse message.",
        "properties": {
          "accessScope": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.mcp.role_mining.v1.AccessScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "appsAnalyzed": {
            "description": "The appsAnalyzed field.",
            "format": "int32",
            "type": "integer"
          },
          "clusters": {
            "description": "Cluster results.",
            "items": {
              "$ref": "#/components/schemas/c1.mcp.role_mining.v1.EntitlementCluster"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "cohortSize": {
            "description": "The cohortSize field.",
            "format": "int32",
            "type": "integer"
          },
          "completedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "createdByUserId": {
            "description": "User who created this analysis, empty for legacy results.",
            "type": "string"
          },
          "cutoffImpactPoints": {
            "description": "Exact holder counts at each distinct inclusive entitlement coverage cutoff.",
            "items": {
              "$ref": "#/components/schemas/c1.mcp.role_mining.v1.EntitlementCutoffImpactPoint"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "entitlements": {
            "description": "Entitlement coverage results.",
            "items": {
              "$ref": "#/components/schemas/c1.mcp.role_mining.v1.CohortEntitlement"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "errorMessage": {
            "description": "The errorMessage field.",
            "type": "string"
          },
          "facetUserCount": {
            "description": "The facetUserCount field.",
            "format": "int32",
            "type": "integer"
          },
          "facets": {
            "description": "Facet results.",
            "items": {
              "$ref": "#/components/schemas/c1.mcp.role_mining.v1.AttributeFacet"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "profileFilters": {
            "description": "Cohort filters this analysis ran with, echoed back so an exact-ID restore\n is self-contained.",
            "items": {
              "$ref": "#/components/schemas/c1.mcp.role_mining.v1.ProfileFilter"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "resourceScope": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.mcp.role_mining.v1.ResourceScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "description": "The status field.",
            "enum": [
              "RUN_STATUS_UNSPECIFIED",
              "RUN_STATUS_RUNNING",
              "RUN_STATUS_COMPLETED",
              "RUN_STATUS_FAILED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "supersededByResultId": {
            "description": "Newer result that superseded this analysis, when applicable.",
            "type": "string"
          },
          "terminalReason": {
            "description": "Structured terminal reason, unspecified for legacy results.",
            "enum": [
              "CUSTOM_ANALYSIS_TERMINAL_REASON_UNSPECIFIED",
              "CUSTOM_ANALYSIS_TERMINAL_REASON_ERROR",
              "CUSTOM_ANALYSIS_TERMINAL_REASON_SUPERSEDED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Get Custom Analysis Result Response",
        "type": "object",
        "x-speakeasy-name-override": "GetCustomAnalysisResultResponse"
      },
      "c1.api.role_mining_management.v1.GetLatestCustomAnalysisResultResponse": {
        "description": "The GetLatestCustomAnalysisResultResponse message.",
        "properties": {
          "result": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.role_mining_management.v1.CustomAnalysisResultView"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get Latest Custom Analysis Result Response",
        "type": "object",
        "x-speakeasy-name-override": "GetLatestCustomAnalysisResultResponse"
      },
      "c1.api.role_mining_management.v1.GetLatestRunResponse": {
        "description": "The GetLatestRunResponse message.",
        "properties": {
          "run": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.role_mining_management.v1.RoleMiningManagementRun"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get Latest Run Response",
        "type": "object",
        "x-speakeasy-name-override": "GetLatestRunResponse"
      },
      "c1.api.role_mining_management.v1.GetRoleMiningConfigResponse": {
        "description": "The GetRoleMiningConfigResponse message.",
        "properties": {
          "config": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.role_mining_management.v1.RoleMiningManagementConfig"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get Role Mining Config Response",
        "type": "object",
        "x-speakeasy-name-override": "GetRoleMiningConfigResponse"
      },
      "c1.api.role_mining_management.v1.GetSuggestionResponse": {
        "description": "The GetSuggestionResponse message.",
        "properties": {
          "suggestion": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.role_mining_management.v1.RoleMiningManagementSuggestion"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get Suggestion Response",
        "type": "object",
        "x-speakeasy-name-override": "GetSuggestionResponse"
      },
      "c1.api.role_mining_management.v1.ListCohortFilterAttributeValuesResponse": {
        "description": "The ListCohortFilterAttributeValuesResponse message.",
        "properties": {
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          },
          "values": {
            "description": "The values field.",
            "items": {
              "$ref": "#/components/schemas/c1.mcp.role_mining.v1.AttributeValue"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "List Cohort Filter Attribute Values Response",
        "type": "object",
        "x-speakeasy-name-override": "ListCohortFilterAttributeValuesResponse"
      },
      "c1.api.role_mining_management.v1.ListCohortFilterAttributesResponse": {
        "description": "The ListCohortFilterAttributesResponse message.",
        "properties": {
          "attributes": {
            "description": "The attributes field.",
            "items": {
              "$ref": "#/components/schemas/c1.mcp.role_mining.v1.CohortFilterAttribute"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "List Cohort Filter Attributes Response",
        "type": "object",
        "x-speakeasy-name-override": "ListCohortFilterAttributesResponse"
      },
      "c1.api.role_mining_management.v1.ListCustomAnalysisResultsResponse": {
        "description": "The ListCustomAnalysisResultsResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.role_mining_management.v1.CustomAnalysisResultView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "List Custom Analysis Results Response",
        "type": "object",
        "x-speakeasy-name-override": "ListCustomAnalysisResultsResponse"
      },
      "c1.api.role_mining_management.v1.ListRunsResponse": {
        "description": "The ListRunsResponse message.",
        "properties": {
          "list": {
            "description": "The list of role mining analysis runs.",
            "items": {
              "$ref": "#/components/schemas/c1.api.role_mining_management.v1.RoleMiningManagementRun"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token to retrieve the next page of results, empty if no more results.",
            "type": "string"
          }
        },
        "title": "List Runs Response",
        "type": "object",
        "x-speakeasy-name-override": "ListRunsResponse"
      },
      "c1.api.role_mining_management.v1.ListSuggestionsResponse": {
        "description": "The ListSuggestionsResponse message.",
        "properties": {
          "list": {
            "description": "The list of role mining suggestions.",
            "items": {
              "$ref": "#/components/schemas/c1.api.role_mining_management.v1.RoleMiningManagementSuggestion"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token to retrieve the next page of results, empty if no more results.",
            "type": "string"
          }
        },
        "title": "List Suggestions Response",
        "type": "object",
        "x-speakeasy-name-override": "ListSuggestionsResponse"
      },
      "c1.api.role_mining_management.v1.RoleMiningManagementConfig": {
        "description": "The RoleMiningManagementConfig message.",
        "properties": {
          "cohortHints": {
            "description": "Configured cohort hints that guide which user attributes the analysis prioritizes.",
            "items": {
              "$ref": "#/components/schemas/c1.api.role_mining_management.v1.CohortHintView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "maxSuggestions": {
            "description": "Maximum number of suggestions the analysis will produce per run.",
            "format": "int32",
            "type": "integer"
          },
          "minCohortSize": {
            "description": "Minimum number of users a cohort must contain to generate a suggestion.",
            "format": "int32",
            "type": "integer"
          }
        },
        "title": "Role Mining Management Config",
        "type": "object",
        "x-speakeasy-name-override": "RoleMiningManagementConfig"
      },
      "c1.api.role_mining_management.v1.RoleMiningManagementRun": {
        "description": "The RoleMiningManagementRun message.",
        "properties": {
          "cohortsAnalyzed": {
            "description": "Number of user cohorts evaluated during the analysis.",
            "format": "int32",
            "type": "integer"
          },
          "completedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "errorMessage": {
            "description": "Error message if the run failed, empty on success.",
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for this analysis run.",
            "type": "string"
          },
          "status": {
            "description": "Current execution status of this run (e.g., running, completed, failed).",
            "enum": [
              "RUN_STATUS_UNSPECIFIED",
              "RUN_STATUS_RUNNING",
              "RUN_STATUS_COMPLETED",
              "RUN_STATUS_FAILED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "suggestionsGenerated": {
            "description": "Number of role suggestions produced by this run.",
            "format": "int32",
            "type": "integer"
          },
          "totalUsers": {
            "description": "Total number of users evaluated during the analysis.",
            "format": "int32",
            "type": "integer"
          },
          "triggerDetail": {
            "description": "Additional detail about the trigger, such as the user or schedule that initiated the run.",
            "type": "string"
          },
          "triggerType": {
            "description": "How this run was initiated (e.g., manual, scheduled).",
            "enum": [
              "TRIGGER_TYPE_UNSPECIFIED",
              "TRIGGER_TYPE_MANUAL",
              "TRIGGER_TYPE_UPLIFT_COMPLETION",
              "TRIGGER_TYPE_SCHEDULED",
              "TRIGGER_TYPE_DIRECTORY_MERGE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Role Mining Management Run",
        "type": "object",
        "x-speakeasy-name-override": "RoleMiningManagementRun"
      },
      "c1.api.role_mining_management.v1.RoleMiningManagementSuggestion": {
        "description": "The RoleMiningManagementSuggestion message.",
        "properties": {
          "avgCoverage": {
            "description": "Average fraction of suggested entitlements held by each user in the cohort.",
            "type": "number"
          },
          "cohortFilters": {
            "description": "The profile filters that define which users belong to this cohort.",
            "items": {
              "$ref": "#/components/schemas/c1.mcp.role_mining.v1.ProfileFilter"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "cohortSize": {
            "description": "Total number of users in the cohort matching the profile filters.",
            "format": "int32",
            "type": "integer"
          },
          "confidence": {
            "description": "Overall confidence score for this suggestion, from 0.0 to 1.0.",
            "type": "number"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "createdCatalogId": {
            "description": "The ID of the access profile created when this suggestion was accepted, empty if not yet accepted.",
            "type": "string"
          },
          "description": {
            "description": "A human-readable description of the proposed role and the cohort it serves.",
            "type": "string"
          },
          "dimensionCount": {
            "description": "Number of distinct attribute dimensions used to define the cohort.",
            "format": "int32",
            "type": "integer"
          },
          "entitlements": {
            "description": "The entitlements that are commonly held by users in this cohort.",
            "items": {
              "$ref": "#/components/schemas/c1.mcp.role_mining.v1.CohortEntitlement"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "existingProfileMatches": {
            "description": "Existing access profiles that overlap with this suggestion.",
            "items": {
              "$ref": "#/components/schemas/c1.mcp.role_mining.v1.AccessProfileMatch"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "id": {
            "description": "Unique identifier for this suggestion.",
            "type": "string"
          },
          "insights": {
            "description": "Human-readable insights explaining why this role was suggested.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "lastGeneratedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "runId": {
            "description": "The ID of the analysis run that produced this suggestion.",
            "type": "string"
          },
          "suggestedName": {
            "description": "The suggested display name for the proposed role.",
            "type": "string"
          },
          "suggestionState": {
            "description": "Current workflow state of this suggestion (e.g., pending, accepted, dismissed).",
            "enum": [
              "SUGGESTION_STATE_UNSPECIFIED",
              "SUGGESTION_STATE_NEW",
              "SUGGESTION_STATE_DISMISSED",
              "SUGGESTION_STATE_ACCEPTED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "usersWithAll": {
            "description": "Number of users in the cohort that hold all of the suggested entitlements.",
            "format": "int32",
            "type": "integer"
          }
        },
        "title": "Role Mining Management Suggestion",
        "type": "object",
        "x-speakeasy-name-override": "RoleMiningManagementSuggestion"
      },
      "c1.api.role_mining_management.v1.RoleMiningSearchSuggestionsRequest": {
        "description": "The RoleMiningSearchSuggestionsRequest message.",
        "properties": {
          "cohortTypes": {
            "description": "Filter by cohort type (e.g. \"department\", \"job_title\", \"manager\").",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "matchTypes": {
            "description": "Filter by match type against existing access profiles.",
            "items": {
              "enum": [
                "ACCESS_PROFILE_MATCH_TYPE_UNSPECIFIED",
                "ACCESS_PROFILE_MATCH_TYPE_EXACT",
                "ACCESS_PROFILE_MATCH_TYPE_SUPERSET",
                "ACCESS_PROFILE_MATCH_TYPE_PARTIAL"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pageSize": {
            "description": "Maximum number of suggestions to return per page.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "Pagination token from a previous response.",
            "type": "string"
          },
          "query": {
            "description": "Text search — matches against suggested_name, description, and cohort filter values.",
            "type": "string"
          },
          "states": {
            "description": "Filter by suggestion state.",
            "items": {
              "enum": [
                "SUGGESTION_STATE_UNSPECIFIED",
                "SUGGESTION_STATE_NEW",
                "SUGGESTION_STATE_DISMISSED",
                "SUGGESTION_STATE_ACCEPTED"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Role Mining Search Suggestions Request",
        "type": "object",
        "x-speakeasy-name-override": "RoleMiningSearchSuggestionsRequest"
      },
      "c1.api.role_mining_management.v1.RoleMiningSearchSuggestionsResponse": {
        "description": "The RoleMiningSearchSuggestionsResponse message.",
        "properties": {
          "list": {
            "description": "The list of matching role mining suggestions.",
            "items": {
              "$ref": "#/components/schemas/c1.api.role_mining_management.v1.RoleMiningManagementSuggestion"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token to retrieve the next page of results, empty if no more results.",
            "type": "string"
          }
        },
        "title": "Role Mining Search Suggestions Response",
        "type": "object",
        "x-speakeasy-name-override": "RoleMiningSearchSuggestionsResponse"
      },
      "c1.api.role_mining_management.v1.SearchCohortUsersRequestInput": {
        "description": "The SearchCohortUsersRequest message.",
        "properties": {
          "accessScope": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.mcp.role_mining.v1.AccessScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "pageSize": {
            "description": "Maximum number of users to return per page.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "Pagination token from a previous response.",
            "type": "string"
          },
          "profileFilters": {
            "description": "Additional profile filters to narrow the cohort user search.",
            "items": {
              "$ref": "#/components/schemas/c1.mcp.role_mining.v1.ProfileFilter"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "selectedEntitlements": {
            "deprecated": true,
            "description": "Deprecated. This endpoint no longer computes per-user coverage and\n ignores this field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.role_mining_management.v1.EntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Search Cohort Users Request",
        "type": "object",
        "x-speakeasy-name-override": "SearchCohortUsersRequest"
      },
      "c1.api.role_mining_management.v1.SearchCohortUsersResponse": {
        "description": "The SearchCohortUsersResponse message.",
        "properties": {
          "list": {
            "description": "The list of users matching the cohort and optional filters.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.User"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token to retrieve the next page of results, empty if no more results.",
            "type": "string"
          },
          "totalCount": {
            "description": "Best-effort current number of enabled users matching the cohort filters.\n Directory updates may race the paged search. Present on the first page\n only so subsequent pages do not repeat the count query.",
            "format": "int64",
            "type": [
              "string",
              "null"
            ]
          },
          "usersWithCoverage": {
            "deprecated": true,
            "description": "Deprecated. This endpoint no longer computes per-user coverage; this\n list is always empty.",
            "items": {
              "$ref": "#/components/schemas/c1.api.role_mining_management.v1.CohortUserWithCoverage"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Search Cohort Users Response",
        "type": "object",
        "x-speakeasy-name-override": "SearchCohortUsersResponse"
      },
      "c1.api.role_mining_management.v1.TriggerAnalysisRequest": {
        "description": "The TriggerAnalysisRequest message.",
        "title": "Trigger Analysis Request",
        "type": "object",
        "x-speakeasy-name-override": "TriggerAnalysisRequest"
      },
      "c1.api.role_mining_management.v1.TriggerAnalysisResponse": {
        "description": "The TriggerAnalysisResponse message.",
        "properties": {
          "runId": {
            "description": "The ID of the newly created analysis run.",
            "type": "string"
          }
        },
        "title": "Trigger Analysis Response",
        "type": "object",
        "x-speakeasy-name-override": "TriggerAnalysisResponse"
      },
      "c1.api.role_mining_management.v1.TriggerCustomAnalysisRequest": {
        "description": "The TriggerCustomAnalysisRequest message.",
        "properties": {
          "accessScope": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.mcp.role_mining.v1.AccessScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "profileFilters": {
            "description": "The profileFilters field.",
            "items": {
              "$ref": "#/components/schemas/c1.mcp.role_mining.v1.ProfileFilter"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "resourceScope": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.mcp.role_mining.v1.ResourceScope"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Trigger Custom Analysis Request",
        "type": "object",
        "x-speakeasy-name-override": "TriggerCustomAnalysisRequest"
      },
      "c1.api.role_mining_management.v1.TriggerCustomAnalysisResponse": {
        "description": "The TriggerCustomAnalysisResponse message.",
        "properties": {
          "id": {
            "description": "The id field.",
            "type": "string"
          }
        },
        "title": "Trigger Custom Analysis Response",
        "type": "object",
        "x-speakeasy-name-override": "TriggerCustomAnalysisResponse"
      },
      "c1.api.role_mining_management.v1.UpdateRoleMiningConfigRequest": {
        "description": "The UpdateRoleMiningConfigRequest message.",
        "properties": {
          "cohortHints": {
            "description": "Hints that guide the analysis to prioritize specific user attributes and values when forming cohorts.",
            "items": {
              "$ref": "#/components/schemas/c1.api.role_mining_management.v1.CohortHintInput"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "maxSuggestions": {
            "description": "Maximum number of suggestions the analysis should produce per run.",
            "format": "int32",
            "type": "integer"
          },
          "minCohortSize": {
            "description": "Minimum number of users a cohort must contain to generate a suggestion.",
            "format": "int32",
            "type": "integer"
          }
        },
        "title": "Update Role Mining Config Request",
        "type": "object",
        "x-speakeasy-name-override": "UpdateRoleMiningConfigRequest"
      },
      "c1.api.role_mining_management.v1.UpdateRoleMiningConfigResponse": {
        "description": "The UpdateRoleMiningConfigResponse message.",
        "properties": {
          "config": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.role_mining_management.v1.RoleMiningManagementConfig"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Update Role Mining Config Response",
        "type": "object",
        "x-speakeasy-name-override": "UpdateRoleMiningConfigResponse"
      },
      "c1.api.role_mining_management.v1.UpdateSuggestionStateRequestInput": {
        "description": "The UpdateSuggestionStateRequest message.",
        "properties": {
          "createdCatalogId": {
            "description": "The ID of the access profile created from this suggestion, set when accepting.",
            "type": "string"
          },
          "state": {
            "description": "The new state to transition the suggestion to.",
            "enum": [
              "SUGGESTION_STATE_UNSPECIFIED",
              "SUGGESTION_STATE_NEW",
              "SUGGESTION_STATE_DISMISSED",
              "SUGGESTION_STATE_ACCEPTED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Update Suggestion State Request",
        "type": "object",
        "x-speakeasy-name-override": "UpdateSuggestionStateRequest"
      },
      "c1.api.role_mining_management.v1.UpdateSuggestionStateResponse": {
        "description": "The UpdateSuggestionStateResponse message.",
        "properties": {
          "suggestion": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.role_mining_management.v1.RoleMiningManagementSuggestion"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Update Suggestion State Response",
        "type": "object",
        "x-speakeasy-name-override": "UpdateSuggestionStateResponse"
      },
      "c1.api.search.v1.FacetCategory": {
        "description": "The FacetCategory indicates a grouping of facets by type. For example, facets \"OnePassword\" and \"Okta\" would group under an \"Apps\" category.\n\nThis message contains a oneof named item. Only a single field of the following list may be set at a time:\n  - value\n  - range\n",
        "properties": {
          "displayName": {
            "description": "The display name of the category.",
            "type": "string"
          },
          "iconUrl": {
            "description": "An icon for the category.",
            "type": "string"
          },
          "param": {
            "description": "The param that is being set when checking a facet in this category.",
            "type": "string"
          },
          "range": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.search.v1.FacetRangeItem"
              },
              {
                "type": "null"
              }
            ]
          },
          "value": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.search.v1.FacetValueItem"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Facet Category",
        "type": "object",
        "x-speakeasy-name-override": "FacetCategory"
      },
      "c1.api.search.v1.FacetRange": {
        "description": "The FacetRange message.",
        "properties": {
          "count": {
            "description": "The count of items in the range.",
            "format": "int64",
            "type": "string"
          },
          "displayName": {
            "description": "The display name of the range.",
            "type": "string"
          },
          "from": {
            "description": "The starting value of the range.",
            "format": "int64",
            "type": "string"
          },
          "iconUrl": {
            "description": "The icon of the range.",
            "type": "string"
          },
          "to": {
            "description": "The ending value of the range.",
            "format": "int64",
            "type": "string"
          }
        },
        "title": "Facet Range",
        "type": "object",
        "x-speakeasy-name-override": "FacetRange"
      },
      "c1.api.search.v1.FacetRangeItem": {
        "description": "The FacetRangeItem message.",
        "properties": {
          "ranges": {
            "description": "An array of facet ranges.",
            "items": {
              "$ref": "#/components/schemas/c1.api.search.v1.FacetRange"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Facet Range Item",
        "type": "object",
        "x-speakeasy-name-override": "FacetRangeItem"
      },
      "c1.api.search.v1.FacetValue": {
        "description": "A FacetValue message contains count and value of the facet entry.",
        "properties": {
          "count": {
            "description": "The count of the values in this facet.",
            "format": "int64",
            "type": "string"
          },
          "displayName": {
            "description": "The name of this facet.",
            "type": "string"
          },
          "iconUrl": {
            "description": "The icon for this facet.",
            "type": "string"
          },
          "value": {
            "description": "The value of this facet.",
            "type": "string"
          }
        },
        "title": "Facet Value",
        "type": "object",
        "x-speakeasy-name-override": "FacetValue"
      },
      "c1.api.search.v1.FacetValueItem": {
        "description": "The FacetValueItem message.",
        "properties": {
          "values": {
            "description": "An array of facet values.",
            "items": {
              "$ref": "#/components/schemas/c1.api.search.v1.FacetValue"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Facet Value Item",
        "type": "object",
        "x-speakeasy-name-override": "FacetValueItem"
      },
      "c1.api.search.v1.Facets": {
        "description": "Indicates one value of a facet.",
        "properties": {
          "count": {
            "description": "The count of items in this facet.",
            "format": "int64",
            "type": "string"
          },
          "facets": {
            "description": "The facet being referenced.",
            "items": {
              "$ref": "#/components/schemas/c1.api.search.v1.FacetCategory"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Facets",
        "type": "object",
        "x-speakeasy-name-override": "Facets"
      },
      "c1.api.search.v1.SortOptions": {
        "description": "The SortOptions message.",
        "properties": {
          "descending": {
            "description": "The descending field.",
            "type": "boolean"
          },
          "orderBy": {
            "description": "The orderBy field.",
            "type": "string"
          }
        },
        "title": "Sort Options",
        "type": "object",
        "x-speakeasy-name-override": "SortOptions"
      },
      "c1.api.secrets.v1.PaperSecret": {
        "description": "PaperSecret is the API view of a secret (combines Vault + PaperVault fields).\n The vault_id is the primary identifier (Vault.id).",
        "properties": {
          "ageSuite": {
            "description": "Exact Age suite used by the stored ciphertext.",
            "enum": [
              "AGE_SUITE_UNSPECIFIED",
              "AGE_SUITE_X25519",
              "AGE_SUITE_MLKEM768X25519"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "allowedEmails": {
            "description": "The allowedEmails field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "allowedUserIds": {
            "description": "Access control",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "contentDeleted": {
            "description": "The contentDeleted field.",
            "type": "boolean"
          },
          "contentExpiresAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "contentReady": {
            "description": "Whether content has been set (text uploaded or file uploaded)",
            "type": "boolean"
          },
          "contentType": {
            "description": "The contentType field.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "creatorUserId": {
            "description": "Creator",
            "type": "string"
          },
          "currentViews": {
            "description": "The currentViews field.",
            "format": "uint32",
            "type": "integer"
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "displayName": {
            "description": "From Vault",
            "type": "string"
          },
          "fileSize": {
            "description": "File metadata",
            "format": "int64",
            "type": "string"
          },
          "filename": {
            "description": "For FILE secrets: original filename (sanitized)",
            "type": "string"
          },
          "inputFormat": {
            "description": "The inputFormat field.",
            "enum": [
              "SECRET_INPUT_FORMAT_UNSPECIFIED",
              "SECRET_INPUT_FORMAT_PLAINTEXT",
              "SECRET_INPUT_FORMAT_JSON",
              "SECRET_INPUT_FORMAT_YAML",
              "SECRET_INPUT_FORMAT_KEY_VALUE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "maxViews": {
            "description": "View tracking",
            "format": "uint32",
            "type": "integer"
          },
          "secretType": {
            "description": "The secretType field.",
            "enum": [
              "SECRET_TYPE_UNSPECIFIED",
              "SECRET_TYPE_TEXT",
              "SECRET_TYPE_FILE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "shareCode": {
            "description": "Human-friendly share code (XXXX-XXXX-XXXX) for shareable URLs",
            "type": "string"
          },
          "shareUrl": {
            "description": "URL to share with recipients (populated when content_ready is true)",
            "type": "string"
          },
          "sharingMode": {
            "description": "From PaperVault",
            "enum": [
              "PAPER_VAULT_SHARING_MODE_UNSPECIFIED",
              "PAPER_VAULT_SHARING_MODE_INTERNAL",
              "PAPER_VAULT_SHARING_MODE_EXTERNAL"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "status": {
            "description": "Computed status",
            "enum": [
              "SECRET_STATUS_UNSPECIFIED",
              "SECRET_STATUS_ACTIVE",
              "SECRET_STATUS_EXPIRED",
              "SECRET_STATUS_BURNED",
              "SECRET_STATUS_REVOKED",
              "SECRET_STATUS_DATA_DELETED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "vaultId": {
            "description": "Vault.id - primary identifier for the secret",
            "type": "string"
          }
        },
        "title": "Paper Secret",
        "type": "object",
        "x-speakeasy-name-override": "PaperSecret"
      },
      "c1.api.secrets.v1.PaperSecretAdminServiceDeleteRequestInput": {
        "description": "The PaperSecretAdminServiceDeleteRequest message.",
        "title": "Paper Secret Admin Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "PaperSecretAdminServiceDeleteRequest"
      },
      "c1.api.secrets.v1.PaperSecretAdminServiceDeleteResponse": {
        "description": "The PaperSecretAdminServiceDeleteResponse message.",
        "properties": {
          "secret": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.secrets.v1.PaperSecret"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Paper Secret Admin Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "PaperSecretAdminServiceDeleteResponse"
      },
      "c1.api.secrets.v1.PaperSecretAdminServiceGetResponse": {
        "description": "The PaperSecretAdminServiceGetResponse message.",
        "properties": {
          "secret": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.secrets.v1.PaperSecret"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Paper Secret Admin Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "PaperSecretAdminServiceGetResponse"
      },
      "c1.api.secrets.v1.PaperSecretAdminServiceSearchAuditEventsRequest": {
        "description": "The PaperSecretAdminServiceSearchAuditEventsRequest message.",
        "properties": {
          "actorEmail": {
            "description": "Filter by external email (partial match via full-text search)",
            "type": "string"
          },
          "actorUserId": {
            "description": "Filter by C1 user ID (internal users)",
            "type": "string"
          },
          "clientIp": {
            "description": "Filter by client IP (exact match)",
            "type": "string"
          },
          "pageSize": {
            "description": "The pageSize field.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          },
          "vaultId": {
            "description": "Filter by specific vault",
            "type": "string"
          }
        },
        "title": "Paper Secret Admin Service Search Audit Events Request",
        "type": "object",
        "x-speakeasy-name-override": "PaperSecretAdminServiceSearchAuditEventsRequest"
      },
      "c1.api.secrets.v1.PaperSecretAdminServiceSearchAuditEventsResponse": {
        "description": "The PaperSecretAdminServiceSearchAuditEventsResponse message.",
        "properties": {
          "list": {
            "description": "List contains OCSF events directly as JSON structs.\n Follows the same pattern as SystemLogServiceListEventsResponse.",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Paper Secret Admin Service Search Audit Events Response",
        "type": "object",
        "x-speakeasy-name-override": "PaperSecretAdminServiceSearchAuditEventsResponse"
      },
      "c1.api.secrets.v1.PaperSecretAdminServiceSearchRequest": {
        "description": "Admin search request - can filter by any user's secrets.",
        "properties": {
          "createdAfter": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "createdBefore": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "creatorUserIds": {
            "description": "Filter by creator user ID (admin can see all users' secrets)",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "includeDeleted": {
            "description": "Include deleted secrets",
            "type": "boolean"
          },
          "pageSize": {
            "description": "The pageSize field.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          },
          "query": {
            "description": "Fuzzy search by display name",
            "type": "string"
          },
          "secretType": {
            "description": "Filter by secret type (optional)",
            "enum": [
              "SECRET_TYPE_UNSPECIFIED",
              "SECRET_TYPE_TEXT",
              "SECRET_TYPE_FILE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "sharingMode": {
            "description": "Filter by sharing mode (optional)",
            "enum": [
              "PAPER_VAULT_SHARING_MODE_UNSPECIFIED",
              "PAPER_VAULT_SHARING_MODE_INTERNAL",
              "PAPER_VAULT_SHARING_MODE_EXTERNAL"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "sortBy": {
            "description": "Sort order",
            "enum": [
              "SEARCH_SORT_BY_UNSPECIFIED",
              "SEARCH_SORT_BY_CREATED_DESC",
              "SEARCH_SORT_BY_CREATED_ASC",
              "SEARCH_SORT_BY_EXPIRES_ASC",
              "SEARCH_SORT_BY_NAME_ASC"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "statuses": {
            "description": "Filter by status (optional)",
            "items": {
              "enum": [
                "SECRET_STATUS_UNSPECIFIED",
                "SECRET_STATUS_ACTIVE",
                "SECRET_STATUS_EXPIRED",
                "SECRET_STATUS_BURNED",
                "SECRET_STATUS_REVOKED",
                "SECRET_STATUS_DATA_DELETED"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Paper Secret Admin Service Search Request",
        "type": "object",
        "x-speakeasy-name-override": "PaperSecretAdminServiceSearchRequest"
      },
      "c1.api.secrets.v1.PaperSecretAdminServiceSearchResponse": {
        "description": "The PaperSecretAdminServiceSearchResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.secrets.v1.PaperSecret"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Paper Secret Admin Service Search Response",
        "type": "object",
        "x-speakeasy-name-override": "PaperSecretAdminServiceSearchResponse"
      },
      "c1.api.secrets.v1.PaperSecretServiceCreateExternalRequest": {
        "description": "The PaperSecretServiceCreateExternalRequest message.",
        "properties": {
          "allowedEmails": {
            "description": "External email addresses allowed to view this secret (1 to 64).\n Recipients authenticate via email magic link or Google OAuth.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "contentType": {
            "description": "For FILE secrets: MIME content type of the original file. Ignored for TEXT secrets.",
            "type": "string"
          },
          "displayName": {
            "description": "Optional cleartext label visible to the creator in \"My Secrets\" view.\n Not encrypted — do not put sensitive data here.",
            "type": "string"
          },
          "expiresIn": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "fileSize": {
            "description": "For FILE secrets: expected file size in bytes (max 1GB). Ignored for TEXT secrets.",
            "format": "int64",
            "type": "string"
          },
          "filename": {
            "description": "For FILE secrets: original filename (sanitized server-side). Ignored for TEXT secrets.",
            "type": "string"
          },
          "inputFormat": {
            "description": "For TEXT secrets: hint about the plaintext format (e.g., JSON, YAML, key-value).\n Used by the viewer UI for syntax highlighting. Does not affect encryption.",
            "enum": [
              "SECRET_INPUT_FORMAT_UNSPECIFIED",
              "SECRET_INPUT_FORMAT_PLAINTEXT",
              "SECRET_INPUT_FORMAT_JSON",
              "SECRET_INPUT_FORMAT_YAML",
              "SECRET_INPUT_FORMAT_KEY_VALUE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "maxViews": {
            "description": "Maximum number of views before the secret is burned (0 = unlimited).",
            "format": "uint32",
            "type": "integer"
          },
          "requiredAgeSuite": {
            "description": "Exact Age suite required for this submission. UNSPECIFIED preserves legacy X25519 behavior.",
            "enum": [
              "AGE_SUITE_UNSPECIFIED",
              "AGE_SUITE_X25519",
              "AGE_SUITE_MLKEM768X25519"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "secretType": {
            "description": "Secret type: TEXT or FILE.\n TEXT secrets use SetTextContent to upload encrypted content (max 64KB).\n FILE secrets use the upload_url from CreateResponse to upload encrypted content (max 1GB).",
            "enum": [
              "SECRET_TYPE_UNSPECIFIED",
              "SECRET_TYPE_TEXT",
              "SECRET_TYPE_FILE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Paper Secret Service Create External Request",
        "type": "object",
        "x-speakeasy-name-override": "PaperSecretServiceCreateExternalRequest"
      },
      "c1.api.secrets.v1.PaperSecretServiceCreateInternalRequest": {
        "description": "The PaperSecretServiceCreateInternalRequest message.",
        "properties": {
          "allowedUserIds": {
            "description": "C1 User IDs allowed to view this secret (1 to 128).",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "contentType": {
            "description": "For FILE secrets: MIME content type of the original file. Ignored for TEXT secrets.",
            "type": "string"
          },
          "displayName": {
            "description": "Optional cleartext label visible to the creator in \"My Secrets\" view.\n Not encrypted — do not put sensitive data here.",
            "type": "string"
          },
          "expiresIn": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "fileSize": {
            "description": "For FILE secrets: expected file size in bytes (max 1GB). Ignored for TEXT secrets.",
            "format": "int64",
            "type": "string"
          },
          "filename": {
            "description": "For FILE secrets: original filename (sanitized server-side). Ignored for TEXT secrets.",
            "type": "string"
          },
          "inputFormat": {
            "description": "For TEXT secrets: hint about the plaintext format (e.g., JSON, YAML, key-value).\n Used by the viewer UI for syntax highlighting. Does not affect encryption.",
            "enum": [
              "SECRET_INPUT_FORMAT_UNSPECIFIED",
              "SECRET_INPUT_FORMAT_PLAINTEXT",
              "SECRET_INPUT_FORMAT_JSON",
              "SECRET_INPUT_FORMAT_YAML",
              "SECRET_INPUT_FORMAT_KEY_VALUE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "maxViews": {
            "description": "Maximum number of views before the secret is burned (0 = unlimited).",
            "format": "uint32",
            "type": "integer"
          },
          "requiredAgeSuite": {
            "description": "Exact Age suite required for this submission. UNSPECIFIED preserves legacy X25519 behavior.",
            "enum": [
              "AGE_SUITE_UNSPECIFIED",
              "AGE_SUITE_X25519",
              "AGE_SUITE_MLKEM768X25519"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "secretType": {
            "description": "Secret type: TEXT or FILE.\n TEXT secrets use SetTextContent to upload encrypted content (max 64KB).\n FILE secrets use the upload_url from CreateResponse to upload encrypted content (max 1GB).",
            "enum": [
              "SECRET_TYPE_UNSPECIFIED",
              "SECRET_TYPE_TEXT",
              "SECRET_TYPE_FILE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Paper Secret Service Create Internal Request",
        "type": "object",
        "x-speakeasy-name-override": "PaperSecretServiceCreateInternalRequest"
      },
      "c1.api.secrets.v1.PaperSecretServiceCreateResponse": {
        "description": "The PaperSecretServiceCreateResponse message.",
        "properties": {
          "ageRecipient": {
            "description": "Canonical recipient public key for the exact age_suite returned below.\n All content MUST be encrypted to this recipient using the Age encryption format\n before calling SetTextContent or uploading to upload_url.\n See: https://age-encryption.org",
            "type": "string"
          },
          "ageSuite": {
            "description": "Exact Age suite required for this submission.",
            "enum": [
              "AGE_SUITE_UNSPECIFIED",
              "AGE_SUITE_X25519",
              "AGE_SUITE_MLKEM768X25519"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "secret": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.secrets.v1.PaperSecret"
              },
              {
                "type": "null"
              }
            ]
          },
          "uploadUrl": {
            "description": "For FILE secrets: capability URL for uploading the Age-encrypted file.\n Send an HTTP PUT request with the Age-encrypted file bytes as the body\n and Content-Type: application/octet-stream. The payload MUST begin with\n the Age header \"age-encryption.org/v1\\n\". Maximum file size: 1GB.\n Empty for TEXT secrets.",
            "type": "string"
          },
          "vaultId": {
            "description": "Vault ID - primary identifier for this secret.",
            "type": "string"
          }
        },
        "title": "Paper Secret Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "PaperSecretServiceCreateResponse"
      },
      "c1.api.secrets.v1.PaperSecretServiceDeleteRequestInput": {
        "description": "The PaperSecretServiceDeleteRequest message.",
        "title": "Paper Secret Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "PaperSecretServiceDeleteRequest"
      },
      "c1.api.secrets.v1.PaperSecretServiceDeleteResponse": {
        "description": "The PaperSecretServiceDeleteResponse message.",
        "properties": {
          "secret": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.secrets.v1.PaperSecret"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Paper Secret Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "PaperSecretServiceDeleteResponse"
      },
      "c1.api.secrets.v1.PaperSecretServiceGetContentRequestInput": {
        "description": "The PaperSecretServiceGetContentRequest message.",
        "properties": {
          "readerRecipient": {
            "description": "Client's ephemeral Age recipient (age1...) for re-encryption\n Server re-encrypts the content to this recipient",
            "type": "string"
          }
        },
        "title": "Paper Secret Service Get Content Request",
        "type": "object",
        "x-speakeasy-name-override": "PaperSecretServiceGetContentRequest"
      },
      "c1.api.secrets.v1.PaperSecretServiceGetContentResponse": {
        "description": "The PaperSecretServiceGetContentResponse message.\n\nThis message contains a oneof named content. Only a single field of the following list may be set at a time:\n  - encryptedContent\n  - downloadUrl\n",
        "properties": {
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "creatorUserId": {
            "description": "The creatorUserId field.",
            "type": "string"
          },
          "downloadUrl": {
            "description": "For file secrets: presigned S3 download URL (5 minute expiry)\n File is still E2E encrypted - client must decrypt after download\nThis field is part of the `content` oneof.\nSee the documentation for `c1.api.secrets.v1.PaperSecretServiceGetContentResponse` for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "encryptedContent": {
            "description": "For text secrets: Age-encrypted content (encrypted to reader's recipient)\nThis field is part of the `content` oneof.\nSee the documentation for `c1.api.secrets.v1.PaperSecretServiceGetContentResponse` for more details.",
            "format": "base64",
            "type": [
              "string",
              "null"
            ]
          },
          "filename": {
            "description": "Original filename (file secrets only)",
            "type": "string"
          },
          "inputFormat": {
            "description": "Input format hint for rendering (text secrets only)",
            "enum": [
              "SECRET_INPUT_FORMAT_UNSPECIFIED",
              "SECRET_INPUT_FORMAT_PLAINTEXT",
              "SECRET_INPUT_FORMAT_JSON",
              "SECRET_INPUT_FORMAT_YAML",
              "SECRET_INPUT_FORMAT_KEY_VALUE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "secretType": {
            "description": "Secret metadata",
            "enum": [
              "SECRET_TYPE_UNSPECIFIED",
              "SECRET_TYPE_TEXT",
              "SECRET_TYPE_FILE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "viewsRemaining": {
            "description": "Views remaining after this view (-1 = unlimited)",
            "format": "int32",
            "type": "integer"
          }
        },
        "title": "Paper Secret Service Get Content Response",
        "type": "object",
        "x-speakeasy-name-override": "PaperSecretServiceGetContentResponse"
      },
      "c1.api.secrets.v1.PaperSecretServiceGetResponse": {
        "description": "The PaperSecretServiceGetResponse message.",
        "properties": {
          "secret": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.secrets.v1.PaperSecret"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Paper Secret Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "PaperSecretServiceGetResponse"
      },
      "c1.api.secrets.v1.PaperSecretServiceSearchAuditEventsRequest": {
        "description": "PaperSecretServiceSearchAuditEventsRequest searches audit events for a secret\n owned by the calling user. Only the secret creator may query events. Results\n are sanitized to include only time, event type, and actor information.",
        "properties": {
          "pageSize": {
            "description": "Maximum number of results per page (0 uses server default, max 100).",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "Pagination token from a previous response's next_page_token.",
            "type": "string"
          },
          "vaultId": {
            "description": "Required. The vault ID of the secret whose audit events to retrieve.",
            "type": "string"
          }
        },
        "title": "Paper Secret Service Search Audit Events Request",
        "type": "object",
        "x-speakeasy-name-override": "PaperSecretServiceSearchAuditEventsRequest"
      },
      "c1.api.secrets.v1.PaperSecretServiceSearchAuditEventsResponse": {
        "description": "PaperSecretServiceSearchAuditEventsResponse contains a page of audit events\n for the requested secret.",
        "properties": {
          "list": {
            "description": "Sanitized OCSF events containing only time, event type, and actor fields.\n Sensitive fields such as IP addresses, messages, and raw payloads are removed.",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token to retrieve the next page of results. Empty when no more pages exist.",
            "type": "string"
          }
        },
        "title": "Paper Secret Service Search Audit Events Response",
        "type": "object",
        "x-speakeasy-name-override": "PaperSecretServiceSearchAuditEventsResponse"
      },
      "c1.api.secrets.v1.PaperSecretServiceSearchMySecretsRequest": {
        "description": "SearchMySecrets request - for end users viewing their own secrets.\n Automatically scoped to current user.",
        "properties": {
          "accessRelationships": {
            "description": "Restrict results by the authenticated user's relationship to the secret.\n Empty preserves the historical creator-only behavior. When both values are\n supplied, creator takes precedence for secrets shared with their creator.",
            "items": {
              "enum": [
                "PAPER_SECRET_ACCESS_RELATIONSHIP_UNSPECIFIED",
                "PAPER_SECRET_ACCESS_RELATIONSHIP_CREATOR",
                "PAPER_SECRET_ACCESS_RELATIONSHIP_RECIPIENT"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pageSize": {
            "description": "The pageSize field.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          },
          "query": {
            "description": "Fuzzy search by display name",
            "type": "string"
          },
          "secretType": {
            "description": "Filter by secret type. Unspecified returns all secret types.",
            "enum": [
              "SECRET_TYPE_UNSPECIFIED",
              "SECRET_TYPE_TEXT",
              "SECRET_TYPE_FILE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "sharingMode": {
            "description": "Filter by sharing mode. Unspecified returns all sharing modes.",
            "enum": [
              "PAPER_VAULT_SHARING_MODE_UNSPECIFIED",
              "PAPER_VAULT_SHARING_MODE_INTERNAL",
              "PAPER_VAULT_SHARING_MODE_EXTERNAL"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "sortBy": {
            "description": "Sort order",
            "enum": [
              "SEARCH_SORT_BY_UNSPECIFIED",
              "SEARCH_SORT_BY_CREATED_DESC",
              "SEARCH_SORT_BY_CREATED_ASC",
              "SEARCH_SORT_BY_EXPIRES_ASC",
              "SEARCH_SORT_BY_NAME_ASC"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "statuses": {
            "description": "Filter by status. Empty returns all statuses.",
            "items": {
              "enum": [
                "SECRET_STATUS_UNSPECIFIED",
                "SECRET_STATUS_ACTIVE",
                "SECRET_STATUS_EXPIRED",
                "SECRET_STATUS_BURNED",
                "SECRET_STATUS_REVOKED",
                "SECRET_STATUS_DATA_DELETED"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Paper Secret Service Search My Secrets Request",
        "type": "object",
        "x-speakeasy-name-override": "PaperSecretServiceSearchMySecretsRequest"
      },
      "c1.api.secrets.v1.PaperSecretServiceSearchResponse": {
        "description": "Search response for user's own secrets",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.secrets.v1.PaperSecret"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Paper Secret Service Search Response",
        "type": "object",
        "x-speakeasy-name-override": "PaperSecretServiceSearchResponse"
      },
      "c1.api.secrets.v1.PaperSecretServiceSearchSecretsSharedWithMeRequest": {
        "description": "SearchSecretsSharedWithMe request - for end users viewing secrets others\n shared with them. Automatically scoped to current user.",
        "properties": {
          "includeOwn": {
            "description": "Include secrets the caller created and also shared with themselves. Off by\n default so this list stays disjoint from SearchMySecrets.",
            "type": "boolean"
          },
          "pageSize": {
            "description": "The pageSize field.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          },
          "query": {
            "description": "Fuzzy search by display name",
            "type": "string"
          },
          "secretType": {
            "description": "Filter by secret type. Unspecified returns all secret types.",
            "enum": [
              "SECRET_TYPE_UNSPECIFIED",
              "SECRET_TYPE_TEXT",
              "SECRET_TYPE_FILE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "sharingMode": {
            "description": "Filter by sharing mode. Unspecified returns internal secrets; external returns none.",
            "enum": [
              "PAPER_VAULT_SHARING_MODE_UNSPECIFIED",
              "PAPER_VAULT_SHARING_MODE_INTERNAL",
              "PAPER_VAULT_SHARING_MODE_EXTERNAL"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "statuses": {
            "description": "Filter by status. Empty returns all statuses.",
            "items": {
              "enum": [
                "SECRET_STATUS_UNSPECIFIED",
                "SECRET_STATUS_ACTIVE",
                "SECRET_STATUS_EXPIRED",
                "SECRET_STATUS_BURNED",
                "SECRET_STATUS_REVOKED",
                "SECRET_STATUS_DATA_DELETED"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Paper Secret Service Search Secrets Shared With Me Request",
        "type": "object",
        "x-speakeasy-name-override": "PaperSecretServiceSearchSecretsSharedWithMeRequest"
      },
      "c1.api.secrets.v1.PaperSecretServiceSetTextContentRequestInput": {
        "description": "The PaperSecretServiceSetTextContentRequest message.",
        "properties": {
          "encryptedContent": {
            "description": "Age-encrypted content bytes. The plaintext MUST be encrypted using the Age\n encryption format to the age_recipient returned by CreateInternal/CreateExternal.\n The resulting bytes begin with \"age-encryption.org/v1\\n\" followed by the\n encrypted payload. Maximum 64KB after encryption — for larger content, create\n a FILE secret and use the upload_url instead.",
            "format": "base64",
            "type": "string"
          },
          "inputFormat": {
            "description": "Input format hint for the viewer UI when the secret is decrypted.\n Does not affect encryption — this is metadata only.",
            "enum": [
              "SECRET_INPUT_FORMAT_UNSPECIFIED",
              "SECRET_INPUT_FORMAT_PLAINTEXT",
              "SECRET_INPUT_FORMAT_JSON",
              "SECRET_INPUT_FORMAT_YAML",
              "SECRET_INPUT_FORMAT_KEY_VALUE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Paper Secret Service Set Text Content Request",
        "type": "object",
        "x-speakeasy-name-override": "PaperSecretServiceSetTextContentRequest"
      },
      "c1.api.secrets.v1.PaperSecretServiceSetTextContentResponse": {
        "description": "The PaperSecretServiceSetTextContentResponse message.",
        "properties": {
          "secret": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.secrets.v1.PaperSecret"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Paper Secret Service Set Text Content Response",
        "type": "object",
        "x-speakeasy-name-override": "PaperSecretServiceSetTextContentResponse"
      },
      "c1.api.service_principal.v1.ServicePrincipal": {
        "description": "ServicePrincipal represents a tenant-managed non-human identity.",
        "properties": {
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "displayName": {
            "description": "The display name of the service principal.",
            "type": "string"
          },
          "id": {
            "description": "The unique user ID of the service principal.",
            "readOnly": true,
            "type": "string"
          },
          "objectPermissions": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.authorization.v1.ActorObjectPermissions"
              },
              {
                "type": "null"
              }
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "user": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.User"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Service Principal",
        "type": "object",
        "x-speakeasy-name-override": "ServicePrincipal"
      },
      "c1.api.service_principal.v1.ServicePrincipalBinding": {
        "description": "ServicePrincipalBinding is one row in the binding store, naming a\n subject's link to a single service principal.",
        "properties": {
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "servicePrincipalId": {
            "description": "The servicePrincipalId field.",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Service Principal Binding",
        "type": "object",
        "x-speakeasy-name-override": "ServicePrincipalBinding"
      },
      "c1.api.service_principal.v1.ServicePrincipalBindingSubject": {
        "description": "ServicePrincipalBindingSubject identifies the entity that is bound to a\n service principal. Open-ended oneof so future subject kinds (workflows,\n connectors, etc.) can be added without changing the RPC shape.\n\nThis message contains a oneof named kind. Only a single field of the following list may be set at a time:\n  - functionId\n  - ssoApplication\n  - authzenServer\n  - edge\n",
        "properties": {
          "authzenServer": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.authzen.v1.AuthzenServerRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "edge": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.edge.v1.EdgeRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "functionId": {
            "description": "Function ID. The function authenticates outbound c1-api calls as\n user:\u003cservice_principal_id\u003e instead of function:\u003cfunction_id\u003e.\nThis field is part of the `kind` oneof.\nSee the documentation for `c1.api.service_principal.v1.ServicePrincipalBindingSubject` for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "ssoApplication": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Service Principal Binding Subject",
        "type": "object",
        "x-speakeasy-name-override": "ServicePrincipalBindingSubject"
      },
      "c1.api.service_principal.v1.ServicePrincipalCredential": {
        "description": "ServicePrincipalCredential represents a client credential for a service principal.",
        "properties": {
          "allowSourceCidrs": {
            "description": "CIDR restrictions for this credential.",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "clientId": {
            "description": "The full client ID in format: ${cutename}@${tenant}.${installation}/spc",
            "readOnly": true,
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "displayName": {
            "description": "The display name of the credential.",
            "type": "string"
          },
          "expiresAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "The unique ID of the credential (cutename format).",
            "readOnly": true,
            "type": "string"
          },
          "lastUsedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "requireDpop": {
            "description": "Whether DPoP proof-of-possession is required for this credential.",
            "readOnly": true,
            "type": "boolean"
          },
          "scopedRoleIds": {
            "description": "Scoped role IDs for this credential (intersection with SP roles at token issuance).",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "servicePrincipalId": {
            "description": "The service principal user ID this credential belongs to.",
            "readOnly": true,
            "type": "string"
          }
        },
        "title": "Service Principal Credential",
        "type": "object",
        "x-speakeasy-name-override": "ServicePrincipalCredential"
      },
      "c1.api.service_principal.v1.ServicePrincipalServiceAddBindingRequest": {
        "description": "The ServicePrincipalServiceAddBindingRequest message.",
        "properties": {
          "servicePrincipalId": {
            "description": "The servicePrincipalId field.",
            "type": "string"
          },
          "subject": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipalBindingSubject"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Service Principal Service Add Binding Request",
        "type": "object",
        "x-speakeasy-name-override": "ServicePrincipalServiceAddBindingRequest"
      },
      "c1.api.service_principal.v1.ServicePrincipalServiceAddBindingResponse": {
        "description": "The ServicePrincipalServiceAddBindingResponse message.",
        "title": "Service Principal Service Add Binding Response",
        "type": "object",
        "x-speakeasy-name-override": "ServicePrincipalServiceAddBindingResponse"
      },
      "c1.api.service_principal.v1.ServicePrincipalServiceCreateCredentialRequestInput": {
        "description": "The ServicePrincipalServiceCreateCredentialRequest message.",
        "properties": {
          "allowSourceCidrs": {
            "description": "A list of CIDRs to restrict this credential to.\n Accepts IPv4 (e.g. 10.0.0.0/24) or IPv6 (e.g. 2001:db8::/32) CIDRs.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "displayName": {
            "description": "The display name for the new credential.",
            "type": "string"
          },
          "expires": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "requireDpop": {
            "description": "If true, requires DPoP proof-of-possession for token exchange using this credential.",
            "type": "boolean"
          },
          "scopedRoles": {
            "description": "The list of roles to restrict the credential to.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Service Principal Service Create Credential Request",
        "type": "object",
        "x-speakeasy-name-override": "ServicePrincipalServiceCreateCredentialRequest"
      },
      "c1.api.service_principal.v1.ServicePrincipalServiceCreateCredentialResponse": {
        "description": "The ServicePrincipalServiceCreateCredentialResponse message.",
        "properties": {
          "clientSecret": {
            "description": "The client secret. Shown exactly once at creation -- cannot be retrieved again.",
            "type": "string"
          },
          "credential": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipalCredential"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Service Principal Service Create Credential Response",
        "type": "object",
        "x-speakeasy-name-override": "ServicePrincipalServiceCreateCredentialResponse"
      },
      "c1.api.service_principal.v1.ServicePrincipalServiceCreateRequest": {
        "description": "The ServicePrincipalServiceCreateRequest message.",
        "properties": {
          "displayName": {
            "description": "The display name for the new service principal.",
            "type": "string"
          }
        },
        "title": "Service Principal Service Create Request",
        "type": "object",
        "x-speakeasy-name-override": "ServicePrincipalServiceCreateRequest"
      },
      "c1.api.service_principal.v1.ServicePrincipalServiceCreateResponse": {
        "description": "The ServicePrincipalServiceCreateResponse message.",
        "properties": {
          "servicePrincipal": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipal"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Service Principal Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "ServicePrincipalServiceCreateResponse"
      },
      "c1.api.service_principal.v1.ServicePrincipalServiceDeleteBindingRequest": {
        "description": "The ServicePrincipalServiceDeleteBindingRequest message.",
        "properties": {
          "servicePrincipalId": {
            "description": "The servicePrincipalId field.",
            "type": "string"
          },
          "subject": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipalBindingSubject"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Service Principal Service Delete Binding Request",
        "type": "object",
        "x-speakeasy-name-override": "ServicePrincipalServiceDeleteBindingRequest"
      },
      "c1.api.service_principal.v1.ServicePrincipalServiceDeleteBindingResponse": {
        "description": "The ServicePrincipalServiceDeleteBindingResponse message.",
        "title": "Service Principal Service Delete Binding Response",
        "type": "object",
        "x-speakeasy-name-override": "ServicePrincipalServiceDeleteBindingResponse"
      },
      "c1.api.service_principal.v1.ServicePrincipalServiceDeleteRequestInput": {
        "description": "The ServicePrincipalServiceDeleteRequest message.",
        "title": "Service Principal Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "ServicePrincipalServiceDeleteRequest"
      },
      "c1.api.service_principal.v1.ServicePrincipalServiceDeleteResponse": {
        "description": "The ServicePrincipalServiceDeleteResponse message.",
        "title": "Service Principal Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "ServicePrincipalServiceDeleteResponse"
      },
      "c1.api.service_principal.v1.ServicePrincipalServiceGetCredentialResponse": {
        "description": "The ServicePrincipalServiceGetCredentialResponse message.",
        "properties": {
          "credential": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipalCredential"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Service Principal Service Get Credential Response",
        "type": "object",
        "x-speakeasy-name-override": "ServicePrincipalServiceGetCredentialResponse"
      },
      "c1.api.service_principal.v1.ServicePrincipalServiceGetResponse": {
        "description": "The ServicePrincipalServiceGetResponse message.",
        "properties": {
          "servicePrincipal": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipal"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Service Principal Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "ServicePrincipalServiceGetResponse"
      },
      "c1.api.service_principal.v1.ServicePrincipalServiceListBindingsRequest": {
        "description": "The ServicePrincipalServiceListBindingsRequest message.",
        "properties": {
          "pageSize": {
            "description": "The pageSize field.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          },
          "subject": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipalBindingSubject"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Service Principal Service List Bindings Request",
        "type": "object",
        "x-speakeasy-name-override": "ServicePrincipalServiceListBindingsRequest"
      },
      "c1.api.service_principal.v1.ServicePrincipalServiceListBindingsResponse": {
        "description": "The ServicePrincipalServiceListBindingsResponse message.",
        "properties": {
          "bindings": {
            "description": "Active bindings held by the subject in this page. Empty when the\n subject is unbound. Order is unspecified.",
            "items": {
              "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipalBinding"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Service Principal Service List Bindings Response",
        "type": "object",
        "x-speakeasy-name-override": "ServicePrincipalServiceListBindingsResponse"
      },
      "c1.api.service_principal.v1.ServicePrincipalServiceListCredentialsResponse": {
        "description": "The ServicePrincipalServiceListCredentialsResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipalCredential"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Service Principal Service List Credentials Response",
        "type": "object",
        "x-speakeasy-name-override": "ServicePrincipalServiceListCredentialsResponse"
      },
      "c1.api.service_principal.v1.ServicePrincipalServiceListResponse": {
        "description": "The ServicePrincipalServiceListResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipal"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Service Principal Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "ServicePrincipalServiceListResponse"
      },
      "c1.api.service_principal.v1.ServicePrincipalServiceRevokeCredentialRequestInput": {
        "description": "The ServicePrincipalServiceRevokeCredentialRequest message.",
        "title": "Service Principal Service Revoke Credential Request",
        "type": "object",
        "x-speakeasy-name-override": "ServicePrincipalServiceRevokeCredentialRequest"
      },
      "c1.api.service_principal.v1.ServicePrincipalServiceRevokeCredentialResponse": {
        "description": "The ServicePrincipalServiceRevokeCredentialResponse message.",
        "title": "Service Principal Service Revoke Credential Response",
        "type": "object",
        "x-speakeasy-name-override": "ServicePrincipalServiceRevokeCredentialResponse"
      },
      "c1.api.service_principal.v1.ServicePrincipalServiceUpdateCredentialRequestInput": {
        "description": "The ServicePrincipalServiceUpdateCredentialRequest message.",
        "properties": {
          "credential": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipalCredential"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Service Principal Service Update Credential Request",
        "type": "object",
        "x-speakeasy-name-override": "ServicePrincipalServiceUpdateCredentialRequest"
      },
      "c1.api.service_principal.v1.ServicePrincipalServiceUpdateCredentialResponse": {
        "description": "The ServicePrincipalServiceUpdateCredentialResponse message.",
        "properties": {
          "credential": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipalCredential"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Service Principal Service Update Credential Response",
        "type": "object",
        "x-speakeasy-name-override": "ServicePrincipalServiceUpdateCredentialResponse"
      },
      "c1.api.service_principal.v1.ServicePrincipalServiceUpdateRequestInput": {
        "description": "The ServicePrincipalServiceUpdateRequest message.",
        "properties": {
          "servicePrincipal": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipal"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Service Principal Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "ServicePrincipalServiceUpdateRequest"
      },
      "c1.api.service_principal.v1.ServicePrincipalServiceUpdateResponse": {
        "description": "The ServicePrincipalServiceUpdateResponse message.",
        "properties": {
          "servicePrincipal": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipal"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Service Principal Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "ServicePrincipalServiceUpdateResponse"
      },
      "c1.api.session_policy.v1.Allow": {
        "description": "Allow continues the session.",
        "properties": {
          "floorLevel": {
            "description": "The minimum assurance level that satisfies this rule.",
            "enum": [
              "AUTH_LEVEL_UNSPECIFIED",
              "AUTH_LEVEL_NONE",
              "AUTH_LEVEL_SINGLE_FACTOR",
              "AUTH_LEVEL_MULTI_FACTOR",
              "AUTH_LEVEL_PHR",
              "AUTH_LEVEL_PHRH"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Allow",
        "type": "object",
        "x-speakeasy-name-override": "SessionPolicyAllow"
      },
      "c1.api.session_policy.v1.Assignment": {
        "description": "Assignment is one principal (user) assigned to a session policy.",
        "properties": {
          "source": {
            "description": "Whether the assignment is direct or conferred through a group.",
            "enum": [
              "ASSIGNMENT_SOURCE_UNSPECIFIED",
              "ASSIGNMENT_SOURCE_DIRECT",
              "ASSIGNMENT_SOURCE_GROUP"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "userId": {
            "description": "The assigned user's ID.",
            "type": "string"
          }
        },
        "title": "Assignment",
        "type": "object",
        "x-speakeasy-name-override": "Assignment"
      },
      "c1.api.session_policy.v1.ChallengeRequired": {
        "description": "ChallengeRequired asks for an additional factor.",
        "properties": {
          "types": {
            "description": "The types field.",
            "items": {
              "enum": [
                "CREDENTIAL_TYPE_UNSPECIFIED",
                "CREDENTIAL_TYPE_PASSKEY",
                "CREDENTIAL_TYPE_PASSWORD",
                "CREDENTIAL_TYPE_TOTP",
                "CREDENTIAL_TYPE_EMAIL_OTP",
                "CREDENTIAL_TYPE_RECOVERY_CODE",
                "CREDENTIAL_TYPE_DELEGATED_GOOGLE",
                "CREDENTIAL_TYPE_DELEGATED_MICROSOFT",
                "CREDENTIAL_TYPE_UPSTREAM_IDP"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Challenge Required",
        "type": "object",
        "x-speakeasy-name-override": "SessionPolicyChallengeRequired"
      },
      "c1.api.session_policy.v1.Deny": {
        "description": "Deny terminates the session.",
        "properties": {
          "reasonAdmin": {
            "description": "Reason shown in admin-only audit.",
            "type": "string"
          },
          "reasonUser": {
            "description": "Reason safe to show the end user.",
            "type": "string"
          }
        },
        "title": "Deny",
        "type": "object",
        "x-speakeasy-name-override": "SessionPolicyDeny"
      },
      "c1.api.session_policy.v1.EffectiveUserPolicy": {
        "description": "EffectiveUserPolicy is one session policy that applies to a user.",
        "properties": {
          "group": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlement"
              },
              {
                "type": "null"
              }
            ]
          },
          "policy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.session_policy.v1.SessionPolicy"
              },
              {
                "type": "null"
              }
            ]
          },
          "source": {
            "description": "Why the policy applies to the user.",
            "enum": [
              "EFFECTIVE_SESSION_POLICY_SOURCE_UNSPECIFIED",
              "EFFECTIVE_SESSION_POLICY_SOURCE_DIRECT",
              "EFFECTIVE_SESSION_POLICY_SOURCE_GROUP",
              "EFFECTIVE_SESSION_POLICY_SOURCE_TENANT_DEFAULT",
              "EFFECTIVE_SESSION_POLICY_SOURCE_TENANT_DEFAULT_NONE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Effective User Policy",
        "type": "object",
        "x-speakeasy-name-override": "EffectiveUserPolicy"
      },
      "c1.api.session_policy.v1.EnrollmentRequired": {
        "description": "EnrollmentRequired tells the user to enroll a credential before continuing.",
        "properties": {
          "credentialTypes": {
            "description": "The credentialTypes field.",
            "items": {
              "enum": [
                "CREDENTIAL_TYPE_UNSPECIFIED",
                "CREDENTIAL_TYPE_PASSKEY",
                "CREDENTIAL_TYPE_PASSWORD",
                "CREDENTIAL_TYPE_TOTP",
                "CREDENTIAL_TYPE_EMAIL_OTP",
                "CREDENTIAL_TYPE_RECOVERY_CODE",
                "CREDENTIAL_TYPE_DELEGATED_GOOGLE",
                "CREDENTIAL_TYPE_DELEGATED_MICROSOFT",
                "CREDENTIAL_TYPE_UPSTREAM_IDP"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Enrollment Required",
        "type": "object",
        "x-speakeasy-name-override": "SessionPolicyEnrollmentRequired"
      },
      "c1.api.session_policy.v1.PerCredentialDuration": {
        "description": "PerCredentialDuration overrides session lifetimes for sessions established\n with a particular credential type — stronger credentials can earn longer\n sessions.",
        "properties": {
          "accessTokenTtlSeconds": {
            "description": "Access-token lifetime for this credential type, in seconds.",
            "format": "int32",
            "type": "integer"
          },
          "credentialType": {
            "description": "The credentialType field.",
            "enum": [
              "CREDENTIAL_TYPE_UNSPECIFIED",
              "CREDENTIAL_TYPE_PASSKEY",
              "CREDENTIAL_TYPE_PASSWORD",
              "CREDENTIAL_TYPE_TOTP",
              "CREDENTIAL_TYPE_EMAIL_OTP",
              "CREDENTIAL_TYPE_RECOVERY_CODE",
              "CREDENTIAL_TYPE_DELEGATED_GOOGLE",
              "CREDENTIAL_TYPE_DELEGATED_MICROSOFT",
              "CREDENTIAL_TYPE_UPSTREAM_IDP"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "maxSessionDurationSeconds": {
            "description": "Maximum total session duration for this credential type, in seconds.",
            "format": "int32",
            "type": "integer"
          }
        },
        "title": "Per Credential Duration",
        "type": "object",
        "x-speakeasy-name-override": "PerCredentialDuration"
      },
      "c1.api.session_policy.v1.PolicyOutcome": {
        "description": "PolicyOutcome is the effect of a matched rule. Exactly one kind is set. For\n session continuous-evaluation, the meaningful kinds are Allow (continue),\n Deny (terminate), and StepUpRequired.\n\nThis message contains a oneof named kind. Only a single field of the following list may be set at a time:\n  - allow\n  - deny\n  - stepUpRequired\n  - challengeRequired\n  - enrollmentRequired\n",
        "properties": {
          "allow": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.session_policy.v1.Allow"
              },
              {
                "type": "null"
              }
            ]
          },
          "challengeRequired": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.session_policy.v1.ChallengeRequired"
              },
              {
                "type": "null"
              }
            ]
          },
          "deny": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.session_policy.v1.Deny"
              },
              {
                "type": "null"
              }
            ]
          },
          "enrollmentRequired": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.session_policy.v1.EnrollmentRequired"
              },
              {
                "type": "null"
              }
            ]
          },
          "stepUpRequired": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.session_policy.v1.StepUpRequired"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Policy Outcome",
        "type": "object",
        "x-speakeasy-name-override": "SessionPolicyPolicyOutcome"
      },
      "c1.api.session_policy.v1.PolicyRule": {
        "description": "PolicyRule is one rung of the ordered continuous-evaluation cascade. Rules\n are evaluated top to bottom on every request; the first enforced rule whose\n condition matches supplies the outcome.",
        "properties": {
          "description": {
            "description": "The description field.",
            "type": "string"
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "matchCel": {
            "description": "The matchCel field.",
            "type": "string"
          },
          "mode": {
            "description": "The mode field.",
            "enum": [
              "POLICY_RULE_MODE_UNSPECIFIED",
              "POLICY_RULE_MODE_ENFORCE",
              "POLICY_RULE_MODE_OBSERVE",
              "POLICY_RULE_MODE_DISABLED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "outcome": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.session_policy.v1.PolicyOutcome"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Policy Rule",
        "type": "object",
        "x-speakeasy-name-override": "SessionPolicyPolicyRule"
      },
      "c1.api.session_policy.v1.PolicyUser": {
        "description": "PolicyUser is one user a session policy applies to.",
        "properties": {
          "group": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlement"
              },
              {
                "type": "null"
              }
            ]
          },
          "source": {
            "description": "Why the policy applies to this user. DIRECT or GROUP.",
            "enum": [
              "EFFECTIVE_SESSION_POLICY_SOURCE_UNSPECIFIED",
              "EFFECTIVE_SESSION_POLICY_SOURCE_DIRECT",
              "EFFECTIVE_SESSION_POLICY_SOURCE_GROUP",
              "EFFECTIVE_SESSION_POLICY_SOURCE_TENANT_DEFAULT",
              "EFFECTIVE_SESSION_POLICY_SOURCE_TENANT_DEFAULT_NONE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "user": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.User"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Policy User",
        "type": "object",
        "x-speakeasy-name-override": "PolicyUser"
      },
      "c1.api.session_policy.v1.SSFReceiverConfig": {
        "description": "SSFReceiverConfig selects which inbound shared-signals streams this session\n trusts. Each stream's issuer, keys, expected audience, and per-event actions\n are configured on the stream itself; this policy just lists the stream IDs.",
        "properties": {
          "enabled": {
            "description": "Whether inbound shared-signals consumption is enabled for this policy.",
            "type": "boolean"
          },
          "ssfReceiverStreamIds": {
            "description": "The inbound stream IDs this policy trusts.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Ssf Receiver Config",
        "type": "object",
        "x-speakeasy-name-override": "SSFReceiverConfig"
      },
      "c1.api.session_policy.v1.SSFTransmitterConfig": {
        "description": "SSFTransmitterConfig selects which outbound shared-signals streams this\n session emits security events to. Each stream's delivery endpoint,\n authentication, and per-event allowlist are configured on the stream itself;\n this policy just lists the stream IDs and the event types to emit.",
        "properties": {
          "enabled": {
            "description": "Whether outbound shared-signals emission is enabled for this policy.",
            "type": "boolean"
          },
          "eventTypes": {
            "description": "The shared-signals event types to emit at the policy level.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "ssfTransmitterStreamIds": {
            "description": "The outbound stream IDs this policy emits to.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Ssf Transmitter Config",
        "type": "object",
        "x-speakeasy-name-override": "SSFTransmitterConfig"
      },
      "c1.api.session_policy.v1.SessionPolicy": {
        "description": "SessionPolicy defines session lifetime and continuous-evaluation behavior.",
        "properties": {
          "accessTokenTtlSeconds": {
            "description": "How long an access token is valid, in seconds.",
            "format": "int32",
            "type": "integer"
          },
          "continuousDefaultOutcome": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.session_policy.v1.PolicyOutcome"
              },
              {
                "type": "null"
              }
            ]
          },
          "continuousRules": {
            "description": "The continuous-evaluation rule cascade, re-checked on every request and on\n inbound shared-signals events.",
            "items": {
              "$ref": "#/components/schemas/c1.api.session_policy.v1.PolicyRule"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "credentialDurations": {
            "description": "Per-credential-type lifetime overrides.",
            "items": {
              "$ref": "#/components/schemas/c1.api.session_policy.v1.PerCredentialDuration"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "displayName": {
            "description": "A human-readable name for the policy.",
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for the policy.",
            "readOnly": true,
            "type": "string"
          },
          "idleTimeoutSeconds": {
            "description": "How long a session may be idle before it ends, in seconds.",
            "format": "int32",
            "type": "integer"
          },
          "isBuiltin": {
            "description": "True for built-in policies provided by ConductorOne. Built-in policies\n cannot be edited or deleted.",
            "readOnly": true,
            "type": "boolean"
          },
          "maxSessionDurationSeconds": {
            "description": "The maximum total lifetime of a session, in seconds.",
            "format": "int32",
            "type": "integer"
          },
          "persistence": {
            "description": "Whether sessions may persist across browser restarts.",
            "enum": [
              "PERSISTENCE_MODE_UNSPECIFIED",
              "PERSISTENCE_MODE_ALLOW_USER_CHOICE",
              "PERSISTENCE_MODE_ALWAYS_PERSIST",
              "PERSISTENCE_MODE_SESSION_ONLY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "priority": {
            "description": "When a user matches more than one policy, the policy with the highest\n priority applies.",
            "format": "int32",
            "type": "integer"
          },
          "refreshRotationWindowSeconds": {
            "description": "Grace window after rotation during which the previous refresh token is\n still accepted, in seconds (covers in-flight client retries).",
            "format": "int32",
            "type": "integer"
          },
          "refreshTokenTtlSeconds": {
            "description": "How long a refresh token is valid, in seconds.",
            "format": "int32",
            "type": "integer"
          },
          "rotateRefreshOnUse": {
            "description": "Whether to issue a new refresh token each time one is used.",
            "type": "boolean"
          },
          "ssfReceive": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.session_policy.v1.SSFReceiverConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "ssfTransmit": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.session_policy.v1.SSFTransmitterConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Session Policy",
        "type": "object",
        "x-speakeasy-entity": "SessionPolicy",
        "x-speakeasy-name-override": "SessionPolicy"
      },
      "c1.api.session_policy.v1.SessionPolicyRef": {
        "description": "SessionPolicyRef is a lightweight reference to a session policy by ID.",
        "properties": {
          "id": {
            "description": "The id field.",
            "type": "string"
          }
        },
        "title": "Session Policy Ref",
        "type": "object",
        "x-speakeasy-name-override": "SessionPolicyRef"
      },
      "c1.api.session_policy.v1.SessionPolicyServiceAssignGroupRequestInput": {
        "description": "The SessionPolicyServiceAssignGroupRequest message.",
        "properties": {
          "groupAppEntitlementId": {
            "description": "The group's app-entitlement ID. Every member of the group becomes assigned.",
            "type": "string"
          }
        },
        "required": [
          "groupAppEntitlementId"
        ],
        "title": "Session Policy Service Assign Group Request",
        "type": "object",
        "x-speakeasy-name-override": "SessionPolicyServiceAssignGroupRequest"
      },
      "c1.api.session_policy.v1.SessionPolicyServiceAssignGroupResponse": {
        "description": "The SessionPolicyServiceAssignGroupResponse message.",
        "title": "Session Policy Service Assign Group Response",
        "type": "object",
        "x-speakeasy-name-override": "SessionPolicyServiceAssignGroupResponse"
      },
      "c1.api.session_policy.v1.SessionPolicyServiceAssignUserRequestInput": {
        "description": "The SessionPolicyServiceAssignUserRequest message.",
        "properties": {
          "userId": {
            "description": "The user to assign.",
            "type": "string"
          }
        },
        "required": [
          "userId"
        ],
        "title": "Session Policy Service Assign User Request",
        "type": "object",
        "x-speakeasy-name-override": "SessionPolicyServiceAssignUserRequest"
      },
      "c1.api.session_policy.v1.SessionPolicyServiceAssignUserResponse": {
        "description": "The SessionPolicyServiceAssignUserResponse message.",
        "title": "Session Policy Service Assign User Response",
        "type": "object",
        "x-speakeasy-name-override": "SessionPolicyServiceAssignUserResponse"
      },
      "c1.api.session_policy.v1.SessionPolicyServiceCreateRequest": {
        "description": "The SessionPolicyServiceCreateRequest message.",
        "properties": {
          "accessTokenTtlSeconds": {
            "description": "The accessTokenTtlSeconds field.",
            "format": "int32",
            "type": "integer"
          },
          "continuousDefaultOutcome": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.session_policy.v1.PolicyOutcome"
              },
              {
                "type": "null"
              }
            ]
          },
          "continuousRules": {
            "description": "The continuousRules field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.session_policy.v1.PolicyRule"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "credentialDurations": {
            "description": "The credentialDurations field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.session_policy.v1.PerCredentialDuration"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "idleTimeoutSeconds": {
            "description": "The idleTimeoutSeconds field.",
            "format": "int32",
            "type": "integer"
          },
          "maxSessionDurationSeconds": {
            "description": "The maxSessionDurationSeconds field.",
            "format": "int32",
            "type": "integer"
          },
          "persistence": {
            "description": "The persistence field.",
            "enum": [
              "PERSISTENCE_MODE_UNSPECIFIED",
              "PERSISTENCE_MODE_ALLOW_USER_CHOICE",
              "PERSISTENCE_MODE_ALWAYS_PERSIST",
              "PERSISTENCE_MODE_SESSION_ONLY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "priority": {
            "description": "The priority field.",
            "format": "int32",
            "type": "integer"
          },
          "refreshRotationWindowSeconds": {
            "description": "The refreshRotationWindowSeconds field.",
            "format": "int32",
            "type": "integer"
          },
          "refreshTokenTtlSeconds": {
            "description": "The refreshTokenTtlSeconds field.",
            "format": "int32",
            "type": "integer"
          },
          "rotateRefreshOnUse": {
            "description": "The rotateRefreshOnUse field.",
            "type": "boolean"
          },
          "ssfReceive": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.session_policy.v1.SSFReceiverConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "ssfTransmit": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.session_policy.v1.SSFTransmitterConfig"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "displayName"
        ],
        "title": "Session Policy Service Create Request",
        "type": "object",
        "x-speakeasy-entity": "SessionPolicy",
        "x-speakeasy-name-override": "SessionPolicyServiceCreateRequest"
      },
      "c1.api.session_policy.v1.SessionPolicyServiceCreateResponse": {
        "description": "The SessionPolicyServiceCreateResponse message.",
        "properties": {
          "sessionPolicy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.session_policy.v1.SessionPolicy"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Session Policy Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "SessionPolicyServiceCreateResponse"
      },
      "c1.api.session_policy.v1.SessionPolicyServiceDeleteRequestInput": {
        "description": "The SessionPolicyServiceDeleteRequest message.",
        "title": "Session Policy Service Delete Request",
        "type": "object",
        "x-speakeasy-entity": "SessionPolicy",
        "x-speakeasy-name-override": "SessionPolicyServiceDeleteRequest"
      },
      "c1.api.session_policy.v1.SessionPolicyServiceDeleteResponse": {
        "description": "The SessionPolicyServiceDeleteResponse message.",
        "title": "Session Policy Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "SessionPolicyServiceDeleteResponse"
      },
      "c1.api.session_policy.v1.SessionPolicyServiceGetEffectiveSessionPolicyResponse": {
        "description": "SessionPolicyServiceGetEffectiveSessionPolicyResponse carries the effective\n policy and why it applies.",
        "properties": {
          "group": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlement"
              },
              {
                "type": "null"
              }
            ]
          },
          "sessionPolicy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.session_policy.v1.SessionPolicy"
              },
              {
                "type": "null"
              }
            ]
          },
          "source": {
            "description": "Why the policy applies.",
            "enum": [
              "EFFECTIVE_SESSION_POLICY_SOURCE_UNSPECIFIED",
              "EFFECTIVE_SESSION_POLICY_SOURCE_DIRECT",
              "EFFECTIVE_SESSION_POLICY_SOURCE_GROUP",
              "EFFECTIVE_SESSION_POLICY_SOURCE_TENANT_DEFAULT",
              "EFFECTIVE_SESSION_POLICY_SOURCE_TENANT_DEFAULT_NONE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Session Policy Service Get Effective Session Policy Response",
        "type": "object",
        "x-speakeasy-name-override": "SessionPolicyServiceGetEffectiveSessionPolicyResponse"
      },
      "c1.api.session_policy.v1.SessionPolicyServiceGetResponse": {
        "description": "The SessionPolicyServiceGetResponse message.",
        "properties": {
          "sessionPolicy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.session_policy.v1.SessionPolicy"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Session Policy Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "SessionPolicyServiceGetResponse"
      },
      "c1.api.session_policy.v1.SessionPolicyServiceListAssignmentsResponse": {
        "description": "The SessionPolicyServiceListAssignmentsResponse message.",
        "properties": {
          "assignments": {
            "description": "The assignments field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.session_policy.v1.Assignment"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Session Policy Service List Assignments Response",
        "type": "object",
        "x-speakeasy-name-override": "SessionPolicyServiceListAssignmentsResponse"
      },
      "c1.api.session_policy.v1.SessionPolicyServiceListResponse": {
        "description": "The SessionPolicyServiceListResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.session_policy.v1.SessionPolicy"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Session Policy Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "SessionPolicyServiceListResponse"
      },
      "c1.api.session_policy.v1.SessionPolicyServiceListUserPoliciesResponse": {
        "description": "SessionPolicyServiceListUserPoliciesResponse carries every policy that\n applies to the user. Unpaginated: the candidate set is the user's assigned\n policies plus at most one tenant default.",
        "properties": {
          "policies": {
            "description": "Every policy that applies to the user, in assignment order.",
            "items": {
              "$ref": "#/components/schemas/c1.api.session_policy.v1.EffectiveUserPolicy"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Session Policy Service List User Policies Response",
        "type": "object",
        "x-speakeasy-name-override": "SessionPolicyServiceListUserPoliciesResponse"
      },
      "c1.api.session_policy.v1.SessionPolicyServiceSearchAppUserSessionPoliciesRequestInput": {
        "description": "Search the policies selected for users with accounts holding the application's\n SSO sign-in entitlement. Accounts not linked to a current user are excluded.",
        "properties": {
          "pageSize": {
            "description": "Maximum number of policies per page. Follow next_page_token to complete the search.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The page token from the previous response.",
            "type": "string"
          }
        },
        "title": "Session Policy Service Search App User Session Policies Request",
        "type": "object",
        "x-speakeasy-name-override": "SessionPolicyServiceSearchAppUserSessionPoliciesRequest"
      },
      "c1.api.session_policy.v1.SessionPolicyServiceSearchAppUserSessionPoliciesResponse": {
        "description": "Distinct effective policies, ordered by display name and policy ID.\n A tenant default appears only if it is selected for at least one user.\n An empty list means no effective policies were found, including when no\n current users have accounts holding the sign-in entitlement.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.session_policy.v1.SessionPolicy"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The token for the next page. Empty on the last page.",
            "type": "string"
          }
        },
        "title": "Session Policy Service Search App User Session Policies Response",
        "type": "object",
        "x-speakeasy-name-override": "SessionPolicyServiceSearchAppUserSessionPoliciesResponse"
      },
      "c1.api.session_policy.v1.SessionPolicyServiceSearchPolicyUsersRequestInput": {
        "description": "SessionPolicyServiceSearchPolicyUsersRequest searches the users a policy\n applies to, one page at a time. This read is served from the\n asynchronously-replicated Postgres mirror of the binding store, so a\n just-made assignment may not appear immediately; the user-scoped reads\n (GetEffectiveSessionPolicy, ListUserPolicies) reflect current state.",
        "properties": {
          "pageSize": {
            "description": "The maximum number of users to return per page. The server clamps this\n to its own bounds (currently 5..100). Always follow next_page_token to\n complete the search.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The page token from the previous response.",
            "type": "string"
          },
          "query": {
            "description": "Fuzzy search on user display name and email. Empty matches all users\n the policy applies to. Applied in the query together with the source\n facet, so pages carry only matching rows.",
            "type": "string"
          },
          "source": {
            "description": "When set, restrict results to this source. UNSPECIFIED returns all users.",
            "enum": [
              "EFFECTIVE_SESSION_POLICY_SOURCE_FILTER_UNSPECIFIED",
              "EFFECTIVE_SESSION_POLICY_SOURCE_FILTER_DIRECT",
              "EFFECTIVE_SESSION_POLICY_SOURCE_FILTER_GROUP"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Session Policy Service Search Policy Users Request",
        "type": "object",
        "x-speakeasy-name-override": "SessionPolicyServiceSearchPolicyUsersRequest"
      },
      "c1.api.session_policy.v1.SessionPolicyServiceSearchPolicyUsersResponse": {
        "description": "SessionPolicyServiceSearchPolicyUsersResponse carries one page of the users\n a policy applies to.",
        "properties": {
          "nextPageToken": {
            "description": "The token for the next page. Empty when this is the last page.",
            "type": "string"
          },
          "users": {
            "description": "The users on this page.",
            "items": {
              "$ref": "#/components/schemas/c1.api.session_policy.v1.PolicyUser"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Session Policy Service Search Policy Users Response",
        "type": "object",
        "x-speakeasy-name-override": "SessionPolicyServiceSearchPolicyUsersResponse"
      },
      "c1.api.session_policy.v1.SessionPolicyServiceSearchRequest": {
        "description": "The SessionPolicyServiceSearchRequest message.",
        "properties": {
          "pageSize": {
            "description": "The pageSize field.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          },
          "query": {
            "description": "Free-text search over the policy name. Empty matches all policies.",
            "type": "string"
          },
          "refs": {
            "description": "Restrict results to these specific policies. Empty matches all policies.",
            "items": {
              "$ref": "#/components/schemas/c1.api.session_policy.v1.SessionPolicyRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Session Policy Service Search Request",
        "type": "object",
        "x-speakeasy-name-override": "SessionPolicyServiceSearchRequest"
      },
      "c1.api.session_policy.v1.SessionPolicyServiceSearchResponse": {
        "description": "The SessionPolicyServiceSearchResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.session_policy.v1.SessionPolicy"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Session Policy Service Search Response",
        "type": "object",
        "x-speakeasy-name-override": "SessionPolicyServiceSearchResponse"
      },
      "c1.api.session_policy.v1.SessionPolicyServiceUnassignGroupRequestInput": {
        "description": "The SessionPolicyServiceUnassignGroupRequest message.",
        "title": "Session Policy Service Unassign Group Request",
        "type": "object",
        "x-speakeasy-name-override": "SessionPolicyServiceUnassignGroupRequest"
      },
      "c1.api.session_policy.v1.SessionPolicyServiceUnassignGroupResponse": {
        "description": "The SessionPolicyServiceUnassignGroupResponse message.",
        "title": "Session Policy Service Unassign Group Response",
        "type": "object",
        "x-speakeasy-name-override": "SessionPolicyServiceUnassignGroupResponse"
      },
      "c1.api.session_policy.v1.SessionPolicyServiceUnassignUserRequestInput": {
        "description": "The SessionPolicyServiceUnassignUserRequest message.",
        "title": "Session Policy Service Unassign User Request",
        "type": "object",
        "x-speakeasy-name-override": "SessionPolicyServiceUnassignUserRequest"
      },
      "c1.api.session_policy.v1.SessionPolicyServiceUnassignUserResponse": {
        "description": "The SessionPolicyServiceUnassignUserResponse message.",
        "title": "Session Policy Service Unassign User Response",
        "type": "object",
        "x-speakeasy-name-override": "SessionPolicyServiceUnassignUserResponse"
      },
      "c1.api.session_policy.v1.SessionPolicyServiceUpdateRequestInput": {
        "description": "The SessionPolicyServiceUpdateRequest message.",
        "properties": {
          "sessionPolicy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.session_policy.v1.SessionPolicy"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Session Policy Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "SessionPolicyServiceUpdateRequest"
      },
      "c1.api.session_policy.v1.SessionPolicyServiceUpdateResponse": {
        "description": "The SessionPolicyServiceUpdateResponse message.",
        "properties": {
          "sessionPolicy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.session_policy.v1.SessionPolicy"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Session Policy Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "SessionPolicyServiceUpdateResponse"
      },
      "c1.api.session_policy.v1.StepUpRequired": {
        "description": "StepUpRequired demands a stronger re-authentication before the session may\n continue.",
        "properties": {
          "level": {
            "description": "The level field.",
            "enum": [
              "AUTH_LEVEL_UNSPECIFIED",
              "AUTH_LEVEL_NONE",
              "AUTH_LEVEL_SINGLE_FACTOR",
              "AUTH_LEVEL_MULTI_FACTOR",
              "AUTH_LEVEL_PHR",
              "AUTH_LEVEL_PHRH"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "maxAgeSeconds": {
            "description": "How fresh the step-up must be, in seconds.",
            "format": "int32",
            "type": "integer"
          },
          "types": {
            "description": "The types field.",
            "items": {
              "enum": [
                "CREDENTIAL_TYPE_UNSPECIFIED",
                "CREDENTIAL_TYPE_PASSKEY",
                "CREDENTIAL_TYPE_PASSWORD",
                "CREDENTIAL_TYPE_TOTP",
                "CREDENTIAL_TYPE_EMAIL_OTP",
                "CREDENTIAL_TYPE_RECOVERY_CODE",
                "CREDENTIAL_TYPE_DELEGATED_GOOGLE",
                "CREDENTIAL_TYPE_DELEGATED_MICROSOFT",
                "CREDENTIAL_TYPE_UPSTREAM_IDP"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Step Up Required",
        "type": "object",
        "x-speakeasy-name-override": "SessionPolicyStepUpRequired"
      },
      "c1.api.settings.v1.AWSExternalID": {
        "description": "AWSExternalID contains the tenant's external ID for AWS IAM role trust policies.",
        "properties": {
          "externalId": {
            "description": "The external ID value to include in the AWS IAM role trust policy condition.",
            "type": "string"
          }
        },
        "title": "Aws External Id",
        "type": "object",
        "x-speakeasy-entity": "AWS_EXTERNAL_ID",
        "x-speakeasy-name-override": "AWSExternalID"
      },
      "c1.api.settings.v1.AWSSESProviderConfig": {
        "description": "AWSSESProviderConfig configures sending via a customer's AWS SES account.",
        "properties": {
          "configurationSetName": {
            "description": "Optional SES configuration set name for tracking/metrics.",
            "type": "string"
          },
          "region": {
            "description": "AWS region where SES identities are verified (e.g., \"us-east-1\").",
            "type": "string"
          },
          "roleArn": {
            "description": "IAM role ARN for sts:AssumeRole. The trust policy should require the\n tenant's AWS External ID (GET /api/v1/settings/aws-external-id).",
            "type": "string"
          }
        },
        "title": "Awsses Provider Config",
        "type": "object",
        "x-speakeasy-name-override": "AWSSESProviderConfig"
      },
      "c1.api.settings.v1.AccessProvisionedPreference": {
        "description": "The AccessProvisionedPreference message.",
        "properties": {
          "enabled": {
            "description": "The enabled field.",
            "type": "boolean"
          },
          "locked": {
            "description": "The locked field.",
            "type": "boolean"
          }
        },
        "title": "Access Provisioned Preference",
        "type": "object",
        "x-speakeasy-name-override": "AccessProvisionedPreference"
      },
      "c1.api.settings.v1.ApprovalNeededPreference": {
        "description": "The ApprovalNeededPreference message.",
        "properties": {
          "enabled": {
            "description": "The enabled field.",
            "type": "boolean"
          },
          "locked": {
            "description": "The locked field.",
            "type": "boolean"
          }
        },
        "title": "Approval Needed Preference",
        "type": "object",
        "x-speakeasy-name-override": "ApprovalNeededPreference"
      },
      "c1.api.settings.v1.C1BuiltInProviderConfig": {
        "description": "C1BuiltInProviderConfig selects the ConductorOne built-in email provider.\n Emails are sent from no-reply@conductorone.com via the platform SendGrid account.\n Only supports sending to C1 users — external email addresses are not supported.\n No configuration fields required.",
        "title": "C 1 Built In Provider Config",
        "type": "object",
        "x-speakeasy-name-override": "C1BuiltInProviderConfig"
      },
      "c1.api.settings.v1.CIDRRestriction": {
        "description": "CIDRRestriction defines an IP-based access restriction with an enable toggle and a list of allowed CIDRs.",
        "properties": {
          "enabled": {
            "description": "Whether this CIDR restriction is enforced.",
            "type": "boolean"
          },
          "sourceCidr": {
            "description": "The list of CIDR ranges that are allowed when the restriction is enabled.\n Accepts IPv4 (e.g. 10.0.0.0/24) or IPv6 (e.g. 2001:db8::/32) CIDRs.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Cidr Restriction",
        "type": "object",
        "x-speakeasy-name-override": "CIDRRestriction"
      },
      "c1.api.settings.v1.ChannelSettings": {
        "description": "ChannelSettings groups notification preferences for all supported channels.",
        "properties": {
          "email": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.EmailChannelSettings"
              },
              {
                "type": "null"
              }
            ]
          },
          "slack": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.SlackChannelSettings"
              },
              {
                "type": "null"
              }
            ]
          },
          "teams": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.MSTeamsChannelSettings"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Channel Settings",
        "type": "object",
        "x-speakeasy-name-override": "ChannelSettings"
      },
      "c1.api.settings.v1.CommentOnRequestPreference": {
        "description": "The CommentOnRequestPreference message.",
        "properties": {
          "enabled": {
            "description": "The enabled field.",
            "type": "boolean"
          },
          "locked": {
            "description": "The locked field.",
            "type": "boolean"
          }
        },
        "title": "Comment On Request Preference",
        "type": "object",
        "x-speakeasy-name-override": "CommentOnRequestPreference"
      },
      "c1.api.settings.v1.CompletionPreference": {
        "description": "The CompletionPreference message.",
        "properties": {
          "enabled": {
            "description": "The enabled field.",
            "type": "boolean"
          },
          "locked": {
            "description": "The locked field.",
            "type": "boolean"
          }
        },
        "title": "Completion Preference",
        "type": "object",
        "x-speakeasy-name-override": "CompletionPreference"
      },
      "c1.api.settings.v1.ConnectorIssuesPreference": {
        "description": "The ConnectorIssuesPreference message.",
        "properties": {
          "enabled": {
            "description": "The enabled field.",
            "type": "boolean"
          },
          "locked": {
            "description": "The locked field.",
            "type": "boolean"
          }
        },
        "title": "Connector Issues Preference",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorIssuesPreference"
      },
      "c1.api.settings.v1.Contacts": {
        "description": "Contacts represents the contact configuration for an organization.",
        "properties": {
          "billingEmails": {
            "description": "Email addresses of billing contacts for this organization.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "operationsEmails": {
            "description": "Email addresses of operations contacts for this organization.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "securityEmails": {
            "description": "Email addresses of security contacts for this organization.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Contacts",
        "type": "object",
        "x-speakeasy-name-override": "Contacts"
      },
      "c1.api.settings.v1.DigestPreference": {
        "description": "DigestPreference controls whether summary digest notifications are sent and how often.",
        "properties": {
          "dayOfWeek": {
            "description": "The day of the week to send weekly digests.",
            "enum": [
              "WEEKDAY_UNSPECIFIED",
              "WEEKDAY_MONDAY",
              "WEEKDAY_TUESDAY",
              "WEEKDAY_WEDNESDAY",
              "WEEKDAY_THURSDAY",
              "WEEKDAY_FRIDAY",
              "WEEKDAY_SATURDAY",
              "WEEKDAY_SUNDAY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "enabled": {
            "description": "Whether digest notifications are enabled.",
            "type": "boolean"
          },
          "frequency": {
            "description": "How often digest notifications are sent.",
            "enum": [
              "DIGEST_FREQUENCY_UNSPECIFIED",
              "DIGEST_FREQUENCY_DAILY",
              "DIGEST_FREQUENCY_WEEKLY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "locked": {
            "description": "Whether this preference is locked by org-level settings, preventing users from overriding it.",
            "type": "boolean"
          }
        },
        "title": "Digest Preference",
        "type": "object",
        "x-speakeasy-name-override": "DigestPreference"
      },
      "c1.api.settings.v1.EmailCapabilitiesServiceGetResponse": {
        "description": "The EmailCapabilitiesServiceGetResponse message.",
        "properties": {
          "externalEmailSupported": {
            "description": "True when external email addresses (outside C1 users) can be used as\n recipients in automation email steps. False for the C1 built-in provider.",
            "type": "boolean"
          }
        },
        "title": "Email Capabilities Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "EmailCapabilitiesServiceGetResponse"
      },
      "c1.api.settings.v1.EmailChannelSettings": {
        "description": "The EmailChannelSettings message.",
        "properties": {
          "accessProvisioned": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.AccessProvisionedPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "approvalNeeded": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.ApprovalNeededPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "commentOnRequest": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.CommentOnRequestPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "completion": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.CompletionPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "connectorIssues": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.ConnectorIssuesPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "digest": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.DigestPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "enabled": {
            "description": "The enabled field.",
            "type": "boolean"
          },
          "expiringAccess": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.ExpiringAccessPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "findings": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.FindingsPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "provisioningRequest": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.ProvisioningRequestPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "requestCreated": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.RequestCreatedPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "reviews": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.ReviewsPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "system": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.SystemPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "taskReminders": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.TaskRemindersPreference"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Email Channel Settings",
        "type": "object",
        "x-speakeasy-name-override": "EmailChannelSettings"
      },
      "c1.api.settings.v1.ExpiringAccessPreference": {
        "description": "The ExpiringAccessPreference message.",
        "properties": {
          "enabled": {
            "description": "The enabled field.",
            "type": "boolean"
          },
          "locked": {
            "description": "The locked field.",
            "type": "boolean"
          }
        },
        "title": "Expiring Access Preference",
        "type": "object",
        "x-speakeasy-name-override": "ExpiringAccessPreference"
      },
      "c1.api.settings.v1.FindingsPreference": {
        "description": "The FindingsPreference message.",
        "properties": {
          "enabled": {
            "description": "The enabled field.",
            "type": "boolean"
          },
          "locked": {
            "description": "The locked field.",
            "type": "boolean"
          }
        },
        "title": "Findings Preference",
        "type": "object",
        "x-speakeasy-name-override": "FindingsPreference"
      },
      "c1.api.settings.v1.GetAWSExternalIDResponse": {
        "description": "The GetAWSExternalIDResponse message.",
        "properties": {
          "awsExternalId": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.AWSExternalID"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get Aws External Id Response",
        "type": "object",
        "x-speakeasy-name-override": "GetAWSExternalIDResponse"
      },
      "c1.api.settings.v1.GetContactsResponse": {
        "description": "The GetContactsResponse message.",
        "properties": {
          "contacts": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.Contacts"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get Contacts Response",
        "type": "object",
        "x-speakeasy-name-override": "GetContactsResponse"
      },
      "c1.api.settings.v1.GetOnboardingSettingsResponse": {
        "description": "The GetOnboardingSettingsResponse message.",
        "properties": {
          "conversationId": {
            "description": "The identifier of the onboarding conversation thread, if one is in progress.",
            "type": "string"
          },
          "intents": {
            "description": "The intents field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "mcpOnboardingGoal": {
            "description": "The admin's free-form AIAM onboarding goal, captured at the Goals step.",
            "type": "string"
          },
          "mcpOnboardingStatus": {
            "description": "The current status of the AIAM MCP onboarding briefing, tracked\n independently of `status`.",
            "enum": [
              "MCP_ONBOARDING_STATUS_UNSPECIFIED",
              "MCP_ONBOARDING_STATUS_NOT_STARTED",
              "MCP_ONBOARDING_STATUS_IN_PROGRESS",
              "MCP_ONBOARDING_STATUS_COMPLETE",
              "MCP_ONBOARDING_STATUS_DISMISSED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "mcpOnboardingTargets": {
            "description": "Per-target progress of the AIAM briefing: the servers/apps the admin chose\n to govern and how far each got.",
            "items": {
              "$ref": "#/components/schemas/c1.api.settings.v1.McpOnboardingTarget"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "orgContext": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.OnboardingOrgContext"
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "description": "The current status of the tenant onboarding process.",
            "enum": [
              "ONBOARDING_STATUS_UNSPECIFIED",
              "ONBOARDING_STATUS_NOT_STARTED",
              "ONBOARDING_STATUS_IN_PROGRESS",
              "ONBOARDING_STATUS_COMPLETE",
              "ONBOARDING_STATUS_DISMISSED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Get Onboarding Settings Response",
        "type": "object",
        "x-speakeasy-name-override": "GetOnboardingSettingsResponse"
      },
      "c1.api.settings.v1.GetOrgNotificationSettingsResponse": {
        "description": "The GetOrgNotificationSettingsResponse message.",
        "properties": {
          "orgNotificationSettings": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.OrgNotificationSettings"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get Org Notification Settings Response",
        "type": "object",
        "x-speakeasy-name-override": "GetOrgNotificationSettingsResponse"
      },
      "c1.api.settings.v1.GetRequestSettingsResponse": {
        "description": "The GetRequestSettingsResponse message.",
        "properties": {
          "requestSettings": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.RequestSettings"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get Request Settings Response",
        "type": "object",
        "x-speakeasy-name-override": "GetRequestSettingsResponse"
      },
      "c1.api.settings.v1.GetSessionSettingsResponse": {
        "description": "The GetSessionSettingsResponse message.",
        "properties": {
          "sessionSettings": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.SessionSettings"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get Session Settings Response",
        "type": "object",
        "x-speakeasy-name-override": "GetSessionSettingsResponse"
      },
      "c1.api.settings.v1.GetTenantEmailProviderResponse": {
        "description": "The GetTenantEmailProviderResponse message.",
        "properties": {
          "emailProvider": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.TenantEmailProvider"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get Tenant Email Provider Response",
        "type": "object",
        "x-speakeasy-name-override": "GetTenantEmailProviderResponse"
      },
      "c1.api.settings.v1.GetUserDeveloperPreferencesResponse": {
        "description": "The GetUserDeveloperPreferencesResponse message.",
        "properties": {
          "userDeveloperPreferences": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.UserDeveloperPreferences"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get User Developer Preferences Response",
        "type": "object",
        "x-speakeasy-name-override": "GetUserDeveloperPreferencesResponse"
      },
      "c1.api.settings.v1.GetUserNotificationSettingsResponse": {
        "description": "The GetUserNotificationSettingsResponse message.",
        "properties": {
          "userNotificationSettings": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.UserNotificationSettings"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get User Notification Settings Response",
        "type": "object",
        "x-speakeasy-name-override": "GetUserNotificationSettingsResponse"
      },
      "c1.api.settings.v1.GoogleWorkspaceProviderConfig": {
        "description": "GoogleWorkspaceProviderConfig configures sending via Google Workspace Gmail API\n using domain-wide delegation with a service account.\n Requires: customer Workspace super admin grants DWD to the service account's\n OAuth client ID for the gmail.send scope.",
        "properties": {
          "delegatedUser": {
            "description": "The Workspace user email to impersonate via domain-wide delegation.\n Typically a dedicated sender like noreply@customer.com.",
            "type": "string"
          },
          "serviceAccountJson": {
            "description": "Service account JSON credentials. Write-only: accepted on create/update, never returned in Get.\n Empty on update means \"keep existing credentials\".",
            "type": "string"
          }
        },
        "title": "Google Workspace Provider Config",
        "type": "object",
        "x-speakeasy-name-override": "GoogleWorkspaceProviderConfig"
      },
      "c1.api.settings.v1.ListOrgDomainsResponse": {
        "description": "The ListOrgDomainsResponse message.",
        "properties": {
          "list": {
            "description": "The list of verified domains.",
            "items": {
              "$ref": "#/components/schemas/c1.api.settings.v1.OrgDomain"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "A token to retrieve the next page of results, or empty if there are no more results.",
            "type": "string"
          }
        },
        "title": "List Org Domains Response",
        "type": "object",
        "x-speakeasy-name-override": "ListOrgDomainsResponse"
      },
      "c1.api.settings.v1.MSTeamsChannelSettings": {
        "description": "The MSTeamsChannelSettings message.",
        "properties": {
          "accessProvisioned": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.AccessProvisionedPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "approvalNeeded": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.ApprovalNeededPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "commentOnRequest": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.CommentOnRequestPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "completion": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.CompletionPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "connectorIssues": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.ConnectorIssuesPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "digest": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.DigestPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "enabled": {
            "description": "The enabled field.",
            "type": "boolean"
          },
          "expiringAccess": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.ExpiringAccessPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "findings": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.FindingsPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "isConfigured": {
            "description": "The isConfigured field.",
            "type": "boolean"
          },
          "provisioningRequest": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.ProvisioningRequestPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "requestCreated": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.RequestCreatedPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "reviews": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.ReviewsPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "system": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.SystemPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "taskReminders": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.TaskRemindersPreference"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Ms Teams Channel Settings",
        "type": "object",
        "x-speakeasy-name-override": "MSTeamsChannelSettings"
      },
      "c1.api.settings.v1.McpOnboardingTarget": {
        "description": "McpOnboardingTarget is one server/app the admin chose to govern during the\n AIAM briefing, plus its progress.",
        "properties": {
          "displayName": {
            "description": "Snapshot of the human label at selection time.",
            "type": "string"
          },
          "id": {
            "description": "Identifies the target within the id space named by kind.",
            "type": "string"
          },
          "kind": {
            "description": "The kind field.",
            "enum": [
              "MCP_ONBOARDING_TARGET_KIND_UNSPECIFIED",
              "MCP_ONBOARDING_TARGET_KIND_APP",
              "MCP_ONBOARDING_TARGET_KIND_CATALOG_ENTRY",
              "MCP_ONBOARDING_TARGET_KIND_MCP_SERVER"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "mcpServerId": {
            "description": "The registered MCP server a CATALOG_ENTRY target became, once registered.",
            "type": "string"
          },
          "status": {
            "description": "The status field.",
            "enum": [
              "MCP_ONBOARDING_TARGET_STATUS_UNSPECIFIED",
              "MCP_ONBOARDING_TARGET_STATUS_PENDING",
              "MCP_ONBOARDING_TARGET_STATUS_DONE",
              "MCP_ONBOARDING_TARGET_STATUS_SKIPPED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Mcp Onboarding Target",
        "type": "object",
        "x-speakeasy-name-override": "McpOnboardingTarget"
      },
      "c1.api.settings.v1.McpOnboardingTargetList": {
        "description": "McpOnboardingTargetList wraps the target list so an update can distinguish\n replace (present, even if empty) from leave-unchanged (omitted).",
        "properties": {
          "targets": {
            "description": "The targets field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.settings.v1.McpOnboardingTarget"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Mcp Onboarding Target List",
        "type": "object",
        "x-speakeasy-name-override": "McpOnboardingTargetList"
      },
      "c1.api.settings.v1.MicrosoftGraphProviderConfig": {
        "description": "MicrosoftGraphProviderConfig configures sending via Microsoft Graph sendMail API.\n Requires an Azure AD app registration with Mail.Send application permission (admin-consented).",
        "properties": {
          "azureTenantId": {
            "description": "Customer's Azure AD tenant ID (directory ID).",
            "type": "string"
          },
          "clientId": {
            "description": "App registration client ID with Mail.Send application permission.",
            "type": "string"
          },
          "clientSecret": {
            "description": "Client secret. Write-only: accepted on create/update, never returned in Get.\n Empty on update means \"keep existing secret\".",
            "type": "string"
          }
        },
        "title": "Microsoft Graph Provider Config",
        "type": "object",
        "x-speakeasy-name-override": "MicrosoftGraphProviderConfig"
      },
      "c1.api.settings.v1.OnboardingOrgContext": {
        "description": "The OnboardingOrgContext message.",
        "properties": {
          "industry": {
            "description": "The industry field.",
            "type": "string"
          },
          "organizationSize": {
            "description": "The organizationSize field.",
            "type": "string"
          }
        },
        "title": "Onboarding Org Context",
        "type": "object",
        "x-speakeasy-name-override": "OnboardingOrgContext"
      },
      "c1.api.settings.v1.OrgDomain": {
        "description": "OrgDomain represents a verified email domain associated with the tenant.",
        "properties": {
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "domain": {
            "description": "The verified domain name (e.g., \"example.com\").",
            "type": "string"
          },
          "id": {
            "description": "The unique identifier of the domain record.",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Org Domain",
        "type": "object",
        "x-speakeasy-name-override": "OrgDomain"
      },
      "c1.api.settings.v1.OrgNotificationSettings": {
        "description": "OrgNotificationSettings contains organization-wide notification channel configurations and default preferences.",
        "properties": {
          "channelSettings": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.ChannelSettings"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Org Notification Settings",
        "type": "object",
        "x-speakeasy-name-override": "OrgNotificationSettings"
      },
      "c1.api.settings.v1.ProvisioningRequestPreference": {
        "description": "The ProvisioningRequestPreference message.",
        "properties": {
          "enabled": {
            "description": "The enabled field.",
            "type": "boolean"
          },
          "locked": {
            "description": "The locked field.",
            "type": "boolean"
          }
        },
        "title": "Provisioning Request Preference",
        "type": "object",
        "x-speakeasy-name-override": "ProvisioningRequestPreference"
      },
      "c1.api.settings.v1.RequestCreatedPreference": {
        "description": "The RequestCreatedPreference message.",
        "properties": {
          "enabled": {
            "description": "The enabled field.",
            "type": "boolean"
          },
          "locked": {
            "description": "The locked field.",
            "type": "boolean"
          }
        },
        "title": "Request Created Preference",
        "type": "object",
        "x-speakeasy-name-override": "RequestCreatedPreference"
      },
      "c1.api.settings.v1.RequestSettings": {
        "description": "RequestSettings holds tenant-wide configuration for the access-request flow.",
        "properties": {
          "maxBulkEntitlementSelection": {
            "description": "MaxBulkEntitlementSelection caps the number of entitlements a requester\n may select in a single bulk access request. Reads always return the\n effective value — an unset (0) value is presented as the system default of\n 10. Writing 0 resets the field to unset in storage. Maximum 50.",
            "format": "int32",
            "type": "integer"
          },
          "skipJustification": {
            "description": "When true, request surfaces (webapp, Slack, MS Teams) skip prompting the\n requester for a justification.",
            "type": "boolean"
          }
        },
        "title": "Request Settings",
        "type": "object",
        "x-speakeasy-name-override": "RequestSettings"
      },
      "c1.api.settings.v1.ReviewsPreference": {
        "description": "The ReviewsPreference message.",
        "properties": {
          "enabled": {
            "description": "The enabled field.",
            "type": "boolean"
          },
          "locked": {
            "description": "The locked field.",
            "type": "boolean"
          }
        },
        "title": "Reviews Preference",
        "type": "object",
        "x-speakeasy-name-override": "ReviewsPreference"
      },
      "c1.api.settings.v1.SearchEmailAuditEventsRequest": {
        "description": "The SearchEmailAuditEventsRequest message.",
        "properties": {
          "pageSize": {
            "description": "Maximum results per page (0 = server default, max 100).",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "Pagination token from previous response.",
            "type": "string"
          }
        },
        "title": "Search Email Audit Events Request",
        "type": "object",
        "x-speakeasy-name-override": "SearchEmailAuditEventsRequest"
      },
      "c1.api.settings.v1.SearchEmailAuditEventsResponse": {
        "description": "The SearchEmailAuditEventsResponse message.",
        "properties": {
          "list": {
            "description": "OCSF EmailActivity events as Struct for frontend rendering.",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token for next page. Empty when no more pages.",
            "type": "string"
          }
        },
        "title": "Search Email Audit Events Response",
        "type": "object",
        "x-speakeasy-name-override": "SearchEmailAuditEventsResponse"
      },
      "c1.api.settings.v1.SendGridProviderConfig": {
        "description": "SendGridProviderConfig configures sending via a customer's SendGrid account.",
        "properties": {
          "apiKey": {
            "description": "Customer's SendGrid API key. Write-only: accepted on create/update, never returned in Get.\n Empty on update means \"keep existing key\".",
            "type": "string"
          }
        },
        "title": "Send Grid Provider Config",
        "type": "object",
        "x-speakeasy-name-override": "SendGridProviderConfig"
      },
      "c1.api.settings.v1.SessionSettings": {
        "description": "SessionSettings configures session security for the tenant, including timeouts and per-role IP restrictions.",
        "properties": {
          "clientIdApprovalRequestPolicyId": {
            "description": "Policy ID for REQUESTABLE mode approval routing.",
            "type": "string"
          },
          "clientIdMetadataDocumentPolicy": {
            "description": "Policy for metadata document client_id URLs.",
            "enum": [
              "CLIENT_ID_METADATA_DOCUMENT_POLICY_UNSPECIFIED",
              "CLIENT_ID_METADATA_DOCUMENT_POLICY_ALLOW_ALL",
              "CLIENT_ID_METADATA_DOCUMENT_POLICY_REQUESTABLE",
              "CLIENT_ID_METADATA_DOCUMENT_POLICY_ALLOWLIST_ONLY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "connectorSource": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.CIDRRestriction"
              },
              {
                "type": "null"
              }
            ]
          },
          "enableIdleTimeout": {
            "description": "Whether a browser session ends after idle_timeout without user activity.",
            "type": "boolean"
          },
          "externalClientSource": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.CIDRRestriction"
              },
              {
                "type": "null"
              }
            ]
          },
          "externalClientsEnabled": {
            "description": "Enable external client registration (OAuth 2.0 DCR) for MCP clients\n like Claude Desktop, Cursor, and other AI assistants.",
            "type": "boolean"
          },
          "idleTimeout": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "maxSessionLength": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "pccAdminSource": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.CIDRRestriction"
              },
              {
                "type": "null"
              }
            ]
          },
          "pccUserSource": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.CIDRRestriction"
              },
              {
                "type": "null"
              }
            ]
          },
          "ssoAdminSource": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.CIDRRestriction"
              },
              {
                "type": "null"
              }
            ]
          },
          "ssoUserSource": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.CIDRRestriction"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Session Settings",
        "type": "object",
        "x-speakeasy-name-override": "SessionSettings"
      },
      "c1.api.settings.v1.SlackChannelSettings": {
        "description": "The SlackChannelSettings message.",
        "properties": {
          "accessProvisioned": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.AccessProvisionedPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "approvalNeeded": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.ApprovalNeededPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "commentOnRequest": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.CommentOnRequestPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "completion": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.CompletionPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "connectorIssues": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.ConnectorIssuesPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "digest": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.DigestPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "enabled": {
            "description": "The enabled field.",
            "type": "boolean"
          },
          "expiringAccess": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.ExpiringAccessPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "findings": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.FindingsPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "isConfigured": {
            "description": "The isConfigured field.",
            "type": "boolean"
          },
          "provisioningRequest": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.ProvisioningRequestPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "requestCreated": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.RequestCreatedPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "reviews": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.ReviewsPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "system": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.SystemPreference"
              },
              {
                "type": "null"
              }
            ]
          },
          "taskReminders": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.TaskRemindersPreference"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Slack Channel Settings",
        "type": "object",
        "x-speakeasy-name-override": "SlackChannelSettings"
      },
      "c1.api.settings.v1.SystemPreference": {
        "description": "The SystemPreference message.",
        "properties": {
          "enabled": {
            "description": "The enabled field.",
            "type": "boolean"
          },
          "locked": {
            "description": "The locked field.",
            "type": "boolean"
          }
        },
        "title": "System Preference",
        "type": "object",
        "x-speakeasy-name-override": "SystemPreference"
      },
      "c1.api.settings.v1.TaskRemindersPreference": {
        "description": "The TaskRemindersPreference message.",
        "properties": {
          "enabled": {
            "description": "The enabled field.",
            "type": "boolean"
          },
          "locked": {
            "description": "The locked field.",
            "type": "boolean"
          }
        },
        "title": "Task Reminders Preference",
        "type": "object",
        "x-speakeasy-name-override": "TaskRemindersPreference"
      },
      "c1.api.settings.v1.TenantEmailProvider": {
        "description": "TenantEmailProvider is the API representation of the tenant's email provider.\n\nThis message contains a oneof named provider. Only a single field of the following list may be set at a time:\n  - c1Builtin\n  - awsSes\n  - sendgrid\n  - microsoftGraph\n  - googleWorkspace\n",
        "properties": {
          "awsSes": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.AWSSESProviderConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "c1Builtin": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.C1BuiltInProviderConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "fromAddress": {
            "description": "Sender email address. Must be verified with the provider.\n Ignored when using the C1 built-in provider (uses no-reply@conductorone.com).",
            "type": "string"
          },
          "fromName": {
            "description": "Sender display name shown in the recipient's inbox (e.g., \"Acme Corp IT\").\n Used as the RFC 5322 display-name: \"Acme Corp IT\" \u003cno-reply@acme.com\u003e.\n Ignored when using the C1 built-in provider.",
            "type": "string"
          },
          "googleWorkspace": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.GoogleWorkspaceProviderConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "microsoftGraph": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.MicrosoftGraphProviderConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "replyToAddress": {
            "description": "Optional reply-to address.",
            "type": "string"
          },
          "sendgrid": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.SendGridProviderConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Tenant Email Provider",
        "type": "object",
        "x-speakeasy-name-override": "TenantEmailProvider"
      },
      "c1.api.settings.v1.TerraformPreferences": {
        "description": "TerraformPreferences groups the user's preferences for the \"Show\n Terraform code\" feature.",
        "properties": {
          "showCode": {
            "description": "When true, the user sees the \"Show Terraform code\" trigger on\n supported detail pages and list rows. Defaults to false.\n\n Visibility is also role-gated: the trigger is shown only to users\n with one of the SystemOwner, SystemOwnerReadOnly, IntegrationAdmin,\n ApplicationAdmin, CampaignAdmin, or AccessRequestAdmin roles. Users\n without one of these roles will not see the trigger even when this\n flag is true.",
            "type": "boolean"
          }
        },
        "title": "Terraform Preferences",
        "type": "object",
        "x-speakeasy-name-override": "TerraformPreferences"
      },
      "c1.api.settings.v1.TestSourceIPRequest": {
        "description": "The TestSourceIPRequest message.",
        "properties": {
          "allowCidr": {
            "description": "The CIDR allowlist rules to test against. If empty, uses the tenant's current allowlist.\n Accepts IPv4 (e.g. 10.0.0.0/24) or IPv6 (e.g. 2001:db8::/32) CIDRs.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "sourceIp": {
            "description": "if unset, uses the source IP of the request.\n Accepts IPv4 (e.g. 10.0.0.5) or IPv6 (e.g. 2001:db8::1) addresses, optionally with a CIDR prefix.",
            "type": "string"
          }
        },
        "title": "Test Source Ip Request",
        "type": "object",
        "x-speakeasy-name-override": "TestSourceIPRequest"
      },
      "c1.api.settings.v1.TestSourceIPResponse": {
        "description": "The TestSourceIPResponse message.",
        "properties": {
          "allowed": {
            "description": "Whether the tested IP address is allowed by the CIDR rules.",
            "type": "boolean"
          },
          "checkedIp": {
            "description": "The IP address that was checked, either from the request or inferred from the caller.",
            "type": "string"
          },
          "details": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/google.rpc.Status"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Test Source Ip Response",
        "type": "object",
        "x-speakeasy-name-override": "TestSourceIPResponse"
      },
      "c1.api.settings.v1.TestTenantEmailProviderRequest": {
        "description": "The TestTenantEmailProviderRequest message.",
        "properties": {
          "testRecipientEmail": {
            "description": "The email address to send the test email to.",
            "type": "string"
          }
        },
        "title": "Test Tenant Email Provider Request",
        "type": "object",
        "x-speakeasy-name-override": "TestTenantEmailProviderRequest"
      },
      "c1.api.settings.v1.TestTenantEmailProviderResponse": {
        "description": "The TestTenantEmailProviderResponse message.",
        "properties": {
          "message": {
            "description": "Human-readable detail about the result.",
            "type": "string"
          },
          "success": {
            "description": "Whether the test email was sent successfully.",
            "type": "boolean"
          }
        },
        "title": "Test Tenant Email Provider Response",
        "type": "object",
        "x-speakeasy-name-override": "TestTenantEmailProviderResponse"
      },
      "c1.api.settings.v1.UpdateContactsRequest": {
        "description": "The UpdateContactsRequest message.",
        "properties": {
          "contacts": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.Contacts"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Update Contacts Request",
        "type": "object",
        "x-speakeasy-name-override": "UpdateContactsRequest"
      },
      "c1.api.settings.v1.UpdateContactsResponse": {
        "description": "The UpdateContactsResponse message.",
        "properties": {
          "contacts": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.Contacts"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Update Contacts Response",
        "type": "object",
        "x-speakeasy-name-override": "UpdateContactsResponse"
      },
      "c1.api.settings.v1.UpdateOnboardingSettingsRequest": {
        "description": "The UpdateOnboardingSettingsRequest message.",
        "properties": {
          "conversationId": {
            "description": "The identifier of the onboarding conversation thread to associate.",
            "type": "string"
          },
          "mcpOnboardingGoal": {
            "description": "The admin's AIAM onboarding goal. Omit to leave unchanged; set to \"\" to clear.",
            "type": [
              "string",
              "null"
            ]
          },
          "mcpOnboardingStatus": {
            "description": "The new MCP onboarding status to set. Omit (or UNSPECIFIED) to leave it\n unchanged. Setting NOT_STARTED restarts the briefing and clears the stored\n mcp_onboarding_goal and mcp_onboarding_targets, unless this same request also\n sets them (those win).",
            "enum": [
              "MCP_ONBOARDING_STATUS_UNSPECIFIED",
              "MCP_ONBOARDING_STATUS_NOT_STARTED",
              "MCP_ONBOARDING_STATUS_IN_PROGRESS",
              "MCP_ONBOARDING_STATUS_COMPLETE",
              "MCP_ONBOARDING_STATUS_DISMISSED"
            ],
            "type": [
              "string",
              "null"
            ],
            "x-speakeasy-unknown-values": "allow"
          },
          "mcpOnboardingTargets": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.McpOnboardingTargetList"
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "description": "The new onboarding status to set. UNSPECIFIED leaves the core onboarding\n status unchanged (set mcp_onboarding_status alone to retire the AIAM\n briefing without touching the core wizard).",
            "enum": [
              "ONBOARDING_STATUS_UNSPECIFIED",
              "ONBOARDING_STATUS_NOT_STARTED",
              "ONBOARDING_STATUS_IN_PROGRESS",
              "ONBOARDING_STATUS_COMPLETE",
              "ONBOARDING_STATUS_DISMISSED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Update Onboarding Settings Request",
        "type": "object",
        "x-speakeasy-name-override": "UpdateOnboardingSettingsRequest"
      },
      "c1.api.settings.v1.UpdateOnboardingSettingsResponse": {
        "description": "The UpdateOnboardingSettingsResponse message.",
        "properties": {
          "mcpOnboardingGoal": {
            "description": "The updated AIAM onboarding goal.",
            "type": "string"
          },
          "mcpOnboardingStatus": {
            "description": "The updated AIAM MCP onboarding status.",
            "enum": [
              "MCP_ONBOARDING_STATUS_UNSPECIFIED",
              "MCP_ONBOARDING_STATUS_NOT_STARTED",
              "MCP_ONBOARDING_STATUS_IN_PROGRESS",
              "MCP_ONBOARDING_STATUS_COMPLETE",
              "MCP_ONBOARDING_STATUS_DISMISSED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "mcpOnboardingTargets": {
            "description": "The updated AIAM onboarding targets.",
            "items": {
              "$ref": "#/components/schemas/c1.api.settings.v1.McpOnboardingTarget"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "status": {
            "description": "The updated onboarding status.",
            "enum": [
              "ONBOARDING_STATUS_UNSPECIFIED",
              "ONBOARDING_STATUS_NOT_STARTED",
              "ONBOARDING_STATUS_IN_PROGRESS",
              "ONBOARDING_STATUS_COMPLETE",
              "ONBOARDING_STATUS_DISMISSED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Update Onboarding Settings Response",
        "type": "object",
        "x-speakeasy-name-override": "UpdateOnboardingSettingsResponse"
      },
      "c1.api.settings.v1.UpdateOrgDomainRequest": {
        "description": "The UpdateOrgDomainRequest message.",
        "properties": {
          "newDomains": {
            "description": "The complete list of domain names that should be set as the tenant's verified domains.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Update Org Domain Request",
        "type": "object",
        "x-speakeasy-name-override": "UpdateOrgDomainRequest"
      },
      "c1.api.settings.v1.UpdateOrgDomainResponse": {
        "description": "The UpdateOrgDomainResponse message.",
        "properties": {
          "list": {
            "description": "The resulting list of verified domains after the update.",
            "items": {
              "$ref": "#/components/schemas/c1.api.settings.v1.OrgDomain"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Update Org Domain Response",
        "type": "object",
        "x-speakeasy-name-override": "UpdateOrgDomainResponse"
      },
      "c1.api.settings.v1.UpdateOrgNotificationSettingsRequest": {
        "description": "The UpdateOrgNotificationSettingsRequest message.",
        "properties": {
          "channelSettings": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.ChannelSettings"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Update Org Notification Settings Request",
        "type": "object",
        "x-speakeasy-name-override": "UpdateOrgNotificationSettingsRequest"
      },
      "c1.api.settings.v1.UpdateOrgNotificationSettingsResponse": {
        "description": "The UpdateOrgNotificationSettingsResponse message.",
        "properties": {
          "orgNotificationSettings": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.OrgNotificationSettings"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Update Org Notification Settings Response",
        "type": "object",
        "x-speakeasy-name-override": "UpdateOrgNotificationSettingsResponse"
      },
      "c1.api.settings.v1.UpdateRequestSettingsRequest": {
        "description": "The UpdateRequestSettingsRequest message.",
        "properties": {
          "requestSettings": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.RequestSettings"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Update Request Settings Request",
        "type": "object",
        "x-speakeasy-name-override": "UpdateRequestSettingsRequest"
      },
      "c1.api.settings.v1.UpdateRequestSettingsResponse": {
        "description": "The UpdateRequestSettingsResponse message.",
        "properties": {
          "requestSettings": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.RequestSettings"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Update Request Settings Response",
        "type": "object",
        "x-speakeasy-name-override": "UpdateRequestSettingsResponse"
      },
      "c1.api.settings.v1.UpdateSessionSettingsRequest": {
        "description": "The UpdateSessionSettingsRequest message.",
        "properties": {
          "sessionSettings": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.SessionSettings"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Update Session Settings Request",
        "type": "object",
        "x-speakeasy-name-override": "UpdateSessionSettingsRequest"
      },
      "c1.api.settings.v1.UpdateSessionSettingsResponse": {
        "description": "The UpdateSessionSettingsResponse message.",
        "properties": {
          "sessionSettings": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.SessionSettings"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Update Session Settings Response",
        "type": "object",
        "x-speakeasy-name-override": "UpdateSessionSettingsResponse"
      },
      "c1.api.settings.v1.UpdateTenantEmailProviderRequest": {
        "description": "The UpdateTenantEmailProviderRequest message.",
        "properties": {
          "emailProvider": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.TenantEmailProvider"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Update Tenant Email Provider Request",
        "type": "object",
        "x-speakeasy-name-override": "UpdateTenantEmailProviderRequest"
      },
      "c1.api.settings.v1.UpdateTenantEmailProviderResponse": {
        "description": "The UpdateTenantEmailProviderResponse message.",
        "properties": {
          "emailProvider": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.TenantEmailProvider"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Update Tenant Email Provider Response",
        "type": "object",
        "x-speakeasy-name-override": "UpdateTenantEmailProviderResponse"
      },
      "c1.api.settings.v1.UpdateUserDeveloperPreferencesRequest": {
        "description": "The UpdateUserDeveloperPreferencesRequest message.",
        "properties": {
          "terraform": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.TerraformPreferences"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Update User Developer Preferences Request",
        "type": "object",
        "x-speakeasy-name-override": "UpdateUserDeveloperPreferencesRequest"
      },
      "c1.api.settings.v1.UpdateUserDeveloperPreferencesResponse": {
        "description": "The UpdateUserDeveloperPreferencesResponse message.",
        "properties": {
          "userDeveloperPreferences": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.UserDeveloperPreferences"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Update User Developer Preferences Response",
        "type": "object",
        "x-speakeasy-name-override": "UpdateUserDeveloperPreferencesResponse"
      },
      "c1.api.settings.v1.UpdateUserNotificationSettingsRequest": {
        "description": "The UpdateUserNotificationSettingsRequest message.",
        "properties": {
          "channelSettings": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.ChannelSettings"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Update User Notification Settings Request",
        "type": "object",
        "x-speakeasy-name-override": "UpdateUserNotificationSettingsRequest"
      },
      "c1.api.settings.v1.UpdateUserNotificationSettingsResponse": {
        "description": "The UpdateUserNotificationSettingsResponse message.",
        "properties": {
          "userNotificationSettings": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.UserNotificationSettings"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Update User Notification Settings Response",
        "type": "object",
        "x-speakeasy-name-override": "UpdateUserNotificationSettingsResponse"
      },
      "c1.api.settings.v1.UserDeveloperPreferences": {
        "description": "UserDeveloperPreferences holds a user's developer-tooling preferences,\n organized into per-feature clusters.",
        "properties": {
          "terraform": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.TerraformPreferences"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "User Developer Preferences",
        "type": "object",
        "x-speakeasy-name-override": "UserDeveloperPreferences"
      },
      "c1.api.settings.v1.UserNotificationSettings": {
        "description": "UserNotificationSettings contains the calling user's personal notification preferences.",
        "properties": {
          "channelSettings": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.settings.v1.ChannelSettings"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "User Notification Settings",
        "type": "object",
        "x-speakeasy-name-override": "UserNotificationSettings"
      },
      "c1.api.sign_in_policy.v1.Allow": {
        "description": "Allow permits the sign-in.",
        "properties": {
          "floorLevel": {
            "description": "The minimum assurance level that satisfies this rule. Required on enforced\n Allow rules.",
            "enum": [
              "AUTH_LEVEL_UNSPECIFIED",
              "AUTH_LEVEL_NONE",
              "AUTH_LEVEL_SINGLE_FACTOR",
              "AUTH_LEVEL_MULTI_FACTOR",
              "AUTH_LEVEL_PHR",
              "AUTH_LEVEL_PHRH"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Allow",
        "type": "object",
        "x-speakeasy-name-override": "Allow"
      },
      "c1.api.sign_in_policy.v1.ChallengeRequired": {
        "description": "ChallengeRequired asks for an additional factor before the sign-in completes.",
        "properties": {
          "types": {
            "description": "The credential types that may satisfy the challenge.",
            "items": {
              "enum": [
                "CREDENTIAL_TYPE_UNSPECIFIED",
                "CREDENTIAL_TYPE_PASSKEY",
                "CREDENTIAL_TYPE_PASSWORD",
                "CREDENTIAL_TYPE_TOTP",
                "CREDENTIAL_TYPE_EMAIL_OTP",
                "CREDENTIAL_TYPE_RECOVERY_CODE",
                "CREDENTIAL_TYPE_DELEGATED_GOOGLE",
                "CREDENTIAL_TYPE_DELEGATED_MICROSOFT",
                "CREDENTIAL_TYPE_UPSTREAM_IDP"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Challenge Required",
        "type": "object",
        "x-speakeasy-name-override": "ChallengeRequired"
      },
      "c1.api.sign_in_policy.v1.Deny": {
        "description": "Deny rejects the sign-in.",
        "properties": {
          "reasonAdmin": {
            "description": "Reason shown in admin-only audit.",
            "type": "string"
          },
          "reasonUser": {
            "description": "Reason safe to show the end user.",
            "type": "string"
          }
        },
        "title": "Deny",
        "type": "object",
        "x-speakeasy-name-override": "Deny"
      },
      "c1.api.sign_in_policy.v1.EnrollmentRequired": {
        "description": "EnrollmentRequired tells the user to enroll a credential before continuing.",
        "properties": {
          "credentialTypes": {
            "description": "The credential types the user may enroll. Empty means \"complete identity\n verification first\".",
            "items": {
              "enum": [
                "CREDENTIAL_TYPE_UNSPECIFIED",
                "CREDENTIAL_TYPE_PASSKEY",
                "CREDENTIAL_TYPE_PASSWORD",
                "CREDENTIAL_TYPE_TOTP",
                "CREDENTIAL_TYPE_EMAIL_OTP",
                "CREDENTIAL_TYPE_RECOVERY_CODE",
                "CREDENTIAL_TYPE_DELEGATED_GOOGLE",
                "CREDENTIAL_TYPE_DELEGATED_MICROSOFT",
                "CREDENTIAL_TYPE_UPSTREAM_IDP"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Enrollment Required",
        "type": "object",
        "x-speakeasy-name-override": "EnrollmentRequired"
      },
      "c1.api.sign_in_policy.v1.PolicyOutcome": {
        "description": "PolicyOutcome is the effect of a matched rule. Exactly one kind is set.\n\nThis message contains a oneof named kind. Only a single field of the following list may be set at a time:\n  - allow\n  - deny\n  - stepUpRequired\n  - challengeRequired\n  - enrollmentRequired\n",
        "properties": {
          "allow": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sign_in_policy.v1.Allow"
              },
              {
                "type": "null"
              }
            ]
          },
          "challengeRequired": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sign_in_policy.v1.ChallengeRequired"
              },
              {
                "type": "null"
              }
            ]
          },
          "deny": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sign_in_policy.v1.Deny"
              },
              {
                "type": "null"
              }
            ]
          },
          "enrollmentRequired": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sign_in_policy.v1.EnrollmentRequired"
              },
              {
                "type": "null"
              }
            ]
          },
          "stepUpRequired": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sign_in_policy.v1.StepUpRequired"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Policy Outcome",
        "type": "object",
        "x-speakeasy-name-override": "PolicyOutcome"
      },
      "c1.api.sign_in_policy.v1.PolicyRule": {
        "description": "PolicyRule is one rung of the ordered sign-in cascade. Rules are evaluated\n top to bottom; the first enforced rule whose condition matches supplies the\n outcome.",
        "properties": {
          "description": {
            "description": "A human-readable description shown in the admin UI.",
            "type": "string"
          },
          "id": {
            "description": "A stable identifier for the rule, surfaced in audit.",
            "type": "string"
          },
          "matchCel": {
            "description": "A boolean condition expression evaluated against the sign-in context.",
            "type": "string"
          },
          "mode": {
            "description": "Whether the rule is live, evaluated-only, or skipped.",
            "enum": [
              "POLICY_RULE_MODE_UNSPECIFIED",
              "POLICY_RULE_MODE_ENFORCE",
              "POLICY_RULE_MODE_OBSERVE",
              "POLICY_RULE_MODE_DISABLED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "outcome": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sign_in_policy.v1.PolicyOutcome"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Policy Rule",
        "type": "object",
        "x-speakeasy-name-override": "PolicyRule"
      },
      "c1.api.sign_in_policy.v1.SignInPolicy": {
        "description": "SignInPolicy defines how users sign in.",
        "properties": {
          "allowedMfaTypes": {
            "description": "The credential types accepted as a second factor. Must be a subset of the\n credential types their inventory policy permits.",
            "items": {
              "enum": [
                "CREDENTIAL_TYPE_UNSPECIFIED",
                "CREDENTIAL_TYPE_PASSKEY",
                "CREDENTIAL_TYPE_PASSWORD",
                "CREDENTIAL_TYPE_TOTP",
                "CREDENTIAL_TYPE_EMAIL_OTP",
                "CREDENTIAL_TYPE_RECOVERY_CODE",
                "CREDENTIAL_TYPE_DELEGATED_GOOGLE",
                "CREDENTIAL_TYPE_DELEGATED_MICROSOFT",
                "CREDENTIAL_TYPE_UPSTREAM_IDP"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "allowedPrimaryTypes": {
            "description": "The primary credential types users may sign in with. Must be a subset of\n the credential types their inventory policy permits.",
            "items": {
              "enum": [
                "CREDENTIAL_TYPE_UNSPECIFIED",
                "CREDENTIAL_TYPE_PASSKEY",
                "CREDENTIAL_TYPE_PASSWORD",
                "CREDENTIAL_TYPE_TOTP",
                "CREDENTIAL_TYPE_EMAIL_OTP",
                "CREDENTIAL_TYPE_RECOVERY_CODE",
                "CREDENTIAL_TYPE_DELEGATED_GOOGLE",
                "CREDENTIAL_TYPE_DELEGATED_MICROSOFT",
                "CREDENTIAL_TYPE_UPSTREAM_IDP"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "defaultOutcome": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sign_in_policy.v1.PolicyOutcome"
              },
              {
                "type": "null"
              }
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "displayName": {
            "description": "A human-readable name for the policy.",
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for the policy.",
            "readOnly": true,
            "type": "string"
          },
          "isBuiltin": {
            "description": "True for built-in policies provided by ConductorOne. Built-in policies\n cannot be edited or deleted.",
            "readOnly": true,
            "type": "boolean"
          },
          "priority": {
            "description": "When a user matches more than one policy, the policy with the highest\n priority applies.",
            "format": "int32",
            "type": "integer"
          },
          "rules": {
            "description": "The ordered rule cascade, evaluated top to bottom.",
            "items": {
              "$ref": "#/components/schemas/c1.api.sign_in_policy.v1.PolicyRule"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Sign In Policy",
        "type": "object",
        "x-speakeasy-entity": "SignInPolicy",
        "x-speakeasy-name-override": "SignInPolicy"
      },
      "c1.api.sign_in_policy.v1.SignInPolicyRef": {
        "description": "SignInPolicyRef is a lightweight reference to a sign-in policy by ID.",
        "properties": {
          "id": {
            "description": "The id field.",
            "type": "string"
          }
        },
        "title": "Sign In Policy Ref",
        "type": "object",
        "x-speakeasy-name-override": "SignInPolicyRef"
      },
      "c1.api.sign_in_policy.v1.SignInPolicyServiceCreateRequest": {
        "description": "The SignInPolicyServiceCreateRequest message.",
        "properties": {
          "allowedMfaTypes": {
            "description": "The credential types accepted as a second factor.",
            "items": {
              "enum": [
                "CREDENTIAL_TYPE_UNSPECIFIED",
                "CREDENTIAL_TYPE_PASSKEY",
                "CREDENTIAL_TYPE_PASSWORD",
                "CREDENTIAL_TYPE_TOTP",
                "CREDENTIAL_TYPE_EMAIL_OTP",
                "CREDENTIAL_TYPE_RECOVERY_CODE",
                "CREDENTIAL_TYPE_DELEGATED_GOOGLE",
                "CREDENTIAL_TYPE_DELEGATED_MICROSOFT",
                "CREDENTIAL_TYPE_UPSTREAM_IDP"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "allowedPrimaryTypes": {
            "description": "The primary credential types users may sign in with.",
            "items": {
              "enum": [
                "CREDENTIAL_TYPE_UNSPECIFIED",
                "CREDENTIAL_TYPE_PASSKEY",
                "CREDENTIAL_TYPE_PASSWORD",
                "CREDENTIAL_TYPE_TOTP",
                "CREDENTIAL_TYPE_EMAIL_OTP",
                "CREDENTIAL_TYPE_RECOVERY_CODE",
                "CREDENTIAL_TYPE_DELEGATED_GOOGLE",
                "CREDENTIAL_TYPE_DELEGATED_MICROSOFT",
                "CREDENTIAL_TYPE_UPSTREAM_IDP"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "defaultOutcome": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sign_in_policy.v1.PolicyOutcome"
              },
              {
                "type": "null"
              }
            ]
          },
          "displayName": {
            "description": "A human-readable name for the policy.",
            "type": "string"
          },
          "priority": {
            "description": "When a user matches more than one policy, the policy with the highest\n priority applies.",
            "format": "int32",
            "type": "integer"
          },
          "rules": {
            "description": "The ordered rule cascade.",
            "items": {
              "$ref": "#/components/schemas/c1.api.sign_in_policy.v1.PolicyRule"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "displayName"
        ],
        "title": "Sign In Policy Service Create Request",
        "type": "object",
        "x-speakeasy-entity": "SignInPolicy",
        "x-speakeasy-name-override": "SignInPolicyServiceCreateRequest"
      },
      "c1.api.sign_in_policy.v1.SignInPolicyServiceCreateResponse": {
        "description": "The SignInPolicyServiceCreateResponse message.",
        "properties": {
          "signInPolicy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sign_in_policy.v1.SignInPolicy"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Sign In Policy Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "SignInPolicyServiceCreateResponse"
      },
      "c1.api.sign_in_policy.v1.SignInPolicyServiceDeleteRequestInput": {
        "description": "The SignInPolicyServiceDeleteRequest message.",
        "title": "Sign In Policy Service Delete Request",
        "type": "object",
        "x-speakeasy-entity": "SignInPolicy",
        "x-speakeasy-name-override": "SignInPolicyServiceDeleteRequest"
      },
      "c1.api.sign_in_policy.v1.SignInPolicyServiceDeleteResponse": {
        "description": "The SignInPolicyServiceDeleteResponse message.",
        "title": "Sign In Policy Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "SignInPolicyServiceDeleteResponse"
      },
      "c1.api.sign_in_policy.v1.SignInPolicyServiceGetResponse": {
        "description": "The SignInPolicyServiceGetResponse message.",
        "properties": {
          "signInPolicy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sign_in_policy.v1.SignInPolicy"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Sign In Policy Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "SignInPolicyServiceGetResponse"
      },
      "c1.api.sign_in_policy.v1.SignInPolicyServiceListResponse": {
        "description": "The SignInPolicyServiceListResponse message.",
        "properties": {
          "list": {
            "description": "The page of policies.",
            "items": {
              "$ref": "#/components/schemas/c1.api.sign_in_policy.v1.SignInPolicy"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "A token to fetch the next page, or empty if there are no more results.",
            "type": "string"
          }
        },
        "title": "Sign In Policy Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "SignInPolicyServiceListResponse"
      },
      "c1.api.sign_in_policy.v1.SignInPolicyServiceSearchRequest": {
        "description": "The SignInPolicyServiceSearchRequest message.",
        "properties": {
          "pageSize": {
            "description": "The maximum number of results to return per page.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "A pagination token from a previous Search response.",
            "type": "string"
          },
          "query": {
            "description": "Free-text search over the policy name. Empty matches all policies.",
            "type": "string"
          },
          "refs": {
            "description": "Restrict results to these specific policies. Empty matches all policies.",
            "items": {
              "$ref": "#/components/schemas/c1.api.sign_in_policy.v1.SignInPolicyRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Sign In Policy Service Search Request",
        "type": "object",
        "x-speakeasy-name-override": "SignInPolicyServiceSearchRequest"
      },
      "c1.api.sign_in_policy.v1.SignInPolicyServiceSearchResponse": {
        "description": "The SignInPolicyServiceSearchResponse message.",
        "properties": {
          "list": {
            "description": "The page of matching policies.",
            "items": {
              "$ref": "#/components/schemas/c1.api.sign_in_policy.v1.SignInPolicy"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "A token to fetch the next page, or empty if there are no more results.",
            "type": "string"
          }
        },
        "title": "Sign In Policy Service Search Response",
        "type": "object",
        "x-speakeasy-name-override": "SignInPolicyServiceSearchResponse"
      },
      "c1.api.sign_in_policy.v1.SignInPolicyServiceUpdateRequestInput": {
        "description": "The SignInPolicyServiceUpdateRequest message.",
        "properties": {
          "signInPolicy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sign_in_policy.v1.SignInPolicy"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Sign In Policy Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "SignInPolicyServiceUpdateRequest"
      },
      "c1.api.sign_in_policy.v1.SignInPolicyServiceUpdateResponse": {
        "description": "The SignInPolicyServiceUpdateResponse message.",
        "properties": {
          "signInPolicy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sign_in_policy.v1.SignInPolicy"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Sign In Policy Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "SignInPolicyServiceUpdateResponse"
      },
      "c1.api.sign_in_policy.v1.StepUpRequired": {
        "description": "StepUpRequired demands a stronger re-authentication before access is granted.",
        "properties": {
          "level": {
            "description": "The assurance level the step-up must reach.",
            "enum": [
              "AUTH_LEVEL_UNSPECIFIED",
              "AUTH_LEVEL_NONE",
              "AUTH_LEVEL_SINGLE_FACTOR",
              "AUTH_LEVEL_MULTI_FACTOR",
              "AUTH_LEVEL_PHR",
              "AUTH_LEVEL_PHRH"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "maxAgeSeconds": {
            "description": "How fresh the step-up must be, in seconds.",
            "format": "int32",
            "type": "integer"
          },
          "types": {
            "description": "The credential types that may satisfy the step-up.",
            "items": {
              "enum": [
                "CREDENTIAL_TYPE_UNSPECIFIED",
                "CREDENTIAL_TYPE_PASSKEY",
                "CREDENTIAL_TYPE_PASSWORD",
                "CREDENTIAL_TYPE_TOTP",
                "CREDENTIAL_TYPE_EMAIL_OTP",
                "CREDENTIAL_TYPE_RECOVERY_CODE",
                "CREDENTIAL_TYPE_DELEGATED_GOOGLE",
                "CREDENTIAL_TYPE_DELEGATED_MICROSOFT",
                "CREDENTIAL_TYPE_UPSTREAM_IDP"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Step Up Required",
        "type": "object",
        "x-speakeasy-name-override": "StepUpRequired"
      },
      "c1.api.spendinsights.v1.AdmissionTrace": {
        "description": "AdmissionTrace records the bounded authority decision made during admission.",
        "properties": {
          "allocations": {
            "description": "Per-scope limits resolved during admission.",
            "items": {
              "$ref": "#/components/schemas/c1.api.spendinsights.v1.TraceAllocation"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "authorityRefs": {
            "description": "Configurations read during admission.",
            "items": {
              "$ref": "#/components/schemas/c1.api.spendinsights.v1.AuthorityRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Admission Trace",
        "type": "object",
        "x-speakeasy-name-override": "AdmissionTrace"
      },
      "c1.api.spendinsights.v1.AttributionCoverage": {
        "description": "AttributionCoverage explains gaps between settled spend and retained\n call-level usage.",
        "properties": {
          "fullyAttributed": {
            "description": "Whether settled budget spend equals settled usage with an identified user.",
            "type": "boolean"
          },
          "ledgerMinusAttributedNano": {
            "description": "Settled budget spend minus settled usage with an identified user. Signed.\n Under PARTIAL_RETENTION or OUTSIDE_RETENTION, this difference includes\n aged-out usage records and is not a measure of unattributed spend alone.",
            "format": "int64",
            "type": "string"
          },
          "meterAbsentCalls": {
            "description": "Calls completed without spend governance.",
            "format": "int64",
            "type": "string"
          },
          "missingDepartmentCalls": {
            "description": "Settled calls without a department snapshot.",
            "format": "int64",
            "type": "string"
          },
          "missingSubjectCalls": {
            "description": "Settled calls without an identified user.",
            "format": "int64",
            "type": "string"
          },
          "unknownUsageCalls": {
            "description": "Newly observed or classified calls in this retained finalized window whose\n usage or price is unqualified. Historical rows without observations keep\n their legacy treatment; they do not become observed complete calls.",
            "format": "int64",
            "type": "string"
          },
          "unrecognizedKnownUsageNano": {
            "description": "Known call cost whose settlement could not be recorded.",
            "format": "int64",
            "type": "string"
          },
          "zeroOrUnpricedCalls": {
            "description": "Calls that had no positive configured price.",
            "format": "int64",
            "type": "string"
          }
        },
        "title": "Attribution Coverage",
        "type": "object",
        "x-speakeasy-name-override": "AttributionCoverage"
      },
      "c1.api.spendinsights.v1.AttributionFilters": {
        "description": "AttributionFilters narrows settled usage before grouping. All predicates are\n exact matches and combine with AND; values within one list combine with OR.",
        "properties": {
          "appIds": {
            "description": "Application IDs to include.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "departmentAbsent": {
            "description": "Select only calls whose spend-time department snapshot was absent. This\n cannot be combined with departments.",
            "type": "boolean"
          },
          "departments": {
            "description": "Spend-time department snapshots to include.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "modelIds": {
            "description": "Model IDs to include.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "userIds": {
            "description": "User IDs to include.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Attribution Filters",
        "type": "object",
        "x-speakeasy-name-override": "AttributionFilters"
      },
      "c1.api.spendinsights.v1.AttributionGroup": {
        "description": "AttributionGroup summarizes settled spend for one value of the requested\n attribution dimension. Missing values form their own group.",
        "properties": {
          "billableTokens": {
            "description": "Total billable tokens attributed to this group.",
            "format": "int64",
            "type": "string"
          },
          "blendedCostPerMillionTokensNano": {
            "description": "Blended settled cost per million billable tokens in this group.",
            "format": "int64",
            "type": "string"
          },
          "cacheReadTokens": {
            "description": "Input tokens served from cache for this group.",
            "format": "int64",
            "type": "string"
          },
          "cacheReadValueNano": {
            "description": "Savings from cache reads compared with uncached input prices.",
            "format": "int64",
            "type": "string"
          },
          "cacheWriteCostNano": {
            "description": "Cost of writing tokens to cache.",
            "format": "int64",
            "type": "string"
          },
          "cacheWriteTokens": {
            "description": "Tokens written to cache for this group.",
            "format": "int64",
            "type": "string"
          },
          "displayName": {
            "description": "Display name recorded when the calls ran, when available.",
            "type": "string"
          },
          "inputTokens": {
            "description": "Input tokens attributed to this group.",
            "format": "int64",
            "type": "string"
          },
          "key": {
            "description": "Stable value for the requested dimension. Empty for the missing-value group.",
            "type": "string"
          },
          "missing": {
            "description": "Whether this group represents calls missing the requested dimension.",
            "type": "boolean"
          },
          "outputTokens": {
            "description": "Output tokens attributed to this group.",
            "format": "int64",
            "type": "string"
          },
          "reasoningTokens": {
            "description": "Reasoning tokens attributed to this group.",
            "format": "int64",
            "type": "string"
          },
          "settledCalls": {
            "description": "Number of settled calls in this group.",
            "format": "int64",
            "type": "string"
          },
          "settledNano": {
            "description": "Settled spend attributed to this group.",
            "format": "int64",
            "type": "string"
          }
        },
        "title": "Attribution Group",
        "type": "object",
        "x-speakeasy-name-override": "AttributionGroup"
      },
      "c1.api.spendinsights.v1.AuthorityRef": {
        "description": "AuthorityRef identifies a configuration and the revision admission read.",
        "properties": {
          "absent": {
            "description": "Whether admission found no configuration of this kind.",
            "type": "boolean"
          },
          "appEntitlementId": {
            "description": "Application entitlement ID, for entitlement-binding authorities.",
            "type": "string"
          },
          "appId": {
            "description": "Application ID the configuration applies to.",
            "type": "string"
          },
          "appUserId": {
            "description": "Application user ID, for application-user authorities.",
            "type": "string"
          },
          "kind": {
            "description": "Type of configuration.",
            "enum": [
              "AUTHORITY_KIND_UNSPECIFIED",
              "AUTHORITY_KIND_FUND_POLICY",
              "AUTHORITY_KIND_FUND_ASSIGNMENT",
              "AUTHORITY_KIND_FUND_RULE",
              "AUTHORITY_KIND_TENANT_APP_CAP",
              "AUTHORITY_KIND_SUBJECT_APP_LIMIT",
              "AUTHORITY_KIND_ENTITLEMENT_BINDING",
              "AUTHORITY_KIND_APP_USER",
              "AUTHORITY_KIND_USER"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "ruleId": {
            "description": "Fund rule ID, for fund-rule authorities.",
            "type": "string"
          },
          "userId": {
            "description": "User ID the configuration applies to.",
            "type": "string"
          },
          "version": {
            "description": "Configuration revision read during admission.",
            "format": "int64",
            "type": "string"
          }
        },
        "title": "Authority Ref",
        "type": "object",
        "x-speakeasy-name-override": "AuthorityRef"
      },
      "c1.api.spendinsights.v1.ClawLLMRateSnapshot": {
        "description": "ClawLLMRateSnapshot records the exact price basis selected for a call.",
        "properties": {
          "asOf": {
            "description": "Date the price basis took effect.",
            "type": "string"
          },
          "cacheReadNanoPerMillionTokens": {
            "description": "Cache-read token price, in nano-units per million tokens.",
            "format": "int64",
            "type": "string"
          },
          "cacheWriteNanoPerMillionTokens": {
            "description": "Cache-write token price, in nano-units per million tokens.",
            "format": "int64",
            "type": "string"
          },
          "citation": {
            "description": "Reference for the price basis.",
            "type": "string"
          },
          "inputNanoPerMillionTokens": {
            "description": "Input token price, in nano-units per million tokens.",
            "format": "int64",
            "type": "string"
          },
          "note": {
            "description": "Operator note recorded with the price basis.",
            "type": "string"
          },
          "outputNanoPerMillionTokens": {
            "description": "Output token price, in nano-units per million tokens.",
            "format": "int64",
            "type": "string"
          },
          "source": {
            "description": "Provenance of the recorded prices.",
            "enum": [
              "CLAW_LLM_RATE_SOURCE_UNSPECIFIED",
              "CLAW_LLM_RATE_SOURCE_LIST_PRICE",
              "CLAW_LLM_RATE_SOURCE_NEGOTIATED",
              "CLAW_LLM_RATE_SOURCE_OPERATOR_OVERRIDE",
              "CLAW_LLM_RATE_SOURCE_CUSTOMER_SUPPLIED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Claw Llm Rate Snapshot",
        "type": "object",
        "x-speakeasy-name-override": "ClawLLMRateSnapshot"
      },
      "c1.api.spendinsights.v1.DenialEpisode": {
        "description": "DenialEpisode represents repeated budget refusals for one scope and budget period.",
        "properties": {
          "attemptCount": {
            "description": "Best-effort lower bound for refused calls in this episode. Concurrent\n retry exhaustion can under-report; denial_events is exact for a window.",
            "format": "int64",
            "type": "string"
          },
          "authorityId": {
            "description": "Identifier of the configuration that supplied the denying limit.",
            "type": "string"
          },
          "authorityKind": {
            "description": "Type of configuration that supplied the denying limit.",
            "enum": [
              "AUTHORITY_KIND_UNSPECIFIED",
              "AUTHORITY_KIND_FUND_POLICY",
              "AUTHORITY_KIND_FUND_ASSIGNMENT",
              "AUTHORITY_KIND_FUND_RULE",
              "AUTHORITY_KIND_TENANT_APP_CAP",
              "AUTHORITY_KIND_SUBJECT_APP_LIMIT",
              "AUTHORITY_KIND_ENTITLEMENT_BINDING",
              "AUTHORITY_KIND_APP_USER",
              "AUTHORITY_KIND_USER"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "authorityVersion": {
            "description": "Version of the configuration used for the first refusal.",
            "format": "int64",
            "type": "string"
          },
          "blockId": {
            "description": "Unique identifier for this denial episode.",
            "type": "string"
          },
          "budgetKey": {
            "description": "Stable identifier for the budget account that denied the calls.",
            "type": "string"
          },
          "closedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "firstDeniedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "lastDeniedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "periodEnd": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "periodKey": {
            "description": "Stable key for the denied budget period.",
            "type": "string"
          },
          "periodKind": {
            "description": "Length of the denied budget period.",
            "enum": [
              "PERIOD_KIND_UNSPECIFIED",
              "PERIOD_KIND_DAILY",
              "PERIOD_KIND_WEEKLY",
              "PERIOD_KIND_MONTHLY",
              "PERIOD_KIND_QUARTERLY",
              "PERIOD_KIND_YEARLY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "periodStart": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "reason": {
            "description": "Reason the calls were denied.",
            "enum": [
              "SPEND_DENY_REASON_UNSPECIFIED",
              "SPEND_DENY_REASON_TENANT_FROZEN",
              "SPEND_DENY_REASON_SUSPENDED_BY_ADMIN",
              "SPEND_DENY_REASON_APP_SUSPENDED",
              "SPEND_DENY_REASON_APP_PAUSED_BY_YOU",
              "SPEND_DENY_REASON_NO_SUPPLY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "requestTaskId": {
            "description": "ID of the access request task associated with this episode.",
            "type": "string"
          },
          "requestTaskState": {
            "description": "Current state of the associated access request task.",
            "enum": [
              "TASK_STATE_UNSPECIFIED",
              "TASK_STATE_OPEN",
              "TASK_STATE_CLOSED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "scopeAppId": {
            "description": "Application ID for application-scoped episodes.",
            "type": "string"
          },
          "scopeKind": {
            "description": "Budget scope that denied the calls.",
            "enum": [
              "SPEND_SCOPE_KIND_UNSPECIFIED",
              "SPEND_SCOPE_KIND_TENANT",
              "SPEND_SCOPE_KIND_SUBJECT",
              "SPEND_SCOPE_KIND_APP",
              "SPEND_SCOPE_KIND_SUBJECT_APP"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "scopeUserId": {
            "description": "User ID for user-scoped episodes.",
            "type": "string"
          },
          "state": {
            "description": "Whether this denial episode remains open.",
            "enum": [
              "SPEND_BLOCK_STATE_UNSPECIFIED",
              "SPEND_BLOCK_STATE_OPEN",
              "SPEND_BLOCK_STATE_CLOSED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Denial Episode",
        "type": "object",
        "x-speakeasy-name-override": "DenialEpisode"
      },
      "c1.api.spendinsights.v1.DenialFilters": {
        "description": "DenialFilters selects budget-denial episodes.",
        "properties": {
          "authorityId": {
            "description": "Optional authority ID to match. Set authority_kind with this field.",
            "type": "string"
          },
          "authorityKind": {
            "description": "Optional authority type to match. Set authority_id with this field.",
            "enum": [
              "AUTHORITY_KIND_UNSPECIFIED",
              "AUTHORITY_KIND_FUND_POLICY",
              "AUTHORITY_KIND_FUND_ASSIGNMENT",
              "AUTHORITY_KIND_FUND_RULE",
              "AUTHORITY_KIND_TENANT_APP_CAP",
              "AUTHORITY_KIND_SUBJECT_APP_LIMIT",
              "AUTHORITY_KIND_ENTITLEMENT_BINDING",
              "AUTHORITY_KIND_APP_USER",
              "AUTHORITY_KIND_USER"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "departments": {
            "description": "Optional current user departments to match. Only subject-scoped denials\n with a live, non-deleted user row can match; organization-scoped,\n application-scoped, missing-user, and deleted-user denials are excluded.\n Department is resolved from scope_user_id at read time, not captured from\n the denial event.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "endTime": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "scopeAppId": {
            "description": "Optional application scope ID to match.",
            "type": "string"
          },
          "scopeKind": {
            "description": "Optional budget scope to match.",
            "enum": [
              "SPEND_SCOPE_KIND_UNSPECIFIED",
              "SPEND_SCOPE_KIND_TENANT",
              "SPEND_SCOPE_KIND_SUBJECT",
              "SPEND_SCOPE_KIND_APP",
              "SPEND_SCOPE_KIND_SUBJECT_APP"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "scopeUserId": {
            "description": "Optional user scope ID to match.",
            "type": "string"
          },
          "startTime": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "state": {
            "description": "Optional current episode state to match.",
            "enum": [
              "SPEND_BLOCK_STATE_UNSPECIFIED",
              "SPEND_BLOCK_STATE_OPEN",
              "SPEND_BLOCK_STATE_CLOSED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Denial Filters",
        "type": "object",
        "x-speakeasy-name-override": "DenialFilters"
      },
      "c1.api.spendinsights.v1.DenialMoneySnapshot": {
        "description": "DenialMoneySnapshot captures account amounts at the first refusal.",
        "properties": {
          "consumedNano": {
            "description": "Spend already settled when the first refusal occurred.",
            "format": "int64",
            "type": "string"
          },
          "currencyCode": {
            "description": "Currency used for monetary values.",
            "type": "string"
          },
          "limitNano": {
            "description": "Effective limit that caused the refusal.",
            "format": "int64",
            "type": "string"
          },
          "requestedNano": {
            "description": "Spend requested by the refused call.",
            "format": "int64",
            "type": "string"
          },
          "reservedNano": {
            "description": "Spend reserved by in-progress calls when the first refusal occurred.",
            "format": "int64",
            "type": "string"
          }
        },
        "title": "Denial Money Snapshot",
        "type": "object",
        "x-speakeasy-name-override": "DenialMoneySnapshot"
      },
      "c1.api.spendinsights.v1.EffectiveScope": {
        "description": "EffectiveScope describes one budget scope that applies to a user.",
        "properties": {
          "accountInitialized": {
            "description": "Whether this budget account has recorded activity.",
            "type": "boolean"
          },
          "authority": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.spendinsights.v1.AuthorityRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "authorityFromExtension": {
            "description": "Whether an extension supplied the effective configuration.",
            "type": "boolean"
          },
          "budgetKey": {
            "description": "Stable identifier for the scope's budget account.",
            "type": "string"
          },
          "lifetimeConsumedNano": {
            "description": "Spend settled over the lifetime of the budget account.",
            "format": "int64",
            "type": "string"
          },
          "limitNano": {
            "description": "Effective spend limit. Zero when tracking is true.",
            "format": "int64",
            "type": "string"
          },
          "periodEnd": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "periodKey": {
            "description": "Stable key for the current budget period.",
            "type": "string"
          },
          "periodKind": {
            "description": "Length of the budget period.",
            "enum": [
              "PERIOD_KIND_UNSPECIFIED",
              "PERIOD_KIND_DAILY",
              "PERIOD_KIND_WEEKLY",
              "PERIOD_KIND_MONTHLY",
              "PERIOD_KIND_QUARTERLY",
              "PERIOD_KIND_YEARLY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "periodStart": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "remainingNano": {
            "description": "Spend headroom after settled and reserved spend.",
            "format": "int64",
            "type": "string"
          },
          "reservedNano": {
            "description": "Spend reserved by in-progress calls.",
            "format": "int64",
            "type": "string"
          },
          "scope": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.AccountScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "tracking": {
            "description": "Whether this scope records spend without enforcing a finite limit.",
            "type": "boolean"
          },
          "windowCommittedNano": {
            "description": "Settled plus reserved spend in the current budget period.",
            "format": "int64",
            "type": "string"
          },
          "windowConsumedNano": {
            "description": "Spend settled in the current budget period.",
            "format": "int64",
            "type": "string"
          }
        },
        "title": "Effective Scope",
        "type": "object",
        "x-speakeasy-name-override": "EffectiveScope"
      },
      "c1.api.spendinsights.v1.ForecastPoint": {
        "description": "ForecastPoint represents projected spend for one future UTC day.",
        "properties": {
          "day": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "p20Nano": {
            "description": "Low spend projection for the day.",
            "format": "int64",
            "type": "string"
          },
          "p50Nano": {
            "description": "Median spend projection for the day.",
            "format": "int64",
            "type": "string"
          },
          "p80Nano": {
            "description": "High spend projection for the day.",
            "format": "int64",
            "type": "string"
          }
        },
        "title": "Forecast Point",
        "type": "object",
        "x-speakeasy-name-override": "ForecastPoint"
      },
      "c1.api.spendinsights.v1.GetAttributionRollupsRequest": {
        "description": "GetAttributionRollupsRequest specifies how to group settled spend.",
        "properties": {
          "dimension": {
            "description": "Dimension used to group settled calls.",
            "enum": [
              "ATTRIBUTION_DIMENSION_UNSPECIFIED",
              "ATTRIBUTION_DIMENSION_USER",
              "ATTRIBUTION_DIMENSION_DEPARTMENT",
              "ATTRIBUTION_DIMENSION_AGENT",
              "ATTRIBUTION_DIMENSION_SESSION",
              "ATTRIBUTION_DIMENSION_MODEL",
              "ATTRIBUTION_DIMENSION_CALL_SOURCE",
              "ATTRIBUTION_DIMENSION_SUBJECT_FUND_SOURCE",
              "ATTRIBUTION_DIMENSION_APP"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "endTime": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "filters": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.spendinsights.v1.AttributionFilters"
              },
              {
                "type": "null"
              }
            ]
          },
          "pageSize": {
            "description": "Maximum number of groups to return. The default is 25 and the maximum is 100.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "Pagination token from a previous response with the same window, dimension, and filters.",
            "type": "string"
          },
          "startTime": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Get Attribution Rollups Request",
        "type": "object",
        "x-speakeasy-name-override": "GetAttributionRollupsRequest"
      },
      "c1.api.spendinsights.v1.GetAttributionRollupsResponse": {
        "description": "GetAttributionRollupsResponse contains one page of ranked attribution groups.",
        "properties": {
          "groups": {
            "description": "Groups ordered by settled spend descending, then key ascending.",
            "items": {
              "$ref": "#/components/schemas/c1.api.spendinsights.v1.AttributionGroup"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token for the next page. Empty when no more groups remain.",
            "type": "string"
          }
        },
        "title": "Get Attribution Rollups Response",
        "type": "object",
        "x-speakeasy-name-override": "GetAttributionRollupsResponse"
      },
      "c1.api.spendinsights.v1.GetDenialResponse": {
        "description": "GetDenialResponse contains a denial episode and its first-refusal context.",
        "properties": {
          "episode": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.spendinsights.v1.DenialEpisode"
              },
              {
                "type": "null"
              }
            ]
          },
          "firstDenialMoney": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.spendinsights.v1.DenialMoneySnapshot"
              },
              {
                "type": "null"
              }
            ]
          },
          "historicalTrace": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.spendinsights.v1.AdmissionTrace"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get Denial Response",
        "type": "object",
        "x-speakeasy-name-override": "GetDenialResponse"
      },
      "c1.api.spendinsights.v1.GetMySpendHistoryResponse": {
        "description": "GetMySpendHistoryResponse contains the caller's complete-day history and\n current calendar-month totals.",
        "properties": {
          "currencyCode": {
            "description": "Currency used for monetary values.",
            "type": "string"
          },
          "monthEnd": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "monthStart": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "reportingEnd": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "reportingStart": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "spentInRangeNano": {
            "description": "Settled spend from reporting_start through reporting_end.",
            "format": "int64",
            "type": "string"
          },
          "spentThisMonthNano": {
            "description": "Settled spend from month_start through the current whole-second cutoff.",
            "format": "int64",
            "type": "string"
          },
          "spentThroughYesterdayNano": {
            "description": "Settled spend from month_start through reporting_end.",
            "format": "int64",
            "type": "string"
          },
          "trajectory": {
            "description": "Settled spend for each complete UTC day in the reporting range.",
            "items": {
              "$ref": "#/components/schemas/c1.api.spendinsights.v1.MySpendTrajectoryPoint"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Get My Spend History Response",
        "type": "object",
        "x-speakeasy-name-override": "GetMySpendHistoryResponse"
      },
      "c1.api.spendinsights.v1.GetMySpendStatusResponse": {
        "description": "GetMySpendStatusResponse contains the caller's effective limits and optional denial.",
        "properties": {
          "block": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.spendinsights.v1.MySpendBlock"
              },
              {
                "type": "null"
              }
            ]
          },
          "currencyCode": {
            "description": "Currency used for monetary values.",
            "type": "string"
          },
          "scopes": {
            "description": "Ordered organization, user, application, and user-application scopes.\n Shared organization and application scopes contain no financial details.",
            "items": {
              "$ref": "#/components/schemas/c1.api.spendinsights.v1.MyEffectiveScope"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "state": {
            "description": "Result of resolving the caller's effective limits.",
            "enum": [
              "EFFECTIVE_LIMITS_STATE_UNSPECIFIED",
              "EFFECTIVE_LIMITS_STATE_RESOLVED",
              "EFFECTIVE_LIMITS_STATE_NO_POLICY",
              "EFFECTIVE_LIMITS_STATE_NO_CEILING",
              "EFFECTIVE_LIMITS_STATE_DENIED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Get My Spend Status Response",
        "type": "object",
        "x-speakeasy-name-override": "GetMySpendStatusResponse"
      },
      "c1.api.spendinsights.v1.GetOverviewRequest": {
        "description": "GetOverviewRequest specifies a reporting window of at most 90 days.",
        "properties": {
          "endTime": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "startTime": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Get Overview Request",
        "type": "object",
        "x-speakeasy-name-override": "GetOverviewRequest"
      },
      "c1.api.spendinsights.v1.GetOverviewResponse": {
        "description": "GetOverviewResponse contains current budget state and spend activity for the\n requested reporting window.",
        "properties": {
          "accountInitialized": {
            "description": "Whether the current organization budget account has recorded activity.",
            "type": "boolean"
          },
          "availability": {
            "description": "Data availability for the requested reporting window.",
            "enum": [
              "REPORTING_AVAILABILITY_UNSPECIFIED",
              "REPORTING_AVAILABILITY_COMPLETE",
              "REPORTING_AVAILABILITY_PARTIAL_RETENTION",
              "REPORTING_AVAILABILITY_OUTSIDE_RETENTION",
              "REPORTING_AVAILABILITY_NO_ACTIVITY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "availableEnd": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "availableStart": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "committedNano": {
            "description": "Settled plus reserved spend in the current budget period.",
            "format": "int64",
            "type": "string"
          },
          "consumedNano": {
            "description": "Spend settled in the current budget period.",
            "format": "int64",
            "type": "string"
          },
          "coverage": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.spendinsights.v1.AttributionCoverage"
              },
              {
                "type": "null"
              }
            ]
          },
          "currencyCode": {
            "description": "Currency used for monetary values.",
            "type": "string"
          },
          "denialEvents": {
            "description": "Number of budget refusals in the reporting window.",
            "format": "int64",
            "type": "string"
          },
          "distinctAppCount": {
            "description": "Number of distinct applications with settled calls.",
            "format": "int32",
            "type": "integer"
          },
          "forecast": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.spendinsights.v1.RunRateForecast"
              },
              {
                "type": "null"
              }
            ]
          },
          "hasPriorWindow": {
            "description": "Whether a complete preceding equal-length window is available.",
            "type": "boolean"
          },
          "hasRemainingNano": {
            "description": "Whether remaining_nano is available for this budget.",
            "type": "boolean"
          },
          "limitNano": {
            "description": "Current organization spend limit.",
            "format": "int64",
            "type": "string"
          },
          "periodEnd": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "periodStart": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "priorWindowConsumedNano": {
            "description": "Exact settled spend in the preceding equal-length window.",
            "format": "int64",
            "type": "string"
          },
          "rateBasis": {
            "description": "Recorded price bases used by settled calls.",
            "items": {
              "$ref": "#/components/schemas/c1.api.spendinsights.v1.RateBasisCount"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "remainingNano": {
            "description": "Current spend headroom after settled and reserved spend.",
            "format": "int64",
            "type": "string"
          },
          "reportingEnd": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "reportingStart": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "reportingWindowConsumedNano": {
            "description": "Exact settled spend in the requested reporting window.",
            "format": "int64",
            "type": "string"
          },
          "reservedNano": {
            "description": "Spend reserved by in-progress calls.",
            "format": "int64",
            "type": "string"
          },
          "state": {
            "description": "Whether spend governance is configured for the organization.",
            "enum": [
              "OVERVIEW_STATE_UNSPECIFIED",
              "OVERVIEW_STATE_RESOLVED",
              "OVERVIEW_STATE_NO_POLICY",
              "OVERVIEW_STATE_NO_CEILING"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "tokens": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.spendinsights.v1.TokenEconomics"
              },
              {
                "type": "null"
              }
            ]
          },
          "trajectory": {
            "description": "Daily settled-spend totals for the reporting window.",
            "items": {
              "$ref": "#/components/schemas/c1.api.spendinsights.v1.TrajectoryPoint"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Get Overview Response",
        "type": "object",
        "x-speakeasy-name-override": "GetOverviewResponse"
      },
      "c1.api.spendinsights.v1.MyEffectiveScope": {
        "description": "MyEffectiveScope describes one budget scope that applies to the caller.\n Organization and application scopes never expose financial or authority data.",
        "properties": {
          "financials": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.spendinsights.v1.MyEffectiveScopeFinancials"
              },
              {
                "type": "null"
              }
            ]
          },
          "periodEnd": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "periodKey": {
            "description": "Stable key for the current budget period.",
            "type": "string"
          },
          "periodKind": {
            "description": "Length of the current budget period.",
            "enum": [
              "PERIOD_KIND_UNSPECIFIED",
              "PERIOD_KIND_DAILY",
              "PERIOD_KIND_WEEKLY",
              "PERIOD_KIND_MONTHLY",
              "PERIOD_KIND_QUARTERLY",
              "PERIOD_KIND_YEARLY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "periodStart": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "scope": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.AccountScope"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "My Effective Scope",
        "type": "object",
        "x-speakeasy-name-override": "MyEffectiveScope"
      },
      "c1.api.spendinsights.v1.MyEffectiveScopeFinancials": {
        "description": "MyEffectiveScopeFinancials contains caller-owned budget amounts. It is\n present only for SUBJECT and SUBJECT_APP scopes that name the caller.",
        "properties": {
          "accountInitialized": {
            "description": "Whether this budget account has recorded activity.",
            "type": "boolean"
          },
          "hasRemainingNano": {
            "description": "Whether remaining_nano is available for this scope.",
            "type": "boolean"
          },
          "lifetimeConsumedNano": {
            "description": "Spend settled over the lifetime of the budget account.",
            "format": "int64",
            "type": "string"
          },
          "limitNano": {
            "description": "Effective spend limit. Zero when tracking is true.",
            "format": "int64",
            "type": "string"
          },
          "remainingNano": {
            "description": "Spend headroom after settled and reserved spend.",
            "format": "int64",
            "type": "string"
          },
          "reservedNano": {
            "description": "Spend reserved by in-progress calls.",
            "format": "int64",
            "type": "string"
          },
          "tracking": {
            "description": "Whether this scope records spend without enforcing a finite limit.",
            "type": "boolean"
          },
          "windowCommittedNano": {
            "description": "Settled plus reserved spend in the current budget period.",
            "format": "int64",
            "type": "string"
          },
          "windowConsumedNano": {
            "description": "Spend settled in the current budget period.",
            "format": "int64",
            "type": "string"
          }
        },
        "title": "My Effective Scope Financials",
        "type": "object",
        "x-speakeasy-name-override": "MyEffectiveScopeFinancials"
      },
      "c1.api.spendinsights.v1.MySpendBlock": {
        "description": "MySpendBlock is a caller-visible denial projection. Organization and\n application episodes omit account amounts.\n Its field ledger was intentionally reset while the service is STABILITY_ALPHA.",
        "properties": {
          "attemptCount": {
            "description": "Best-effort lower bound for refused calls in this episode. Concurrent\n retry exhaustion can under-report.",
            "format": "int64",
            "type": "string"
          },
          "attemptedAppId": {
            "description": "Trusted app of the denied attempt after caller-scoped audience proof.\n This is only a selector and never grants access to the episode.",
            "type": "string"
          },
          "audienceMessage": {
            "description": "Authoritative user-facing explanation for this refusal.",
            "type": "string"
          },
          "blockId": {
            "description": "Unique identifier for this denial episode.",
            "type": "string"
          },
          "closedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "firstDeniedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "lastDeniedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "money": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.spendinsights.v1.DenialMoneySnapshot"
              },
              {
                "type": "null"
              }
            ]
          },
          "periodEnd": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "periodKey": {
            "description": "Stable key for the denied budget period.",
            "type": "string"
          },
          "personalRequestSizing": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.spendinsights.v1.PersonalSpendRemedyRequestSizing"
              },
              {
                "type": "null"
              }
            ]
          },
          "reason": {
            "description": "Reason the calls were denied.",
            "enum": [
              "SPEND_DENY_REASON_UNSPECIFIED",
              "SPEND_DENY_REASON_TENANT_FROZEN",
              "SPEND_DENY_REASON_SUSPENDED_BY_ADMIN",
              "SPEND_DENY_REASON_APP_SUSPENDED",
              "SPEND_DENY_REASON_APP_PAUSED_BY_YOU",
              "SPEND_DENY_REASON_NO_SUPPLY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "requestTaskId": {
            "description": "Current access request task linked to this episode, when one exists.",
            "type": "string"
          },
          "scope": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.AccountScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "state": {
            "description": "Whether this denial episode remains open.",
            "enum": [
              "SPEND_BLOCK_STATE_UNSPECIFIED",
              "SPEND_BLOCK_STATE_OPEN",
              "SPEND_BLOCK_STATE_CLOSED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "My Spend Block",
        "type": "object",
        "x-speakeasy-name-override": "MySpendBlock"
      },
      "c1.api.spendinsights.v1.MySpendTrajectoryPoint": {
        "description": "MySpendTrajectoryPoint represents the caller's settled spend for one UTC day.",
        "properties": {
          "consumedNano": {
            "description": "Spend settled during the day, in billionths of the configured currency unit.",
            "format": "int64",
            "type": "string"
          },
          "day": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "My Spend Trajectory Point",
        "type": "object",
        "x-speakeasy-name-override": "MySpendTrajectoryPoint"
      },
      "c1.api.spendinsights.v1.MySpendUsageRow": {
        "description": "MySpendUsageRow exposes only the caller's call-level usage. Operational\n company-funded calls are excluded. Missing amounts and counts are unknown.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "cacheReadTokens": {
            "description": "The cacheReadTokens field.",
            "format": "int64",
            "type": [
              "string",
              "null"
            ]
          },
          "cacheWriteTokens": {
            "description": "The cacheWriteTokens field.",
            "format": "int64",
            "type": [
              "string",
              "null"
            ]
          },
          "conversationId": {
            "description": "The conversationId field.",
            "type": "string"
          },
          "costNano": {
            "description": "SETTLED is canonical settled fund spend, even when usage is incomplete.\n For SETTLE_DROPPED this is qualified usage cost, not settled fund spend.\n Absent when no exact amount is known; a present zero is measured zero.",
            "format": "int64",
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "currencyCode": {
            "description": "The currencyCode field.",
            "type": "string"
          },
          "finalizedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "inputTokens": {
            "description": "Presence-aware billing inputs, not legacy provider token totals.",
            "format": "int64",
            "type": [
              "string",
              "null"
            ]
          },
          "modelId": {
            "description": "The modelId field.",
            "type": "string"
          },
          "outcome": {
            "description": "The outcome field.",
            "enum": [
              "MY_SPEND_USAGE_OUTCOME_UNSPECIFIED",
              "MY_SPEND_USAGE_OUTCOME_SETTLED",
              "MY_SPEND_USAGE_OUTCOME_SETTLE_DROPPED",
              "MY_SPEND_USAGE_OUTCOME_NOT_GOVERNED",
              "MY_SPEND_USAGE_OUTCOME_ZERO_PRICED",
              "MY_SPEND_USAGE_OUTCOME_UNPRICED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "outputTokens": {
            "description": "The outputTokens field.",
            "format": "int64",
            "type": [
              "string",
              "null"
            ]
          },
          "reasoningTokens": {
            "description": "The reasoningTokens field.",
            "format": "int64",
            "type": [
              "string",
              "null"
            ]
          },
          "usageId": {
            "description": "The usageId field.",
            "type": "string"
          },
          "usageIncomplete": {
            "description": "True when trustworthy complete billing inputs are unavailable.",
            "type": "boolean"
          }
        },
        "title": "My Spend Usage Row",
        "type": "object",
        "x-speakeasy-name-override": "MySpendUsageRow"
      },
      "c1.api.spendinsights.v1.PersonalSpendRemedyRequestSizing": {
        "description": "PersonalSpendRemedyRequestSizing is server-owned guidance for changing the\n caller's personal total after a refusal. It exposes one actionable total and\n never identifies the outer control that may cap or prevent the request.",
        "properties": {
          "estimatedAdditional": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.Money"
              },
              {
                "type": "null"
              }
            ]
          },
          "minimumTotal": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.Money"
              },
              {
                "type": "null"
              }
            ]
          },
          "otherControlRequired": {
            "description": "Whether another organization or application control must change before a\n personal request can help. No identity or amount for that control is\n disclosed.",
            "type": "boolean"
          },
          "recommendationCapped": {
            "description": "Whether recommended_total was reduced to the current organization ceiling.",
            "type": "boolean"
          },
          "recommendedTotal": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.Money"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Personal Spend Remedy Request Sizing",
        "type": "object",
        "x-speakeasy-name-override": "PersonalSpendRemedyRequestSizing"
      },
      "c1.api.spendinsights.v1.RateBasisCount": {
        "description": "RateBasisCount summarizes settled calls that used one recorded price basis.",
        "properties": {
          "calls": {
            "description": "Number of settled calls that used this price basis.",
            "format": "int64",
            "type": "string"
          },
          "settledNano": {
            "description": "Total settled spend for these calls.",
            "format": "int64",
            "type": "string"
          },
          "snapshot": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.spendinsights.v1.ClawLLMRateSnapshot"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Rate Basis Count",
        "type": "object",
        "x-speakeasy-name-override": "RateBasisCount"
      },
      "c1.api.spendinsights.v1.ResolveEffectiveLimitsResponse": {
        "description": "ResolveEffectiveLimitsResponse contains the limits currently applying to a user.",
        "properties": {
          "currencyCode": {
            "description": "Currency used for monetary values.",
            "type": "string"
          },
          "denialReason": {
            "description": "Reason spend is denied. Present only when state is DENIED.",
            "enum": [
              "SPEND_DENY_REASON_UNSPECIFIED",
              "SPEND_DENY_REASON_TENANT_FROZEN",
              "SPEND_DENY_REASON_SUSPENDED_BY_ADMIN",
              "SPEND_DENY_REASON_APP_SUSPENDED",
              "SPEND_DENY_REASON_APP_PAUSED_BY_YOU",
              "SPEND_DENY_REASON_NO_SUPPLY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "denialScopeName": {
            "description": "Scope that denies spend. Present only when state is DENIED.",
            "type": "string"
          },
          "scopes": {
            "description": "Ordered organization, user, application, and user-application scopes.",
            "items": {
              "$ref": "#/components/schemas/c1.api.spendinsights.v1.EffectiveScope"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "state": {
            "description": "Result of resolving the user's effective limits.",
            "enum": [
              "EFFECTIVE_LIMITS_STATE_UNSPECIFIED",
              "EFFECTIVE_LIMITS_STATE_RESOLVED",
              "EFFECTIVE_LIMITS_STATE_NO_POLICY",
              "EFFECTIVE_LIMITS_STATE_NO_CEILING",
              "EFFECTIVE_LIMITS_STATE_DENIED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Resolve Effective Limits Response",
        "type": "object",
        "x-speakeasy-name-override": "ResolveEffectiveLimitsResponse"
      },
      "c1.api.spendinsights.v1.ResolvedAmount": {
        "description": "ResolvedAmount records the admitted nano-unit limit.",
        "properties": {
          "amountNano": {
            "description": "Admitted limit, in nano-units.",
            "format": "int64",
            "type": "string"
          }
        },
        "title": "Resolved Amount",
        "type": "object",
        "x-speakeasy-name-override": "ResolvedAmount"
      },
      "c1.api.spendinsights.v1.ResolvedLimit": {
        "description": "ResolvedLimit records the historical limit of an admitted account.\n\nThis message contains a oneof named kind. Only a single field of the following list may be set at a time:\n  - unlimited\n  - amount\n",
        "properties": {
          "amount": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.spendinsights.v1.ResolvedAmount"
              },
              {
                "type": "null"
              }
            ]
          },
          "unlimited": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.spendinsights.v1.ResolvedUnlimited"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Resolved Limit",
        "type": "object",
        "x-speakeasy-name-override": "ResolvedLimit"
      },
      "c1.api.spendinsights.v1.ResolvedUnlimited": {
        "description": "ResolvedUnlimited records accounting without a finite admission limit.",
        "title": "Resolved Unlimited",
        "type": "object",
        "x-speakeasy-name-override": "ResolvedUnlimited"
      },
      "c1.api.spendinsights.v1.RunRateForecast": {
        "description": "RunRateForecast describes expected spend through the end of the current\n budget period. Complete-day averages include zero-spend days.",
        "properties": {
          "completeDays": {
            "description": "Number of complete UTC days used for the run-rate calculation.",
            "format": "int32",
            "type": "integer"
          },
          "daysUntilForecast": {
            "description": "Number of additional history days required before a forecast is available.",
            "format": "int32",
            "type": "integer"
          },
          "expectedForecastEligibleAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "historyDays": {
            "description": "Number of usable daily history points loaded for the forecast.",
            "format": "int32",
            "type": "integer"
          },
          "kind": {
            "description": "Method used to calculate this projection.",
            "enum": [
              "RUN_RATE_FORECAST_KIND_UNSPECIFIED",
              "RUN_RATE_FORECAST_KIND_COLLECTING_BASELINE",
              "RUN_RATE_FORECAST_KIND_RUN_RATE",
              "RUN_RATE_FORECAST_KIND_FORECAST"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "modelName": {
            "description": "Forecasting model name. Present only when kind is FORECAST.",
            "type": "string"
          },
          "periodToDateNano": {
            "description": "Exact spend settled in the current budget period through the current time.",
            "format": "int64",
            "type": "string"
          },
          "points": {
            "description": "Daily forecast points for the remainder of the current budget period.",
            "items": {
              "$ref": "#/components/schemas/c1.api.spendinsights.v1.ForecastPoint"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "projectedP20Nano": {
            "description": "Low projected spend for the full current budget period.",
            "format": "int64",
            "type": "string"
          },
          "projectedP50Nano": {
            "description": "Median projected spend for the full current budget period.",
            "format": "int64",
            "type": "string"
          },
          "projectedP80Nano": {
            "description": "High projected spend for the full current budget period.",
            "format": "int64",
            "type": "string"
          },
          "remainingDays": {
            "description": "Number of complete future UTC days remaining in the budget period.",
            "format": "int32",
            "type": "integer"
          },
          "runRateNano": {
            "description": "Mean settled spend per complete UTC day. Valid when complete_days is nonzero.",
            "format": "int64",
            "type": "string"
          }
        },
        "title": "Run Rate Forecast",
        "type": "object",
        "x-speakeasy-name-override": "RunRateForecast"
      },
      "c1.api.spendinsights.v1.SearchDenialsRequest": {
        "description": "SearchDenialsRequest specifies denial filters and pagination.",
        "properties": {
          "filters": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.spendinsights.v1.DenialFilters"
              },
              {
                "type": "null"
              }
            ]
          },
          "pageSize": {
            "description": "Maximum number of episodes to return. The default is 25 and the maximum is 100.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "Pagination token from a previous response with the same filters.",
            "type": "string"
          }
        },
        "title": "Search Denials Request",
        "type": "object",
        "x-speakeasy-name-override": "SearchDenialsRequest"
      },
      "c1.api.spendinsights.v1.SearchDenialsResponse": {
        "description": "SearchDenialsResponse contains one page of denial episodes.",
        "properties": {
          "episodes": {
            "description": "Episodes ordered by most recent refusal, then unique ID, both descending.",
            "items": {
              "$ref": "#/components/schemas/c1.api.spendinsights.v1.DenialEpisode"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token for the next page. Empty when no more episodes remain.",
            "type": "string"
          }
        },
        "title": "Search Denials Response",
        "type": "object",
        "x-speakeasy-name-override": "SearchDenialsResponse"
      },
      "c1.api.spendinsights.v1.SearchMySpendUsageRequest": {
        "description": "SearchMySpendUsageRequest selects a half-open finalization-time interval.\n The caller's identity is always obtained from the authenticated session.\n Bounds must have microsecond precision; finer timestamps are rejected.",
        "properties": {
          "appId": {
            "description": "Optional application filter; does not grant access to another user's calls.",
            "type": "string"
          },
          "endTime": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "pageSize": {
            "description": "Maximum rows per page. Zero uses the server default.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "Opaque position token from a previous response. Keep history selectors\n unchanged when continuing; concurrent writes may shift page boundaries.\n Caller authorization is applied independently on every request.",
            "type": "string"
          },
          "startTime": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Search My Spend Usage Request",
        "type": "object",
        "x-speakeasy-name-override": "SearchMySpendUsageRequest"
      },
      "c1.api.spendinsights.v1.SearchMySpendUsageResponse": {
        "description": "SearchMySpendUsageResponse contains one page of caller-only usage.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.spendinsights.v1.MySpendUsageRow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Search My Spend Usage Response",
        "type": "object",
        "x-speakeasy-name-override": "SearchMySpendUsageResponse"
      },
      "c1.api.spendinsights.v1.TokenEconomics": {
        "description": "TokenEconomics summarizes token usage and cost for settled calls.",
        "properties": {
          "billableTokens": {
            "description": "Total billable input, output, cache-read, and cache-write tokens.",
            "format": "int64",
            "type": "string"
          },
          "blendedCostPerMillionTokensNano": {
            "description": "Blended settled cost per million billable tokens.",
            "format": "int64",
            "type": "string"
          },
          "cacheReadTokens": {
            "description": "Input tokens served from cache.",
            "format": "int64",
            "type": "string"
          },
          "cacheReadValueNano": {
            "description": "Savings from cache reads compared with uncached input prices.",
            "format": "int64",
            "type": "string"
          },
          "cacheWriteCostNano": {
            "description": "Cost of writing tokens to cache.",
            "format": "int64",
            "type": "string"
          },
          "cacheWriteTokens": {
            "description": "Tokens written to cache.",
            "format": "int64",
            "type": "string"
          },
          "inputTokens": {
            "description": "Input tokens processed.",
            "format": "int64",
            "type": "string"
          },
          "outputTokens": {
            "description": "Output tokens generated.",
            "format": "int64",
            "type": "string"
          },
          "reasoningTokens": {
            "description": "Reasoning tokens generated.",
            "format": "int64",
            "type": "string"
          },
          "settledCalls": {
            "description": "Number of calls with settled spend.",
            "format": "int64",
            "type": "string"
          }
        },
        "title": "Token Economics",
        "type": "object",
        "x-speakeasy-name-override": "TokenEconomics"
      },
      "c1.api.spendinsights.v1.TraceAllocation": {
        "description": "TraceAllocation records one scope's historical limit and its source.",
        "properties": {
          "budgetKey": {
            "description": "Stable identifier for the scope's budget account.",
            "type": "string"
          },
          "limit": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.spendinsights.v1.ResolvedLimit"
              },
              {
                "type": "null"
              }
            ]
          },
          "period": {
            "description": "Length of the budget period.",
            "enum": [
              "PERIOD_KIND_UNSPECIFIED",
              "PERIOD_KIND_DAILY",
              "PERIOD_KIND_WEEKLY",
              "PERIOD_KIND_MONTHLY",
              "PERIOD_KIND_QUARTERLY",
              "PERIOD_KIND_YEARLY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "source": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.spendinsights.v1.AuthorityRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Trace Allocation",
        "type": "object",
        "x-speakeasy-name-override": "TraceAllocation"
      },
      "c1.api.spendinsights.v1.TrajectoryPoint": {
        "description": "TrajectoryPoint represents settled spend for one UTC day.",
        "properties": {
          "consumedNano": {
            "description": "Spend settled during the day, in billionths of the configured currency unit.",
            "format": "int64",
            "type": "string"
          },
          "day": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Trajectory Point",
        "type": "object",
        "x-speakeasy-name-override": "TrajectoryPoint"
      },
      "c1.api.ssf_receiver.v1.SSFOutboundAuthBearer": {
        "description": "SSFOutboundAuthBearer is a static bearer token for outbound auth.\n Token is write-only: accepted on create/update, never returned.",
        "properties": {
          "token": {
            "description": "The token field.",
            "type": "string"
          }
        },
        "title": "Ssf Outbound Auth Bearer",
        "type": "object",
        "x-speakeasy-name-override": "SSFOutboundAuthBearer"
      },
      "c1.api.ssf_receiver.v1.SSFOutboundAuthOAuth2": {
        "description": "SSFOutboundAuthOAuth2 uses OAuth2 client credentials for outbound auth.\n client_secret is write-only: accepted on create/update, never returned.",
        "properties": {
          "clientId": {
            "description": "The clientId field.",
            "type": "string"
          },
          "clientSecret": {
            "description": "The clientSecret field.",
            "type": "string"
          },
          "scopes": {
            "description": "The scopes field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "tokenUrl": {
            "description": "The tokenUrl field.",
            "type": "string"
          }
        },
        "title": "Ssf Outbound Auth O Auth 2",
        "type": "object",
        "x-speakeasy-name-override": "SSFOutboundAuthOAuth2"
      },
      "c1.api.ssf_receiver.v1.SSFReceiverEvent": {
        "description": "SSFReceiverEvent shows both wire-level data and C1 canonical outcome.",
        "properties": {
          "canonicalType": {
            "description": "C1 canonical outcome (what C1 understood and did).\n The normalized event type after mapping from the wire event type.",
            "enum": [
              "SSF_CANONICAL_EVENT_TYPE_UNSPECIFIED",
              "SSF_CANONICAL_EVENT_TYPE_UNRECOGNIZED",
              "SSF_CANONICAL_EVENT_TYPE_SESSION_REVOKED",
              "SSF_CANONICAL_EVENT_TYPE_CREDENTIAL_CHANGED",
              "SSF_CANONICAL_EVENT_TYPE_TOKEN_CLAIMS_CHANGED",
              "SSF_CANONICAL_EVENT_TYPE_ASSURANCE_LEVEL_CHANGED",
              "SSF_CANONICAL_EVENT_TYPE_DEVICE_COMPLIANCE_CHANGED",
              "SSF_CANONICAL_EVENT_TYPE_RISK_LEVEL_CHANGED",
              "SSF_CANONICAL_EVENT_TYPE_SESSION_ESTABLISHED",
              "SSF_CANONICAL_EVENT_TYPE_SESSION_PRESENTED",
              "SSF_CANONICAL_EVENT_TYPE_ACCOUNT_DISABLED",
              "SSF_CANONICAL_EVENT_TYPE_ACCOUNT_ENABLED",
              "SSF_CANONICAL_EVENT_TYPE_ACCOUNT_PURGED",
              "SSF_CANONICAL_EVENT_TYPE_CREDENTIAL_COMPROMISE",
              "SSF_CANONICAL_EVENT_TYPE_RECOVERY_ACTIVATED",
              "SSF_CANONICAL_EVENT_TYPE_IDENTIFIER_CHANGED",
              "SSF_CANONICAL_EVENT_TYPE_VERIFICATION",
              "SSF_CANONICAL_EVENT_TYPE_STREAM_UPDATED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "id": {
            "description": "The unique identifier of this event.",
            "type": "string"
          },
          "matchMethod": {
            "description": "How the upstream subject was resolved to a ConductorOne user.",
            "enum": [
              "SSF_SUBJECT_MATCH_METHOD_UNSPECIFIED",
              "SSF_SUBJECT_MATCH_METHOD_IDP_USER",
              "SSF_SUBJECT_MATCH_METHOD_EMAIL",
              "SSF_SUBJECT_MATCH_METHOD_NOT_FOUND",
              "SSF_SUBJECT_MATCH_METHOD_NOT_APPLICABLE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "matchedUserId": {
            "description": "The ConductorOne user ID that the event subject was resolved to, if any.",
            "type": "string"
          },
          "outcome": {
            "description": "The action ConductorOne took in response to this event.",
            "enum": [
              "SSF_EVENT_OUTCOME_UNSPECIFIED",
              "SSF_EVENT_OUTCOME_SESSIONS_REVOKED",
              "SSF_EVENT_OUTCOME_LOGGED",
              "SSF_EVENT_OUTCOME_PRINCIPAL_NOT_FOUND",
              "SSF_EVENT_OUTCOME_VERIFIED",
              "SSF_EVENT_OUTCOME_STREAM_STATUS_UPDATED",
              "SSF_EVENT_OUTCOME_UNRECOGNIZED",
              "SSF_EVENT_OUTCOME_ERROR"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "outcomeDetail": {
            "description": "Human-readable details about the outcome (e.g., error message or revocation summary).",
            "type": "string"
          },
          "receivedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "sessionsRevoked": {
            "description": "Number of sessions that were revoked as a result of this event.",
            "format": "int32",
            "type": "integer"
          },
          "setJti": {
            "description": "Wire-level data (what the transmitter sent).\n The SET (Security Event Token) JWT ID claim, uniquely identifying the token.",
            "type": "string"
          },
          "streamId": {
            "description": "The SSF receiver stream that received this event.",
            "type": "string"
          },
          "wireEventProfile": {
            "description": "The event profile URI from the SET, if present.",
            "type": "string"
          },
          "wireEventType": {
            "description": "The raw event type URI from the SET (e.g., \"https://schemas.openid.net/secevent/caep/event-type/session-revoked\").",
            "type": "string"
          },
          "wireInitiatingEntity": {
            "description": "The entity that initiated the event, as reported by the transmitter.",
            "type": "string"
          },
          "wireReasonAdmin": {
            "description": "The admin-facing reason string from the SET, if provided by the transmitter.",
            "type": "string"
          },
          "wireSubjectFormat": {
            "description": "The subject identifier format from the SET (e.g., \"email\", \"iss_sub\").",
            "type": "string"
          },
          "wireSubjectIdentifier": {
            "description": "The raw subject identifier value from the SET.",
            "type": "string"
          }
        },
        "title": "Ssf Receiver Event",
        "type": "object",
        "x-speakeasy-name-override": "SSFReceiverEvent"
      },
      "c1.api.ssf_receiver.v1.SSFReceiverEventSearchServiceSearchRequest": {
        "description": "SSFReceiverEventSearchServiceSearchRequest carries the search query and optional filters for narrowing results.",
        "properties": {
          "eventType": {
            "description": "Restricts results to events matching this wire event type URI. Optional.",
            "type": "string"
          },
          "matchedUserId": {
            "description": "Restricts results to events matched to this ConductorOne user ID. Optional.",
            "type": "string"
          },
          "outcome": {
            "description": "Restricts results to events with this processing outcome. Optional.",
            "enum": [
              "SSF_EVENT_OUTCOME_UNSPECIFIED",
              "SSF_EVENT_OUTCOME_SESSIONS_REVOKED",
              "SSF_EVENT_OUTCOME_LOGGED",
              "SSF_EVENT_OUTCOME_PRINCIPAL_NOT_FOUND",
              "SSF_EVENT_OUTCOME_VERIFIED",
              "SSF_EVENT_OUTCOME_STREAM_STATUS_UPDATED",
              "SSF_EVENT_OUTCOME_UNRECOGNIZED",
              "SSF_EVENT_OUTCOME_ERROR"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "pageSize": {
            "description": "Maximum number of events to return per page.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "Token from a previous SearchResponse to fetch the next page of results.",
            "type": "string"
          },
          "query": {
            "description": "Full-text search query matched against event fields.",
            "type": "string"
          },
          "streamId": {
            "description": "Restricts results to events from this SSF receiver stream. Optional.",
            "type": "string"
          }
        },
        "title": "Ssf Receiver Event Search Service Search Request",
        "type": "object",
        "x-speakeasy-name-override": "SSFReceiverEventSearchServiceSearchRequest"
      },
      "c1.api.ssf_receiver.v1.SSFReceiverEventSearchServiceSearchResponse": {
        "description": "SSFReceiverEventSearchServiceSearchResponse contains the matching events and a pagination token.",
        "properties": {
          "list": {
            "description": "The SSF events matching the search criteria.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ssf_receiver.v1.SSFReceiverEvent"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token to retrieve the next page. Empty when there are no more results.",
            "type": "string"
          }
        },
        "title": "Ssf Receiver Event Search Service Search Response",
        "type": "object",
        "x-speakeasy-name-override": "SSFReceiverEventSearchServiceSearchResponse"
      },
      "c1.api.ssf_receiver.v1.SSFReceiverEventServiceListResponse": {
        "description": "SSFReceiverEventServiceListResponse contains a page of received SSF events.",
        "properties": {
          "list": {
            "description": "The SSF events in the current page.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ssf_receiver.v1.SSFReceiverEvent"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token to retrieve the next page. Empty when there are no more results.",
            "type": "string"
          }
        },
        "title": "Ssf Receiver Event Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "SSFReceiverEventServiceListResponse"
      },
      "c1.api.ssf_receiver.v1.SSFReceiverStream": {
        "description": "SSFReceiverStream is the public API representation.\n Secrets (push_auth_token, outbound credentials) are write-only.\n\nThis message contains a oneof named outbound_auth. Only a single field of the following list may be set at a time:\n  - outboundAuthBearer\n  - outboundAuthOauth2\n",
        "properties": {
          "accountDisabledAction": {
            "description": "Action to take when an account-disabled event is received.",
            "enum": [
              "SSF_REVOCATION_ACTION_UNSPECIFIED",
              "SSF_REVOCATION_ACTION_REVOKE_ALL",
              "SSF_REVOCATION_ACTION_LOG_ONLY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "credentialChangeAction": {
            "description": "Action to take when a credential-change event is received.",
            "enum": [
              "SSF_REVOCATION_ACTION_UNSPECIFIED",
              "SSF_REVOCATION_ACTION_REVOKE_ALL",
              "SSF_REVOCATION_ACTION_LOG_ONLY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "credentialCompromiseAction": {
            "description": "Action to take when a credential-compromise event is received.",
            "enum": [
              "SSF_REVOCATION_ACTION_UNSPECIFIED",
              "SSF_REVOCATION_ACTION_REVOKE_ALL",
              "SSF_REVOCATION_ACTION_LOG_ONLY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "deliveryMethod": {
            "description": "Controls whether events are received via push (transmitter POSTs to C1) or poll (C1 fetches from transmitter).",
            "enum": [
              "SSF_DELIVERY_METHOD_UNSPECIFIED",
              "SSF_DELIVERY_METHOD_PUSH",
              "SSF_DELIVERY_METHOD_POLL"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "description": {
            "description": "Optional description of the stream's purpose or source.",
            "type": "string"
          },
          "displayName": {
            "description": "Human-readable name for the stream shown in the UI.",
            "type": "string"
          },
          "enabled": {
            "description": "Controls whether this stream actively processes incoming events. When false, events are ignored.",
            "type": "boolean"
          },
          "eventTypesEnabled": {
            "description": "SSF/CAEP/RISC event type URIs that this stream is configured to accept.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "expectedAudience": {
            "description": "Expected audience (aud) claim in incoming SETs. Optional.",
            "type": "string"
          },
          "id": {
            "description": "The unique identifier of this SSF receiver stream.",
            "type": "string"
          },
          "issuerUrl": {
            "description": "Upstream IdP identification.",
            "type": "string"
          },
          "jwksUrl": {
            "description": "The jwksUrl field.",
            "type": "string"
          },
          "lastErrorAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "lastErrorMessage": {
            "description": "The lastErrorMessage field.",
            "type": "string"
          },
          "lastVerifiedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "outboundAuthBearer": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ssf_receiver.v1.SSFOutboundAuthBearer"
              },
              {
                "type": "null"
              }
            ]
          },
          "outboundAuthOauth2": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ssf_receiver.v1.SSFOutboundAuthOAuth2"
              },
              {
                "type": "null"
              }
            ]
          },
          "pollEndpointUrl": {
            "description": "URL of the transmitter's poll endpoint where C1 fetches events from.",
            "type": "string"
          },
          "pollInterval": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "pushAuthToken": {
            "description": "Push auth token: write-only. Accepted on create, never returned in get/list.",
            "type": "string"
          },
          "pushEndpointUrl": {
            "description": "Push delivery: C1 generates a unique endpoint URL.",
            "readOnly": true,
            "type": "string"
          },
          "sessionRevokedAction": {
            "description": "Per-canonical-type action configuration.\n Event types without a config here default to LOG_ONLY.\n Action to take when a session-revoked event is received.",
            "enum": [
              "SSF_REVOCATION_ACTION_UNSPECIFIED",
              "SSF_REVOCATION_ACTION_REVOKE_ALL",
              "SSF_REVOCATION_ACTION_LOG_ONLY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Ssf Receiver Stream",
        "type": "object",
        "x-speakeasy-name-override": "SSFReceiverStream"
      },
      "c1.api.ssf_receiver.v1.SSFReceiverStreamServiceCreateRequest": {
        "description": "SSFReceiverStreamServiceCreateRequest contains the configuration for a new SSF receiver stream.",
        "properties": {
          "accountDisabledAction": {
            "description": "Action to take when an account-disabled event is received.",
            "enum": [
              "SSF_REVOCATION_ACTION_UNSPECIFIED",
              "SSF_REVOCATION_ACTION_REVOKE_ALL",
              "SSF_REVOCATION_ACTION_LOG_ONLY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "credentialChangeAction": {
            "description": "Action to take when a credential-change event is received.",
            "enum": [
              "SSF_REVOCATION_ACTION_UNSPECIFIED",
              "SSF_REVOCATION_ACTION_REVOKE_ALL",
              "SSF_REVOCATION_ACTION_LOG_ONLY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "credentialCompromiseAction": {
            "description": "Action to take when a credential-compromise event is received.",
            "enum": [
              "SSF_REVOCATION_ACTION_UNSPECIFIED",
              "SSF_REVOCATION_ACTION_REVOKE_ALL",
              "SSF_REVOCATION_ACTION_LOG_ONLY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "deliveryMethod": {
            "description": "Controls whether events are received via push or poll delivery.",
            "enum": [
              "SSF_DELIVERY_METHOD_UNSPECIFIED",
              "SSF_DELIVERY_METHOD_PUSH",
              "SSF_DELIVERY_METHOD_POLL"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "description": {
            "description": "Optional description of the stream's purpose or source.",
            "type": "string"
          },
          "displayName": {
            "description": "Human-readable name for the stream.",
            "type": "string"
          },
          "enabled": {
            "description": "Controls whether the stream starts processing events immediately after creation.",
            "type": "boolean"
          },
          "expectedAudience": {
            "description": "Expected audience claim in incoming SETs. If set, SETs with a different audience are rejected.",
            "type": "string"
          },
          "issuerUrl": {
            "description": "The issuer URL of the upstream SSF transmitter, used for token validation.",
            "type": "string"
          },
          "jwksUrl": {
            "description": "URL to fetch the transmitter's JSON Web Key Set for SET signature verification.",
            "type": "string"
          },
          "pollEndpointUrl": {
            "description": "URL of the transmitter's poll endpoint. Required when delivery_method is POLL.",
            "type": "string"
          },
          "pollInterval": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "sessionRevokedAction": {
            "description": "Per-event-type action configuration.\n Action to take when a session-revoked event is received.",
            "enum": [
              "SSF_REVOCATION_ACTION_UNSPECIFIED",
              "SSF_REVOCATION_ACTION_REVOKE_ALL",
              "SSF_REVOCATION_ACTION_LOG_ONLY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "required": [
          "displayName",
          "issuerUrl"
        ],
        "title": "Ssf Receiver Stream Service Create Request",
        "type": "object",
        "x-speakeasy-name-override": "SSFReceiverStreamServiceCreateRequest"
      },
      "c1.api.ssf_receiver.v1.SSFReceiverStreamServiceCreateResponse": {
        "description": "SSFReceiverStreamServiceCreateResponse returns the created stream and the push auth token in plaintext.",
        "properties": {
          "pushAuthTokenPlaintext": {
            "description": "Push auth token returned in plaintext ONLY on create.",
            "type": "string"
          },
          "ssfReceiverStream": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ssf_receiver.v1.SSFReceiverStream"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Ssf Receiver Stream Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "SSFReceiverStreamServiceCreateResponse"
      },
      "c1.api.ssf_receiver.v1.SSFReceiverStreamServiceDeleteRequestInput": {
        "description": "SSFReceiverStreamServiceDeleteRequest identifies the SSF receiver stream to delete.",
        "title": "Ssf Receiver Stream Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "SSFReceiverStreamServiceDeleteRequest"
      },
      "c1.api.ssf_receiver.v1.SSFReceiverStreamServiceDeleteResponse": {
        "description": "SSFReceiverStreamServiceDeleteResponse is empty on success.",
        "title": "Ssf Receiver Stream Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "SSFReceiverStreamServiceDeleteResponse"
      },
      "c1.api.ssf_receiver.v1.SSFReceiverStreamServiceGetResponse": {
        "description": "SSFReceiverStreamServiceGetResponse contains the requested SSF receiver stream.",
        "properties": {
          "ssfReceiverStream": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ssf_receiver.v1.SSFReceiverStream"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Ssf Receiver Stream Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "SSFReceiverStreamServiceGetResponse"
      },
      "c1.api.ssf_receiver.v1.SSFReceiverStreamServiceGetStatsResponse": {
        "description": "SSFReceiverStreamServiceGetStatsResponse contains the event processing statistics for the stream.",
        "properties": {
          "stats": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ssf_receiver.v1.SSFReceiverStreamStats"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Ssf Receiver Stream Service Get Stats Response",
        "type": "object",
        "x-speakeasy-name-override": "SSFReceiverStreamServiceGetStatsResponse"
      },
      "c1.api.ssf_receiver.v1.SSFReceiverStreamServiceListResponse": {
        "description": "SSFReceiverStreamServiceListResponse contains a page of SSF receiver streams.",
        "properties": {
          "list": {
            "description": "The SSF receiver streams in the current page.",
            "items": {
              "$ref": "#/components/schemas/c1.api.ssf_receiver.v1.SSFReceiverStream"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token to retrieve the next page. Empty when there are no more results.",
            "type": "string"
          }
        },
        "title": "Ssf Receiver Stream Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "SSFReceiverStreamServiceListResponse"
      },
      "c1.api.ssf_receiver.v1.SSFReceiverStreamServiceTestRequestInput": {
        "description": "SSFReceiverStreamServiceTestRequest identifies the stream to test and an optional subject for identity resolution validation.",
        "properties": {
          "testSubject": {
            "description": "The upstream identifier to test resolution with. Typically an email address\n (e.g., \"alice@company.com\") — the same value the IdP would send in a SET subject.\n The Test RPC runs resolveSubject on this to verify the identity mapping works.\n Optional: upstream identifier (email) to test identity resolution.\n If empty, only JWKS reachability is tested.",
            "type": "string"
          }
        },
        "title": "Ssf Receiver Stream Service Test Request",
        "type": "object",
        "x-speakeasy-name-override": "SSFReceiverStreamServiceTestRequest"
      },
      "c1.api.ssf_receiver.v1.SSFReceiverStreamServiceTestResponse": {
        "description": "SSFReceiverStreamServiceTestResponse reports the results of the stream configuration test across JWKS, identity, and action readiness checks.",
        "properties": {
          "activeRefreshTokenCount": {
            "description": "Number of active refresh tokens for the matched user that would be affected.",
            "format": "int32",
            "type": "integer"
          },
          "activeSessionCount": {
            "description": "Number of active sessions for the matched user that would be affected.",
            "format": "int32",
            "type": "integer"
          },
          "configuredSessionRevokedAction": {
            "description": "Step 3: Action preview.\n The action configured for session-revoked events on this stream.",
            "enum": [
              "SSF_REVOCATION_ACTION_UNSPECIFIED",
              "SSF_REVOCATION_ACTION_REVOKE_ALL",
              "SSF_REVOCATION_ACTION_LOG_ONLY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "identityLinkFound": {
            "description": "Step 2: Identity mapping.\n Whether the test subject was resolved to a ConductorOne user.",
            "type": "boolean"
          },
          "jwksError": {
            "description": "Error message if the JWKS endpoint could not be reached or returned invalid data.",
            "type": "string"
          },
          "jwksKeyCount": {
            "description": "Number of signing keys found at the JWKS endpoint.",
            "format": "int32",
            "type": "integer"
          },
          "jwksReachable": {
            "description": "Step 1: JWKS reachability.\n Whether the JWKS endpoint was reachable and returned valid keys.",
            "type": "boolean"
          },
          "matchedUserId": {
            "description": "The ConductorOne user ID the test subject maps to, if an identity link was found.",
            "type": "string"
          },
          "ready": {
            "description": "Overall readiness.\n Whether the stream passed all test checks and is ready to process events.",
            "type": "boolean"
          },
          "upstreamSubject": {
            "description": "The upstream IdP subject identifier (e.g., Okta user ID \"00u1234\") resolved from the test subject.",
            "type": "string"
          }
        },
        "title": "Ssf Receiver Stream Service Test Response",
        "type": "object",
        "x-speakeasy-name-override": "SSFReceiverStreamServiceTestResponse"
      },
      "c1.api.ssf_receiver.v1.SSFReceiverStreamServiceUpdateRequestInput": {
        "description": "SSFReceiverStreamServiceUpdateRequest carries the stream to update and the mask of fields to modify.",
        "properties": {
          "ssfReceiverStream": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ssf_receiver.v1.SSFReceiverStream"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Ssf Receiver Stream Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "SSFReceiverStreamServiceUpdateRequest"
      },
      "c1.api.ssf_receiver.v1.SSFReceiverStreamServiceUpdateResponse": {
        "description": "SSFReceiverStreamServiceUpdateResponse contains the updated SSF receiver stream.",
        "properties": {
          "ssfReceiverStream": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.ssf_receiver.v1.SSFReceiverStream"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Ssf Receiver Stream Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "SSFReceiverStreamServiceUpdateResponse"
      },
      "c1.api.ssf_receiver.v1.SSFReceiverStreamStats": {
        "description": "SSFReceiverStreamStats is a lightweight read-only stats object.",
        "properties": {
          "eventsActedOnCount": {
            "description": "Number of events that triggered an action (e.g., session revocation).",
            "format": "int64",
            "type": "string"
          },
          "eventsFailedCount": {
            "description": "Number of events that failed processing.",
            "format": "int64",
            "type": "string"
          },
          "eventsReceivedCount": {
            "description": "Total number of events received on this stream.",
            "format": "int64",
            "type": "string"
          },
          "lastErrorAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "lastErrorMessage": {
            "description": "Human-readable description of the most recent processing error.",
            "type": "string"
          },
          "lastEventReceivedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "lastVerifiedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "streamId": {
            "description": "The SSF receiver stream these stats belong to.",
            "type": "string"
          },
          "transmitterStatus": {
            "description": "Current status reported by the transmitter (e.g., \"enabled\", \"paused\").",
            "type": "string"
          },
          "transmitterStatusReason": {
            "description": "Reason provided by the transmitter for its current status.",
            "type": "string"
          }
        },
        "title": "Ssf Receiver Stream Stats",
        "type": "object",
        "x-speakeasy-name-override": "SSFReceiverStreamStats"
      },
      "c1.api.sso.v1.OIDCClaimMapping": {
        "description": "OIDCClaimMapping releases one user attribute to the application as one\n OIDC claim.",
        "properties": {
          "claimName": {
            "description": "The name of the claim as the application sees it. Namespace custom claims\n so they cannot collide with the registered OIDC claim set.",
            "type": "string"
          },
          "destination": {
            "description": "Where the claim is released.",
            "enum": [
              "OIDC_CLAIM_DESTINATION_UNSPECIFIED",
              "OIDC_CLAIM_DESTINATION_ID_TOKEN_ONLY",
              "OIDC_CLAIM_DESTINATION_USERINFO_ONLY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "userAttributeMappingId": {
            "description": "The user attribute mapping that resolves the value, including its fallback\n chain.",
            "type": "string"
          }
        },
        "required": [
          "userAttributeMappingId",
          "claimName"
        ],
        "title": "Oidc Claim Mapping",
        "type": "object",
        "x-speakeasy-name-override": "OIDCClaimMapping"
      },
      "c1.api.sso.v1.SAMLAttributeMapping": {
        "description": "SAMLAttributeMapping releases one user attribute to the service provider\n as one Attribute in the assertion's AttributeStatement.",
        "properties": {
          "friendlyName": {
            "description": "Optional FriendlyName, for service providers that display it.",
            "type": "string"
          },
          "name": {
            "description": "The Name attribute, dictated by the service provider.",
            "type": "string"
          },
          "nameFormat": {
            "description": "The NameFormat attribute.",
            "enum": [
              "SAML_ATTRIBUTE_NAME_FORMAT_UNSPECIFIED",
              "SAML_ATTRIBUTE_NAME_FORMAT_URI",
              "SAML_ATTRIBUTE_NAME_FORMAT_BASIC",
              "SAML_ATTRIBUTE_NAME_FORMAT_UNSPECIFIED_URN"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "userAttributeMappingId": {
            "description": "The user attribute mapping that resolves the value, including its fallback\n chain.",
            "type": "string"
          }
        },
        "required": [
          "userAttributeMappingId",
          "name"
        ],
        "title": "Saml Attribute Mapping",
        "type": "object",
        "x-speakeasy-name-override": "SAMLAttributeMapping"
      },
      "c1.api.sso.v1.SAMLMetadataFinding": {
        "description": "SAMLMetadataFinding is one thing ConductorOne noticed while parsing a service\n provider's metadata document.",
        "properties": {
          "component": {
            "description": "Where the finding fits in the parsed document.",
            "enum": [
              "COMPONENT_UNSPECIFIED",
              "COMPONENT_DOCUMENT",
              "COMPONENT_ENTITY_ID",
              "COMPONENT_ACS_URL",
              "COMPONENT_NAME_ID_FORMAT",
              "COMPONENT_SIGNING_CERTIFICATE",
              "COMPONENT_ENCRYPTION_CERTIFICATE",
              "COMPONENT_REQUIREMENT",
              "COMPONENT_BINDING"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "level": {
            "description": "The severity of this finding.",
            "enum": [
              "LEVEL_UNSPECIFIED",
              "LEVEL_BLOCKING",
              "LEVEL_WARNING"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "reason": {
            "description": "Plain-language explanation of why the finding was raised.",
            "type": "string"
          }
        },
        "title": "Saml Metadata Finding",
        "type": "object",
        "x-speakeasy-name-override": "SAMLMetadataFinding"
      },
      "c1.api.sso.v1.SSOApplication": {
        "description": "SSOApplication is one application your users sign in to through ConductorOne.\n\nThis message contains a oneof named protocol. Only a single field of the following list may be set at a time:\n  - oidc\n  - saml\n",
        "properties": {
          "appEntitlementId": {
            "description": "The entitlement a user must hold to sign in. Created with the SSO\n application and not settable by the caller.",
            "type": "string"
          },
          "appId": {
            "description": "The application in your catalog that owns this sign-in configuration. Its\n owners, entitlements, and access reviews govern who may sign in.",
            "type": "string"
          },
          "assertionLifetime": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "Description of the SSO application.",
            "type": "string"
          },
          "disabled": {
            "description": "When true, sign-in through this application is refused. The application\n and its entitlement are left in place.",
            "type": "boolean"
          },
          "displayName": {
            "description": "Display name for the SSO application.",
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for this SSO application.",
            "type": "string"
          },
          "oidc": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationOIDCConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "saml": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationSAMLConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "sectorId": {
            "description": "The pairwise sector this application belongs to. Empty means the\n application is its own sector and shares linkability with nothing; set a\n shared value to issue one identifier across applications a user should\n appear the same to. Ignored when the subject type resolves to PUBLIC.\n Immutable once set.",
            "type": "string"
          },
          "subjectCompatibility": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOSubjectCompatibility"
              },
              {
                "type": "null"
              }
            ]
          },
          "subjectType": {
            "description": "How the user's identifier reaches this application.",
            "enum": [
              "SSO_SUBJECT_TYPE_UNSPECIFIED",
              "SSO_SUBJECT_TYPE_PAIRWISE",
              "SSO_SUBJECT_TYPE_PUBLIC",
              "SSO_SUBJECT_TYPE_COMPATIBILITY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Sso Application",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplication"
      },
      "c1.api.sso.v1.SSOApplicationHistoryEntry": {
        "description": "SSOApplicationHistoryEntry is one version of an SSO application and its\n history metadata.",
        "properties": {
          "metadata": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.history.v1.HistoryEntryMetadata"
              },
              {
                "type": "null"
              }
            ]
          },
          "snapshot": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplication"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Sso Application History Entry",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationHistoryEntry"
      },
      "c1.api.sso.v1.SSOApplicationOIDCClient": {
        "description": "SSOApplicationOIDCClient is an App-owned OAuth client minted by C1.",
        "properties": {
          "appId": {
            "description": "Application that owns this client.",
            "type": "string"
          },
          "authentication": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationOIDCClientAuthentication"
              },
              {
                "type": "null"
              }
            ]
          },
          "clientId": {
            "description": "Client ID generated by ConductorOne.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "displayName": {
            "description": "Human-readable client name.",
            "type": "string"
          },
          "pkcePolicy": {
            "description": "Effective PKCE policy.",
            "enum": [
              "SSO_APPLICATION_OIDC_PKCE_POLICY_UNSPECIFIED",
              "SSO_APPLICATION_OIDC_PKCE_POLICY_REQUIRED_S256",
              "SSO_APPLICATION_OIDC_PKCE_POLICY_ALLOW_MISSING_FOR_LEGACY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "redirectUris": {
            "description": "Exact callback URLs registered for this client.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "ssoApplicationId": {
            "description": "SSO application whose identity policy applies to this client.",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Sso Application Oidc Client",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationOIDCClient"
      },
      "c1.api.sso.v1.SSOApplicationOIDCClientAuthClientSecretBasic": {
        "description": "RFC 6749 client_secret_basic. C1 generates and returns the secret once.",
        "title": "Sso Application Oidc Client Auth Client Secret Basic",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationOIDCClientAuthClientSecretBasic"
      },
      "c1.api.sso.v1.SSOApplicationOIDCClientAuthClientSecretPost": {
        "description": "RFC 6749 client_secret_post. C1 generates and returns the secret once.",
        "title": "Sso Application Oidc Client Auth Client Secret Post",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationOIDCClientAuthClientSecretPost"
      },
      "c1.api.sso.v1.SSOApplicationOIDCClientAuthNone": {
        "description": "Public client authentication. No client credential is issued.",
        "title": "Sso Application Oidc Client Auth None",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationOIDCClientAuthNone"
      },
      "c1.api.sso.v1.SSOApplicationOIDCClientAuthPrivateKeyJWT": {
        "description": "RFC 7523 private_key_jwt using an inline RFC 7517 JWK Set. Multiple public\n signing keys allow overlap during relying-party key rotation; C1 selects by\n the assertion's `kid`. The relying party retains every private key.",
        "properties": {
          "publicJwks": {
            "description": "The publicJwks field.",
            "format": "base64",
            "type": "string"
          }
        },
        "required": [
          "publicJwks"
        ],
        "title": "Sso Application Oidc Client Auth Private Key Jwt",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationOIDCClientAuthPrivateKeyJWT"
      },
      "c1.api.sso.v1.SSOApplicationOIDCClientAuthentication": {
        "description": "SSOApplicationOIDCClientAuthentication is the exact token-endpoint client\n authentication method assigned to an OIDC client.\n\nThis message contains a oneof named method. Only a single field of the following list may be set at a time:\n  - none\n  - clientSecretBasic\n  - clientSecretPost\n  - privateKeyJwt\n",
        "properties": {
          "clientSecretBasic": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationOIDCClientAuthClientSecretBasic"
              },
              {
                "type": "null"
              }
            ]
          },
          "clientSecretPost": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationOIDCClientAuthClientSecretPost"
              },
              {
                "type": "null"
              }
            ]
          },
          "none": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationOIDCClientAuthNone"
              },
              {
                "type": "null"
              }
            ]
          },
          "privateKeyJwt": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationOIDCClientAuthPrivateKeyJWT"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Sso Application Oidc Client Authentication",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationOIDCClientAuthentication"
      },
      "c1.api.sso.v1.SSOApplicationOIDCClientConfig": {
        "description": "SSOApplicationOIDCClientConfig is the administrator-supplied configuration\n from which C1 mints an App-owned OAuth client. The client ID is never input.",
        "properties": {
          "authentication": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationOIDCClientAuthentication"
              },
              {
                "type": "null"
              }
            ]
          },
          "displayName": {
            "description": "Human-readable client name shown to administrators.",
            "type": "string"
          },
          "pkcePolicy": {
            "description": "PKCE is required by default on create. On update, UNSPECIFIED preserves\n the current policy; set REQUIRED_S256 explicitly to tighten a legacy\n confidential client.",
            "enum": [
              "SSO_APPLICATION_OIDC_PKCE_POLICY_UNSPECIFIED",
              "SSO_APPLICATION_OIDC_PKCE_POLICY_REQUIRED_S256",
              "SSO_APPLICATION_OIDC_PKCE_POLICY_ALLOW_MISSING_FOR_LEGACY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "redirectUris": {
            "description": "Exact redirect URIs the client may use after authorization. HTTPS and\n loopback HTTP are accepted; public clients may also use a reversed-DNS\n private-use scheme for native-app redirects.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "displayName",
          "authentication"
        ],
        "title": "Sso Application Oidc Client Config",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationOIDCClientConfig"
      },
      "c1.api.sso.v1.SSOApplicationOIDCConfig": {
        "description": "SSOApplicationOIDCConfig is the OIDC-specific sign-in configuration.",
        "properties": {
          "claimMappings": {
            "description": "Custom claims released to this application, in addition to the standard\n claims its granted scopes already release.",
            "items": {
              "$ref": "#/components/schemas/c1.api.sso.v1.OIDCClaimMapping"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "idTokenSignedResponseAlg": {
            "description": "The algorithm used to sign this application's id_token.",
            "enum": [
              "OIDC_SIGNING_ALGORITHM_UNSPECIFIED",
              "OIDC_SIGNING_ALGORITHM_EDDSA",
              "OIDC_SIGNING_ALGORITHM_ES256",
              "OIDC_SIGNING_ALGORITHM_RS256"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Sso Application Oidc Config",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationOIDCConfig"
      },
      "c1.api.sso.v1.SSOApplicationRef": {
        "description": "The SSOApplicationRef message.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          }
        },
        "title": "Sso Application Ref",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationRef"
      },
      "c1.api.sso.v1.SSOApplicationSAMLConfig": {
        "description": "SSOApplicationSAMLConfig is the SAML-specific sign-in configuration.",
        "properties": {
          "acsUrls": {
            "description": "The Assertion Consumer Service URLs the assertion may be posted to.\n Matched exactly; a URL that is not in this list is refused.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "attributeMappings": {
            "description": "The attributes released in the assertion's AttributeStatement. SAML has no\n scopes, so this list is the whole release: the NameID carries the\n identifier and these carry everything else.",
            "items": {
              "$ref": "#/components/schemas/c1.api.sso.v1.SAMLAttributeMapping"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "encryptAssertions": {
            "description": "Encrypt the assertion.",
            "type": "boolean"
          },
          "encryptionAlgorithm": {
            "description": "The algorithm used when encrypt_assertions is set.",
            "enum": [
              "SAML_ENCRYPTION_ALGORITHM_UNSPECIFIED",
              "SAML_ENCRYPTION_ALGORITHM_AES256_GCM",
              "SAML_ENCRYPTION_ALGORITHM_AES128_GCM",
              "SAML_ENCRYPTION_ALGORITHM_AES256_CBC"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "nameIdFormat": {
            "description": "Set this when the service provider requires a specific NameID format. This\n also selects the NameID value semantics: EMAIL_ADDRESS uses the user's\n primary email, TRANSIENT creates a new value for each sign-in, and\n PERSISTENT uses the application's pairwise subject. Immutable once set.",
            "enum": [
              "SAML_NAME_ID_FORMAT_UNSPECIFIED",
              "SAML_NAME_ID_FORMAT_PERSISTENT",
              "SAML_NAME_ID_FORMAT_EMAIL_ADDRESS",
              "SAML_NAME_ID_FORMAT_UNSPECIFIED_URN",
              "SAML_NAME_ID_FORMAT_TRANSIENT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "requireSignedAuthnRequests": {
            "description": "Reject any AuthnRequest that is not signed by one of\n sp_signing_certificates. At least one signing certificate is required when\n this is set.",
            "type": "boolean"
          },
          "signAssertions": {
            "description": "Sign the assertion. At least one of sign_assertions or sign_responses must\n be set.",
            "type": "boolean"
          },
          "signResponses": {
            "description": "Sign the response envelope. At least one of sign_assertions or\n sign_responses must be set.",
            "type": "boolean"
          },
          "spEncryptionCertificate": {
            "description": "The service provider's DER-encoded encryption certificate, taken from the\n encryption KeyDescriptor in its metadata. Required when encrypt_assertions\n is set.",
            "format": "base64",
            "type": "string"
          },
          "spEntityId": {
            "description": "The service provider's entity ID, taken from its metadata. It is the\n audience every assertion this application issues is restricted to, and it\n is what the service provider presents at sign-in. Set it at creation: it is\n fixed for the life of the application, because changing it re-points every\n assertion already issued. An entity ID already in use by another SSO\n application in the tenant is rejected.",
            "type": "string"
          },
          "spSigningCertificates": {
            "description": "The service provider's DER-encoded signing certificates, taken from the\n signing KeyDescriptors in its metadata.",
            "items": {
              "format": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "spEntityId",
          "acsUrls"
        ],
        "title": "Sso Application Saml Config",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationSAMLConfig"
      },
      "c1.api.sso.v1.SSOApplicationServiceBatchDeleteSubjectCompatibilityRequestInput": {
        "description": "SSOApplicationServiceBatchDeleteSubjectCompatibilityRequest deletes a\n bounded batch of compatibility-subject bindings.",
        "properties": {
          "userIds": {
            "description": "The userIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Sso Application Service Batch Delete Subject Compatibility Request",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationServiceBatchDeleteSubjectCompatibilityRequest"
      },
      "c1.api.sso.v1.SSOApplicationServiceBatchDeleteSubjectCompatibilityResponse": {
        "description": "SSOApplicationServiceBatchDeleteSubjectCompatibilityResponse reports bounded\n recovery progress.",
        "properties": {
          "deletedRows": {
            "description": "The deletedRows field.",
            "format": "int32",
            "type": "integer"
          },
          "issues": {
            "description": "The issues field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.sso.v1.SSOSubjectCompatibilityDeleteIssue"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Sso Application Service Batch Delete Subject Compatibility Response",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationServiceBatchDeleteSubjectCompatibilityResponse"
      },
      "c1.api.sso.v1.SSOApplicationServiceBatchImportSubjectCompatibilityRequestInput": {
        "description": "SSOApplicationServiceBatchImportSubjectCompatibilityRequest validates or\n imports a bounded batch of per-user subject bindings.",
        "properties": {
          "apply": {
            "description": "When false, validate without writing. Clients should validate every batch\n before beginning the apply pass.",
            "type": "boolean"
          },
          "entries": {
            "description": "Client-parsed rows. Each request is bounded to 50 entries.",
            "items": {
              "$ref": "#/components/schemas/c1.api.sso.v1.SSOSubjectCompatibilityImportEntry"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "importId": {
            "description": "Client-generated identifier shared by every batch from one source file.",
            "type": "string"
          }
        },
        "title": "Sso Application Service Batch Import Subject Compatibility Request",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationServiceBatchImportSubjectCompatibilityRequest"
      },
      "c1.api.sso.v1.SSOApplicationServiceBatchImportSubjectCompatibilityResponse": {
        "description": "SSOApplicationServiceBatchImportSubjectCompatibilityResponse summarizes one\n bounded validation or apply batch.",
        "properties": {
          "blockingUserIds": {
            "description": "Import-created binding owners that block one or more submitted corrections.\n This is a subset of recoverable_user_ids.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "importedRows": {
            "description": "Number of bindings successfully written. Zero for validation-only\n requests; may be less than valid_rows if apply stops on a write failure.",
            "format": "int32",
            "type": "integer"
          },
          "importedUserIds": {
            "description": "Users whose bindings were created by this import, or were already created\n by an earlier retry carrying the same import_id.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "issues": {
            "description": "Row-level validation or apply failures.",
            "items": {
              "$ref": "#/components/schemas/c1.api.sso.v1.SSOSubjectCompatibilityImportIssue"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "recoverableUserIds": {
            "description": "Users whose import-created binding is implicated by a submitted row. This\n may include the current owner of a submitted subject even when that owner\n was not itself submitted.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "totalRows": {
            "description": "Number of entries in this batch.",
            "format": "int32",
            "type": "integer"
          },
          "validRows": {
            "description": "Number of rows that can be imported.",
            "format": "int32",
            "type": "integer"
          }
        },
        "title": "Sso Application Service Batch Import Subject Compatibility Response",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationServiceBatchImportSubjectCompatibilityResponse"
      },
      "c1.api.sso.v1.SSOApplicationServiceCreateClientRequestInput": {
        "description": "SSOApplicationServiceCreateClientRequest mints an additional App-owned\n client. The caller supplies configuration, never a client ID.",
        "properties": {
          "client": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationOIDCClientConfig"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "client"
        ],
        "title": "Sso Application Service Create Client Request",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationServiceCreateClientRequest"
      },
      "c1.api.sso.v1.SSOApplicationServiceCreateClientResponse": {
        "description": "SSOApplicationServiceCreateClientResponse contains the generated client and\n its one-time secret, when applicable.",
        "properties": {
          "client": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationOIDCClient"
              },
              {
                "type": "null"
              }
            ]
          },
          "clientSecret": {
            "description": "Returned once for client_secret_basic/client_secret_post; empty for\n none/private_key_jwt.",
            "type": "string"
          }
        },
        "title": "Sso Application Service Create Client Response",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationServiceCreateClientResponse"
      },
      "c1.api.sso.v1.SSOApplicationServiceCreateRequestInput": {
        "description": "SSOApplicationServiceCreateRequest creates an SSO application.\n\nThis message contains a oneof named protocol. Only a single field of the following list may be set at a time:\n  - oidc\n  - saml\n",
        "properties": {
          "assertionLifetime": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "Description of the SSO application.",
            "type": "string"
          },
          "displayName": {
            "description": "Display name for the SSO application.",
            "type": "string"
          },
          "initialClient": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationOIDCClientConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "oidc": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationOIDCConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "saml": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationSAMLConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "sectorId": {
            "description": "The pairwise sector this application belongs to. Empty means the\n application is its own sector. Immutable after creation.",
            "type": "string"
          },
          "subjectCompatibility": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOSubjectCompatibility"
              },
              {
                "type": "null"
              }
            ]
          },
          "subjectType": {
            "description": "How the user's identifier reaches this application. Leave unset to use the\n tenant default.",
            "enum": [
              "SSO_SUBJECT_TYPE_UNSPECIFIED",
              "SSO_SUBJECT_TYPE_PAIRWISE",
              "SSO_SUBJECT_TYPE_PUBLIC",
              "SSO_SUBJECT_TYPE_COMPATIBILITY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "required": [
          "displayName"
        ],
        "title": "Sso Application Service Create Request",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationServiceCreateRequest"
      },
      "c1.api.sso.v1.SSOApplicationServiceCreateResponse": {
        "description": "SSOApplicationServiceCreateResponse returns the created SSO application.",
        "properties": {
          "application": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplication"
              },
              {
                "type": "null"
              }
            ]
          },
          "client": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationOIDCClient"
              },
              {
                "type": "null"
              }
            ]
          },
          "clientSecret": {
            "description": "Confidential-client secret returned once. Empty for SAML and public OIDC\n clients. C1 stores only its hash.",
            "type": "string"
          }
        },
        "title": "Sso Application Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationServiceCreateResponse"
      },
      "c1.api.sso.v1.SSOApplicationServiceDeleteClientRequestInput": {
        "description": "SSOApplicationServiceDeleteClientRequest deletes one App-owned OAuth client.",
        "properties": {
          "clientId": {
            "description": "Generated client ID to delete.",
            "type": "string"
          }
        },
        "required": [
          "clientId"
        ],
        "title": "Sso Application Service Delete Client Request",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationServiceDeleteClientRequest"
      },
      "c1.api.sso.v1.SSOApplicationServiceDeleteClientResponse": {
        "description": "SSOApplicationServiceDeleteClientResponse confirms deletion.",
        "title": "Sso Application Service Delete Client Response",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationServiceDeleteClientResponse"
      },
      "c1.api.sso.v1.SSOApplicationServiceDeleteRequestInput": {
        "description": "SSOApplicationServiceDeleteRequest deletes an SSO application.",
        "title": "Sso Application Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationServiceDeleteRequest"
      },
      "c1.api.sso.v1.SSOApplicationServiceDeleteResponse": {
        "description": "SSOApplicationServiceDeleteResponse confirms deletion.",
        "title": "Sso Application Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationServiceDeleteResponse"
      },
      "c1.api.sso.v1.SSOApplicationServiceGetResponse": {
        "description": "SSOApplicationServiceGetResponse returns a single SSO application.",
        "properties": {
          "application": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplication"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Sso Application Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationServiceGetResponse"
      },
      "c1.api.sso.v1.SSOApplicationServiceListClientsResponse": {
        "description": "SSOApplicationServiceListClientsResponse contains a page of App-owned OAuth\n clients.",
        "properties": {
          "list": {
            "description": "App-owned clients in this page.",
            "items": {
              "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationOIDCClient"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Pagination token for the next page, or empty when complete.",
            "type": "string"
          }
        },
        "title": "Sso Application Service List Clients Response",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationServiceListClientsResponse"
      },
      "c1.api.sso.v1.SSOApplicationServiceListHistoryResponse": {
        "description": "SSOApplicationServiceListHistoryResponse returns SSO application history\n entries.",
        "properties": {
          "list": {
            "description": "The page of history entries, newest first.",
            "items": {
              "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationHistoryEntry"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Pagination token for the next page, or empty if there are no more results.",
            "type": "string"
          }
        },
        "title": "Sso Application Service List History Response",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationServiceListHistoryResponse"
      },
      "c1.api.sso.v1.SSOApplicationServiceListResponse": {
        "description": "SSOApplicationServiceListResponse returns a page of SSO applications.",
        "properties": {
          "list": {
            "description": "The page of SSO applications.",
            "items": {
              "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplication"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Pagination token for the next page, or empty if there are no more results.",
            "type": "string"
          }
        },
        "title": "Sso Application Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationServiceListResponse"
      },
      "c1.api.sso.v1.SSOApplicationServiceParseSAMLServiceProviderMetadataRequest": {
        "description": "SSOApplicationServiceParseSAMLServiceProviderMetadataRequest carries one\n SAML service-provider metadata document to parse.",
        "properties": {
          "metadataXml": {
            "description": "The SP metadata XML document, exactly as downloaded or exported from the\n service provider. Maximum 1 MiB. The document is parsed, never stored.",
            "format": "base64",
            "type": "string"
          }
        },
        "required": [
          "metadataXml"
        ],
        "title": "Sso Application Service Parse Saml Service Provider Metadata Request",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationServiceParseSAMLServiceProviderMetadataRequest"
      },
      "c1.api.sso.v1.SSOApplicationServiceParseSAMLServiceProviderMetadataResponse": {
        "description": "SSOApplicationServiceParseSAMLServiceProviderMetadataResponse returns the\n SAML configuration derived from one metadata document and every finding the\n parser raised about it.",
        "properties": {
          "config": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationSAMLConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "findings": {
            "description": "Everything the parser noticed about the document, including requirements\n it could not map into the configuration.",
            "items": {
              "$ref": "#/components/schemas/c1.api.sso.v1.SAMLMetadataFinding"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Sso Application Service Parse Saml Service Provider Metadata Response",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationServiceParseSAMLServiceProviderMetadataResponse"
      },
      "c1.api.sso.v1.SSOApplicationServiceRotateClientSecretRequestInput": {
        "description": "SSOApplicationServiceRotateClientSecretRequest rotates one confidential\n App-owned client's secret.",
        "properties": {
          "clientId": {
            "description": "Generated client ID whose secret will be rotated.",
            "type": "string"
          }
        },
        "required": [
          "clientId"
        ],
        "title": "Sso Application Service Rotate Client Secret Request",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationServiceRotateClientSecretRequest"
      },
      "c1.api.sso.v1.SSOApplicationServiceRotateClientSecretResponse": {
        "description": "SSOApplicationServiceRotateClientSecretResponse contains the replacement\n secret. The value cannot be retrieved again.",
        "properties": {
          "clientSecret": {
            "description": "New client secret, shown exactly once.",
            "type": "string"
          }
        },
        "title": "Sso Application Service Rotate Client Secret Response",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationServiceRotateClientSecretResponse"
      },
      "c1.api.sso.v1.SSOApplicationServiceSearchRequest": {
        "description": "SSOApplicationServiceSearchRequest searches SSO applications with filters.",
        "properties": {
          "appIds": {
            "description": "Optional filter by applications in your catalog. Empty matches any\n application.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pageSize": {
            "description": "Maximum number of results to return per page.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "Pagination token from a previous response.",
            "type": "string"
          },
          "query": {
            "description": "Optional text query matched against display_name and description.",
            "type": "string"
          }
        },
        "title": "Sso Application Service Search Request",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationServiceSearchRequest"
      },
      "c1.api.sso.v1.SSOApplicationServiceSearchResponse": {
        "description": "SSOApplicationServiceSearchResponse returns matching SSO applications.",
        "properties": {
          "list": {
            "description": "Matching SSO applications.",
            "items": {
              "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplication"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token for the next page.",
            "type": "string"
          }
        },
        "title": "Sso Application Service Search Response",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationServiceSearchResponse"
      },
      "c1.api.sso.v1.SSOApplicationServiceUpdateClientRequestInput": {
        "description": "SSOApplicationServiceUpdateClientRequest replaces display name, redirect\n URIs, private-key JWKS, or tightens legacy PKCE to required.",
        "properties": {
          "client": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationOIDCClientConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "clientId": {
            "description": "Generated client ID to update.",
            "type": "string"
          }
        },
        "required": [
          "clientId",
          "client"
        ],
        "title": "Sso Application Service Update Client Request",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationServiceUpdateClientRequest"
      },
      "c1.api.sso.v1.SSOApplicationServiceUpdateClientResponse": {
        "description": "SSOApplicationServiceUpdateClientResponse contains the updated client.",
        "properties": {
          "client": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationOIDCClient"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Sso Application Service Update Client Response",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationServiceUpdateClientResponse"
      },
      "c1.api.sso.v1.SSOApplicationServiceUpdateRequestInput": {
        "description": "SSOApplicationServiceUpdateRequest updates an SSO application.",
        "properties": {
          "application": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplication"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "application",
          "updateMask"
        ],
        "title": "Sso Application Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationServiceUpdateRequest"
      },
      "c1.api.sso.v1.SSOApplicationServiceUpdateResponse": {
        "description": "SSOApplicationServiceUpdateResponse returns the updated SSO application.",
        "properties": {
          "application": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplication"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Sso Application Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "SSOApplicationServiceUpdateResponse"
      },
      "c1.api.sso.v1.SSOSettings": {
        "description": "SSOSettings is the per-tenant configuration for ConductorOne acting as an SSO\n provider.",
        "properties": {
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "defaultAssertionLifetime": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "defaultIdTokenSignedResponseAlg": {
            "description": "The id_token signing algorithm applied to OIDC applications that do not\n choose one. When unset, the server uses EdDSA.",
            "enum": [
              "OIDC_SIGNING_ALGORITHM_UNSPECIFIED",
              "OIDC_SIGNING_ALGORITHM_EDDSA",
              "OIDC_SIGNING_ALGORITHM_ES256",
              "OIDC_SIGNING_ALGORITHM_RS256"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "defaultSubjectType": {
            "description": "The subject type materialized onto new SSO applications that do not choose\n one. Changing this default does not change existing applications. When\n unset, the server uses pairwise subjects.",
            "enum": [
              "SSO_SUBJECT_TYPE_UNSPECIFIED",
              "SSO_SUBJECT_TYPE_PAIRWISE",
              "SSO_SUBJECT_TYPE_PUBLIC",
              "SSO_SUBJECT_TYPE_COMPATIBILITY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "enabled": {
            "description": "Master switch for the SSO provider. ConductorOne also gates the feature\n behind an operator-controlled rollout flag; this is the tenant\n administrator's intent. Individual SSO applications can still be disabled\n one at a time.",
            "type": "boolean"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Sso Settings",
        "type": "object",
        "x-speakeasy-name-override": "SSOSettings"
      },
      "c1.api.sso.v1.SSOSettingsHistoryEntry": {
        "description": "SSOSettingsHistoryEntry is one version of the tenant's SSO settings and its\n change metadata.",
        "properties": {
          "metadata": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.history.v1.HistoryEntryMetadata"
              },
              {
                "type": "null"
              }
            ]
          },
          "snapshot": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOSettings"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Sso Settings History Entry",
        "type": "object",
        "x-speakeasy-name-override": "SSOSettingsHistoryEntry"
      },
      "c1.api.sso.v1.SSOSettingsServiceGetResponse": {
        "description": "SSOSettingsServiceGetResponse returns the tenant's SSO provider settings.",
        "properties": {
          "settings": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOSettings"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Sso Settings Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "SSOSettingsServiceGetResponse"
      },
      "c1.api.sso.v1.SSOSettingsServiceListHistoryResponse": {
        "description": "SSOSettingsServiceListHistoryResponse returns SSO settings history entries.",
        "properties": {
          "list": {
            "description": "The page of history entries, newest first.",
            "items": {
              "$ref": "#/components/schemas/c1.api.sso.v1.SSOSettingsHistoryEntry"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Pagination token for the next page, or empty if there are no more results.",
            "type": "string"
          }
        },
        "title": "Sso Settings Service List History Response",
        "type": "object",
        "x-speakeasy-name-override": "SSOSettingsServiceListHistoryResponse"
      },
      "c1.api.sso.v1.SSOSettingsServiceUpdateRequest": {
        "description": "SSOSettingsServiceUpdateRequest updates the tenant's SSO provider settings.",
        "properties": {
          "settings": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOSettings"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "settings",
          "updateMask"
        ],
        "title": "Sso Settings Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "SSOSettingsServiceUpdateRequest"
      },
      "c1.api.sso.v1.SSOSettingsServiceUpdateResponse": {
        "description": "SSOSettingsServiceUpdateResponse returns the updated settings.",
        "properties": {
          "settings": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOSettings"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Sso Settings Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "SSOSettingsServiceUpdateResponse"
      },
      "c1.api.sso.v1.SSOSubjectCompatibility": {
        "description": "SSOSubjectCompatibility configures preservation of subjects issued by a\n previous identity provider.",
        "properties": {
          "userAttributeMappingId": {
            "description": "Optional user-attribute mapping used to resolve a legacy subject on first\n sign-in. The resolved value is frozen in an immutable per-user binding.\n Correct the source attribute before deleting an attribute-derived binding;\n otherwise the next sign-in resolves and freezes the same value again.",
            "type": "string"
          }
        },
        "title": "Sso Subject Compatibility",
        "type": "object",
        "x-speakeasy-name-override": "SSOSubjectCompatibility"
      },
      "c1.api.sso.v1.SSOSubjectCompatibilityDeleteIssue": {
        "description": "SSOSubjectCompatibilityDeleteIssue describes one compatibility binding that\n could not be deleted.",
        "properties": {
          "reason": {
            "description": "The reason field.",
            "type": "string"
          },
          "userId": {
            "description": "The userId field.",
            "type": "string"
          }
        },
        "title": "Sso Subject Compatibility Delete Issue",
        "type": "object",
        "x-speakeasy-name-override": "SSOSubjectCompatibilityDeleteIssue"
      },
      "c1.api.sso.v1.SSOSubjectCompatibilityImportEntry": {
        "description": "SSOSubjectCompatibilityImportEntry is one client-parsed source row.",
        "properties": {
          "row": {
            "description": "One-based row number in the source file, including its header.",
            "format": "int32",
            "type": "integer"
          },
          "subject": {
            "description": "Exact legacy subject. C1 preserves these UTF-8 bytes without trimming.",
            "type": "string"
          },
          "userId": {
            "description": "ConductorOne user ID resolved by the client before this batch is sent.",
            "type": "string"
          }
        },
        "title": "Sso Subject Compatibility Import Entry",
        "type": "object",
        "x-speakeasy-name-override": "SSOSubjectCompatibilityImportEntry"
      },
      "c1.api.sso.v1.SSOSubjectCompatibilityImportIssue": {
        "description": "SSOSubjectCompatibilityImportIssue describes one CSV row that cannot be\n imported.",
        "properties": {
          "reason": {
            "description": "Human-readable reason this row cannot be imported.",
            "type": "string"
          },
          "row": {
            "description": "One-based CSV row number, including the header row.",
            "format": "int32",
            "type": "integer"
          },
          "subject": {
            "description": "Legacy subject supplied by the batch entry.",
            "type": "string"
          },
          "userId": {
            "description": "ConductorOne user ID supplied by the batch entry.",
            "type": "string"
          }
        },
        "title": "Sso Subject Compatibility Import Issue",
        "type": "object",
        "x-speakeasy-name-override": "SSOSubjectCompatibilityImportIssue"
      },
      "c1.api.stepup.v1.CreateStepUpProviderRequest": {
        "description": "The CreateStepUpProviderRequest message.\n\nThis message contains a oneof named settings. Only a single field of the following list may be set at a time:\n  - oauth2\n  - microsoft\n",
        "properties": {
          "clientId": {
            "description": "The OAuth2 client ID used to authenticate with the step-up provider.",
            "type": "string"
          },
          "clientSecret": {
            "description": "The OAuth2 client secret. Write-only; never returned in responses.",
            "type": "string"
          },
          "displayName": {
            "description": "The human-readable name for the new step-up provider.",
            "type": "string"
          },
          "issuerUrl": {
            "description": "The OIDC issuer URL for the step-up provider.",
            "type": "string"
          },
          "microsoft": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.stepup.v1.StepUpMicrosoftSettings"
              },
              {
                "type": "null"
              }
            ]
          },
          "oauth2": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.stepup.v1.StepUpOAuth2Settings"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create Step Up Provider Request",
        "type": "object",
        "x-speakeasy-name-override": "CreateStepUpProviderRequest"
      },
      "c1.api.stepup.v1.CreateStepUpProviderResponse": {
        "description": "The CreateStepUpProviderResponse message.",
        "properties": {
          "stepUpProvider": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.stepup.v1.StepUpProvider"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create Step Up Provider Response",
        "type": "object",
        "x-speakeasy-name-override": "CreateStepUpProviderResponse"
      },
      "c1.api.stepup.v1.DeleteStepUpProviderRequestInput": {
        "description": "The DeleteStepUpProviderRequest message.",
        "title": "Delete Step Up Provider Request",
        "type": "object",
        "x-speakeasy-name-override": "DeleteStepUpProviderRequest"
      },
      "c1.api.stepup.v1.DeleteStepUpProviderResponse": {
        "description": "The DeleteStepUpProviderResponse message.",
        "title": "Delete Step Up Provider Response",
        "type": "object",
        "x-speakeasy-name-override": "DeleteStepUpProviderResponse"
      },
      "c1.api.stepup.v1.GetStepUpProviderResponse": {
        "description": "The GetStepUpProviderResponse message.",
        "properties": {
          "stepUpProvider": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.stepup.v1.StepUpProvider"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get Step Up Provider Response",
        "type": "object",
        "x-speakeasy-name-override": "GetStepUpProviderResponse"
      },
      "c1.api.stepup.v1.GetStepUpTransactionResponse": {
        "description": "Response message containing the requested step-up transaction",
        "properties": {
          "transaction": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.stepup.v1.StepUpTransaction"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get Step Up Transaction Response",
        "type": "object",
        "x-speakeasy-name-override": "GetStepUpTransactionResponse"
      },
      "c1.api.stepup.v1.ListStepUpProvidersResponse": {
        "description": "The ListStepUpProvidersResponse message.",
        "properties": {
          "list": {
            "description": "The list of step-up authentication providers.",
            "items": {
              "$ref": "#/components/schemas/c1.api.stepup.v1.StepUpProvider"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "A token to retrieve the next page of results, or empty if there are no more results.",
            "type": "string"
          }
        },
        "title": "List Step Up Providers Response",
        "type": "object",
        "x-speakeasy-name-override": "ListStepUpProvidersResponse"
      },
      "c1.api.stepup.v1.SearchStepUpProvidersRequest": {
        "description": "Request message for searching step-up providers",
        "properties": {
          "pageSize": {
            "description": "Maximum number of results to return",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "Token for pagination",
            "type": "string"
          },
          "providerType": {
            "description": "The providerType field.",
            "enum": [
              "PROVIDER_TYPE_UNSPECIFIED",
              "PROVIDER_TYPE_OAUTH2",
              "PROVIDER_TYPE_MICROSOFT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "query": {
            "description": "Filter by name (partial match)",
            "type": "string"
          },
          "refs": {
            "description": "Filter to specific providers by their references.",
            "items": {
              "$ref": "#/components/schemas/c1.api.stepup.v1.StepUpProviderRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Search Step Up Providers Request",
        "type": "object",
        "x-speakeasy-name-override": "SearchStepUpProvidersRequest"
      },
      "c1.api.stepup.v1.SearchStepUpProvidersResponse": {
        "description": "Response message for searching step-up providers",
        "properties": {
          "list": {
            "description": "List of providers matching the search criteria",
            "items": {
              "$ref": "#/components/schemas/c1.api.stepup.v1.StepUpProvider"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token for retrieving the next page of results",
            "type": "string"
          }
        },
        "title": "Search Step Up Providers Response",
        "type": "object",
        "x-speakeasy-name-override": "SearchStepUpProvidersResponse"
      },
      "c1.api.stepup.v1.SearchStepUpTransactionsRequest": {
        "description": "Request message for searching step-up transactions",
        "properties": {
          "createdAfter": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "createdBefore": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "pageSize": {
            "description": "Maximum number of results to return",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "Token for pagination",
            "type": "string"
          },
          "providerId": {
            "description": "Filter by provider ID",
            "type": "string"
          },
          "state": {
            "description": "Filter by transaction state",
            "enum": [
              "STEP_UP_TRANSACTION_STATE_UNSPECIFIED",
              "STEP_UP_TRANSACTION_STATE_PENDING",
              "STEP_UP_TRANSACTION_STATE_VERIFIED",
              "STEP_UP_TRANSACTION_STATE_ERROR"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "targetType": {
            "description": "The targetType field.",
            "enum": [
              "TARGET_TYPE_UNSPECIFIED",
              "TARGET_TYPE_TICKET",
              "TARGET_TYPE_TEST"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "taskId": {
            "description": "Filter by task ID (only applicable if target_type is TICKET)",
            "type": "string"
          },
          "userId": {
            "description": "Filter by user ID",
            "type": "string"
          }
        },
        "title": "Search Step Up Transactions Request",
        "type": "object",
        "x-speakeasy-name-override": "SearchStepUpTransactionsRequest"
      },
      "c1.api.stepup.v1.SearchStepUpTransactionsResponse": {
        "description": "Response message for searching step-up transactions",
        "properties": {
          "list": {
            "description": "List of transactions matching the search criteria",
            "items": {
              "$ref": "#/components/schemas/c1.api.stepup.v1.StepUpTransaction"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "Token for retrieving the next page of results",
            "type": "string"
          }
        },
        "title": "Search Step Up Transactions Response",
        "type": "object",
        "x-speakeasy-name-override": "SearchStepUpTransactionsResponse"
      },
      "c1.api.stepup.v1.StepUpMicrosoftSettings": {
        "description": "StepUpMicrosoftSettings configures a Microsoft Entra step-up provider using Conditional Access.",
        "properties": {
          "conditionalAccessIds": {
            "description": "Authentication context IDs (C1-C99). Required for ACRS mode; ignored for OIDC mode.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "requireFreshAuthentication": {
            "description": "Reject step-up unless the ID token's auth_time claim shows the user signed in after the\n step-up started. Requires the auth_time optional claim on the Entra app registration's ID token.",
            "type": "boolean"
          },
          "tenant": {
            "description": "Microsoft Entra tenant ID (GUID or domain). Used for response validation.",
            "type": "string"
          },
          "validationMode": {
            "description": "Validation approach. See MicrosoftValidationMode for details on each mode.",
            "enum": [
              "MICROSOFT_VALIDATION_MODE_UNSPECIFIED",
              "MICROSOFT_VALIDATION_MODE_ACRS",
              "MICROSOFT_VALIDATION_MODE_OIDC"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Step Up Microsoft Settings",
        "type": "object",
        "x-speakeasy-name-override": "StepUpMicrosoftSettings"
      },
      "c1.api.stepup.v1.StepUpOAuth2Settings": {
        "description": "StepUpOAuth2Settings repersents an OAuth2 provider that supports RFC 9470 \u003chttps://www.rfc-editor.org/rfc/rfc9470\u003e\n\n Common ACR values for OAuth2 providers include:\n   - \"urn:okta:loa:1fa:any\" (okta)\n   - \"urn:okta:loa:1fa:pwd\" (okta)\n   - \"urn:okta:loa:2fa:any\" (okta)\n   - \"urn:okta:loa:2fa:any:ifpossible\" (okta)\n   - \"phr\" (okta)\n   - \"phrh\" (okta)",
        "properties": {
          "acrValues": {
            "description": "The acrValues field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Step Up O Auth 2 Settings",
        "type": "object",
        "x-speakeasy-name-override": "StepUpOAuth2Settings"
      },
      "c1.api.stepup.v1.StepUpProvider": {
        "description": "StepUpProvider represents a configured step-up authentication integration (e.g., Duo, custom OIDC).\n\nThis message contains a oneof named settings. Only a single field of the following list may be set at a time:\n  - oauth2\n  - microsoft\n",
        "properties": {
          "clientId": {
            "description": "The OAuth2 client ID used to authenticate with the step-up provider.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "displayName": {
            "description": "The human-readable name of the step-up provider.",
            "type": "string"
          },
          "enabled": {
            "description": "Whether the step-up provider is active and available for use.",
            "type": "boolean"
          },
          "id": {
            "description": "The unique identifier of the step-up provider.",
            "readOnly": true,
            "type": "string"
          },
          "issuerUrl": {
            "description": "The OIDC issuer URL for the step-up provider.",
            "type": "string"
          },
          "lastTestedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "microsoft": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.stepup.v1.StepUpMicrosoftSettings"
              },
              {
                "type": "null"
              }
            ]
          },
          "oauth2": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.stepup.v1.StepUpOAuth2Settings"
              },
              {
                "type": "null"
              }
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Step Up Provider",
        "type": "object",
        "x-speakeasy-name-override": "StepUpProvider"
      },
      "c1.api.stepup.v1.StepUpProviderRef": {
        "description": "StepUpProviderRef is a lightweight reference to a step-up authentication provider.",
        "properties": {
          "id": {
            "description": "The unique identifier of the step-up provider.",
            "type": "string"
          }
        },
        "title": "Step Up Provider Ref",
        "type": "object",
        "x-speakeasy-name-override": "StepUpProviderRef"
      },
      "c1.api.stepup.v1.StepUpTransaction": {
        "description": "StepUpTransaction represents a record of a step-up authentication attempt\n\nThis message contains a oneof named target. Only a single field of the following list may be set at a time:\n  - approveTask\n  - test\n",
        "properties": {
          "approveTask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.stepup.v1.StepUpTransaction.TargetTask"
              },
              {
                "type": "null"
              }
            ]
          },
          "claims": {
            "additionalProperties": true,
            "type": [
              "object",
              "null"
            ]
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "errorMessage": {
            "description": "Error message if the transaction failed",
            "readOnly": true,
            "type": "string"
          },
          "expiresAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "Unique identifier for the transaction",
            "type": "string"
          },
          "providerId": {
            "description": "ID of the provider used for this step-up authentication",
            "type": "string"
          },
          "state": {
            "description": "Current state of the transaction",
            "enum": [
              "STEP_UP_TRANSACTION_STATE_UNSPECIFIED",
              "STEP_UP_TRANSACTION_STATE_PENDING",
              "STEP_UP_TRANSACTION_STATE_VERIFIED",
              "STEP_UP_TRANSACTION_STATE_ERROR"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "test": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.stepup.v1.StepUpTransaction.TargetTest"
              },
              {
                "type": "null"
              }
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "userId": {
            "description": "ID of the user who performed the step-up authentication",
            "type": "string"
          }
        },
        "title": "Step Up Transaction",
        "type": "object",
        "x-speakeasy-name-override": "StepUpTransaction"
      },
      "c1.api.stepup.v1.StepUpTransaction.TargetTask": {
        "description": "Target for approving a task",
        "properties": {
          "policyStepId": {
            "description": "ID of the policy step requiring step-up authentication",
            "type": "string"
          },
          "taskId": {
            "description": "ID of the task being approved",
            "type": "string"
          }
        },
        "title": "Target Task",
        "type": "object",
        "x-speakeasy-name-override": "TargetTask"
      },
      "c1.api.stepup.v1.StepUpTransaction.TargetTest": {
        "description": "Target for testing a provider",
        "title": "Target Test",
        "type": "object",
        "x-speakeasy-name-override": "TargetTest"
      },
      "c1.api.stepup.v1.TestStepUpProviderRequestInput": {
        "description": "The TestStepUpProviderRequest message.",
        "title": "Test Step Up Provider Request",
        "type": "object",
        "x-speakeasy-name-override": "TestStepUpProviderRequest"
      },
      "c1.api.stepup.v1.TestStepUpProviderResponse": {
        "description": "The TestStepUpProviderResponse message.",
        "properties": {
          "redirectUrl": {
            "description": "The URL to redirect the user to for testing the Step Up flow",
            "type": "string"
          }
        },
        "title": "Test Step Up Provider Response",
        "type": "object",
        "x-speakeasy-name-override": "TestStepUpProviderResponse"
      },
      "c1.api.stepup.v1.UpdateStepUpProviderRequestInput": {
        "description": "The UpdateStepUpProviderRequest message.",
        "properties": {
          "stepUpProvider": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.stepup.v1.StepUpProvider"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Update Step Up Provider Request",
        "type": "object",
        "x-speakeasy-name-override": "UpdateStepUpProviderRequest"
      },
      "c1.api.stepup.v1.UpdateStepUpProviderResponse": {
        "description": "The UpdateStepUpProviderResponse message.",
        "properties": {
          "stepUpProvider": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.stepup.v1.StepUpProvider"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Update Step Up Provider Response",
        "type": "object",
        "x-speakeasy-name-override": "UpdateStepUpProviderResponse"
      },
      "c1.api.stepup.v1.UpdateStepUpProviderSecretRequestInput": {
        "description": "The UpdateStepUpProviderSecretRequest message.",
        "properties": {
          "clientSecret": {
            "description": "The new OAuth2 client secret. Write-only; never returned in responses.",
            "type": "string"
          }
        },
        "title": "Update Step Up Provider Secret Request",
        "type": "object",
        "x-speakeasy-name-override": "UpdateStepUpProviderSecretRequest"
      },
      "c1.api.stepup.v1.UpdateStepUpProviderSecretResponse": {
        "description": "The UpdateStepUpProviderSecretResponse message.",
        "properties": {
          "stepUpProvider": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.stepup.v1.StepUpProvider"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Update Step Up Provider Secret Response",
        "type": "object",
        "x-speakeasy-name-override": "UpdateStepUpProviderSecretResponse"
      },
      "c1.api.systemlog.v1.ExportServiceCreateRequest": {
        "description": "The ExportServiceCreateRequest message is used to create a new system log exporter.\n\nThis message contains a oneof named export_to. Only a single field of the following list may be set at a time:\n  - datasource\n",
        "properties": {
          "datasource": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.systemlog.v1.ExportToDatasource"
              },
              {
                "type": "null"
              }
            ]
          },
          "displayName": {
            "description": "The display name of the new system log exporter.",
            "type": "string"
          }
        },
        "title": "Export Service Create Request",
        "type": "object",
        "x-speakeasy-name-override": "ExportServiceCreateRequest"
      },
      "c1.api.systemlog.v1.ExportServiceCreateResponse": {
        "description": "The ExportServiceCreateResponse message.",
        "properties": {
          "exporter": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.systemlog.v1.Exporter"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Export Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "ExportServiceCreateResponse"
      },
      "c1.api.systemlog.v1.ExportServiceDeleteRequestInput": {
        "description": "The ExportServiceDeleteRequest message.",
        "title": "Export Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "ExportServiceDeleteRequest"
      },
      "c1.api.systemlog.v1.ExportServiceDeleteResponse": {
        "description": "The ExportServiceDeleteResponse message.",
        "title": "Export Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "ExportServiceDeleteResponse"
      },
      "c1.api.systemlog.v1.ExportServiceGetResponse": {
        "description": "The ExportServiceGetResponse message contains the system log exporter object.",
        "properties": {
          "exporter": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.systemlog.v1.Exporter"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Export Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "ExportServiceGetResponse"
      },
      "c1.api.systemlog.v1.ExportServiceListEventsRequestInput": {
        "description": "ExportServiceListEventsRequest is the request for listing audit events within a specific export.",
        "properties": {
          "pageSize": {
            "description": "The pageSize field.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          }
        },
        "title": "Export Service List Events Request",
        "type": "object",
        "x-speakeasy-name-override": "ExportServiceListEventsRequest"
      },
      "c1.api.systemlog.v1.ExportServiceListEventsResponse": {
        "description": "ExportServiceListEventsResponse is the response containing audit events for an export.",
        "properties": {
          "list": {
            "description": "List contains an array of JSON OCSF events.",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The token to retrieve the next page of results, or empty if there are no more results.",
            "type": "string"
          }
        },
        "title": "Export Service List Events Response",
        "type": "object",
        "x-speakeasy-name-override": "ExportServiceListEventsResponse"
      },
      "c1.api.systemlog.v1.ExportServiceListResponse": {
        "description": "The ExportServiceListResponse message.",
        "properties": {
          "list": {
            "description": "The list of results containing up to X results, where X is the page size defined in the request",
            "items": {
              "$ref": "#/components/schemas/c1.api.systemlog.v1.Exporter"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken is shown for the next page if the number of results is larger than the max page size. The server returns one page of results and the nextPageToken until all results are retreived. To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page.",
            "type": "string"
          }
        },
        "title": "Export Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "ExportServiceListResponse"
      },
      "c1.api.systemlog.v1.ExportServiceUpdateRequestInput": {
        "description": "The ExportServiceUpdateRequest message.",
        "properties": {
          "exporter": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.systemlog.v1.Exporter"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Export Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "ExportServiceUpdateRequest"
      },
      "c1.api.systemlog.v1.ExportServiceUpdateResponse": {
        "description": "The ExportServiceUpdateResponse message.",
        "properties": {
          "exporter": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.systemlog.v1.Exporter"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Export Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "ExportServiceUpdateResponse"
      },
      "c1.api.systemlog.v1.ExportToDatasource": {
        "description": "The ExportToDatasource message.",
        "properties": {
          "datasourceId": {
            "description": "The datasourceId field.",
            "type": "string"
          },
          "format": {
            "description": "The format field.",
            "enum": [
              "EXPORT_FORMAT_UNSPECIFIED",
              "EXPORT_FORMAT_OCSF_JSON_ZSTD",
              "EXPORT_FORMAT_OCSF_JSON_GZIP"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "prefix": {
            "description": "The prefix field.",
            "type": "string"
          }
        },
        "title": "Export To Datasource",
        "type": "object",
        "x-speakeasy-name-override": "ExportToDatasource"
      },
      "c1.api.systemlog.v1.Exporter": {
        "description": "The Exporter message.\n\nThis message contains a oneof named export_to. Only a single field of the following list may be set at a time:\n  - datasource\n",
        "properties": {
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "datasource": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.systemlog.v1.ExportToDatasource"
              },
              {
                "type": "null"
              }
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "exportId": {
            "description": "The exportId field.",
            "readOnly": true,
            "type": "string"
          },
          "state": {
            "description": "The state field.",
            "enum": [
              "EXPORT_STATE_UNSPECIFIED",
              "EXPORT_STATE_EXPORTING",
              "EXPORT_STATE_WAITING",
              "EXPORT_STATE_ERROR"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "watermarkEventId": {
            "description": "we've synchorized this far",
            "readOnly": true,
            "type": "string"
          }
        },
        "title": "Exporter",
        "type": "object",
        "x-speakeasy-name-override": "Exporter"
      },
      "c1.api.systemlog.v1.ExporterRef": {
        "description": "The ExporterRef message.",
        "properties": {
          "exportId": {
            "description": "The exportId field.",
            "type": "string"
          }
        },
        "title": "Exporter Ref",
        "type": "object",
        "x-speakeasy-name-override": "ExporterRef"
      },
      "c1.api.systemlog.v1.ExportsSearchServiceSearchRequest": {
        "description": "ExportsSearchServiceSearchRequest is the request for searching system log exports.",
        "properties": {
          "displayName": {
            "description": "Search for system log exporters with a case insensitive match on the display name.",
            "type": "string"
          },
          "pageSize": {
            "description": "The pageSize field.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          },
          "query": {
            "description": "The query field.",
            "type": "string"
          },
          "refs": {
            "description": "The refs field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.systemlog.v1.ExporterRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Exports Search Service Search Request",
        "type": "object",
        "x-speakeasy-name-override": "ExportsSearchServiceSearchRequest"
      },
      "c1.api.systemlog.v1.ExportsSearchServiceSearchResponse": {
        "description": "ExportsSearchServiceSearchResponse is the response for searching system log exports.",
        "properties": {
          "list": {
            "description": "The list of system log exports matching the search criteria.",
            "items": {
              "$ref": "#/components/schemas/c1.api.systemlog.v1.Exporter"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The token to retrieve the next page of results, or empty if there are no more results.",
            "type": "string"
          }
        },
        "title": "Exports Search Service Search Response",
        "type": "object",
        "x-speakeasy-name-override": "ExportsSearchServiceSearchResponse"
      },
      "c1.api.systemlog.v1.SystemLogServiceListEventsRequest": {
        "description": "The SystemLogServiceListEventsRequest message.",
        "properties": {
          "pageSize": {
            "description": "The pageSize field.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          },
          "since": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "sinceEventUid": {
            "description": "The sinceEventUid field.",
            "type": "string"
          },
          "sortDirection": {
            "description": "The sortDirection field.",
            "enum": [
              "SORT_DIRECTION_UNSPECIFIED",
              "SORT_DIRECTION_ASC",
              "SORT_DIRECTION_DESC"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "until": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "untilEventUid": {
            "description": "The untilEventUid field.",
            "type": "string"
          }
        },
        "title": "System Log Service List Events Request",
        "type": "object",
        "x-speakeasy-name-override": "SystemLogServiceListEventsRequest"
      },
      "c1.api.systemlog.v1.SystemLogServiceListEventsResponse": {
        "description": "The SystemLogServiceListEventsResponse message.",
        "properties": {
          "list": {
            "description": "List contains an array of JSON OCSF events.",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "System Log Service List Events Response",
        "type": "object",
        "x-speakeasy-name-override": "SystemLogServiceListEventsResponse"
      },
      "c1.api.task.v1.AccessProfileComponentReviewSubject": {
        "description": "A component of the profile's definition.\n\nThis message contains a oneof named detail. Only a single field of the following list may be set at a time:\n  - composition\n  - membershipCriteria\n",
        "properties": {
          "composition": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.AccessProfileCompositionReviewItem"
              },
              {
                "type": "null"
              }
            ]
          },
          "membershipCriteria": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.AccessProfileMembershipCriteriaReviewItem"
              },
              {
                "type": "null"
              }
            ]
          },
          "profile": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.AccessProfileRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Access Profile Component Review Subject",
        "type": "object",
        "x-speakeasy-name-override": "AccessProfileComponentReviewSubject"
      },
      "c1.api.task.v1.AccessProfileComponentTarget": {
        "description": "One component of an access profile's definition that an action task changes.\n\nThis message contains a oneof named component. Only a single field of the following list may be set at a time:\n  - compositionEntitlement\n  - membershipRule\n  - membershipEntitlement\n",
        "properties": {
          "accessProfile": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.AccessProfileRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "compositionEntitlement": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "membershipEntitlement": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "membershipRule": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.AccessProfileMembershipRule"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Access Profile Component Target",
        "type": "object",
        "x-speakeasy-name-override": "AccessProfileComponentTarget"
      },
      "c1.api.task.v1.AccessProfileCompositionReviewItem": {
        "description": "The AccessProfileCompositionReviewItem message.\n\nThis message contains a oneof named component. Only a single field of the following list may be set at a time:\n  - entitlement\n",
        "properties": {
          "entitlement": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Access Profile Composition Review Item",
        "type": "object",
        "x-speakeasy-name-override": "AccessProfileCompositionReviewItem"
      },
      "c1.api.task.v1.AccessProfileMembershipCriteriaReviewItem": {
        "description": "The AccessProfileMembershipCriteriaReviewItem message.\n\nThis message contains a oneof named criterion. Only a single field of the following list may be set at a time:\n  - membershipCel\n  - membershipEntitlement\n",
        "properties": {
          "membershipCel": {
            "description": "The whole expression under review, without evaluation.\nThis field is part of the `criterion` oneof.\nSee the documentation for `c1.api.task.v1.AccessProfileMembershipCriteriaReviewItem` for more details.",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "membershipEntitlement": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Access Profile Membership Criteria Review Item",
        "type": "object",
        "x-speakeasy-name-override": "AccessProfileMembershipCriteriaReviewItem"
      },
      "c1.api.task.v1.AccessProfileMembershipRule": {
        "description": "The AccessProfileMembershipRule message.",
        "properties": {
          "cel": {
            "description": "The expression as of task creation; may be empty.",
            "readOnly": true,
            "type": "string"
          }
        },
        "title": "Access Profile Membership Rule",
        "type": "object",
        "x-speakeasy-name-override": "AccessProfileMembershipRule"
      },
      "c1.api.task.v1.AccessProfileRef": {
        "description": "References an access profile (request catalog) by ID.",
        "properties": {
          "id": {
            "description": "The id field.",
            "type": "string"
          }
        },
        "title": "Access Profile Ref",
        "type": "object",
        "x-speakeasy-name-override": "AccessProfileRef"
      },
      "c1.api.task.v1.ActionInstance": {
        "description": "ActionInstance is the API mirror of the internal immutable snapshot of an\n Action captured on a TaskTypeAction at ticket-creation time.\n\nThis message contains a oneof named target_ref. Only a single field of the following list may be set at a time:\n  - batonResourceActionRef\n  - connectorActionRef\n",
        "properties": {
          "batonResourceActionRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.BatonResourceActionRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "connectorActionRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.ConnectorActionRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "displayName": {
            "description": "Display label at ticket-creation time. Same value as\n TaskTypeAction.display_name; repeated here so clients that walk the\n instance see a self-contained view.",
            "readOnly": true,
            "type": "string"
          },
          "requestInstructions": {
            "description": "Instructions for completing the action manually, captured at\n ticket-creation time.",
            "readOnly": true,
            "type": "string"
          }
        },
        "title": "Action Instance",
        "type": "object",
        "x-speakeasy-name-override": "TaskActionInstance"
      },
      "c1.api.task.v1.BatonResourceActionRef": {
        "description": "BatonResourceActionRef describes dispatch to a connector resource-create\n action (for example, a group template that creates a group in the connected\n application).",
        "properties": {
          "appId": {
            "description": "The app the resource is created in.",
            "readOnly": true,
            "type": "string"
          },
          "batonActionDisplayName": {
            "description": "The connector-defined display name of the resource-create action.",
            "readOnly": true,
            "type": "string"
          },
          "batonActionName": {
            "description": "The connector-defined name of the resource-create action.",
            "readOnly": true,
            "type": "string"
          },
          "connectorId": {
            "description": "The connector that executes the resource-create action.",
            "readOnly": true,
            "type": "string"
          },
          "resourceTypeId": {
            "description": "The type of resource the action creates (for example, \"group\").",
            "readOnly": true,
            "type": "string"
          }
        },
        "title": "Baton Resource Action Ref",
        "type": "object",
        "x-speakeasy-name-override": "BatonResourceActionRef"
      },
      "c1.api.task.v1.ConnectorActionRef": {
        "description": "ConnectorActionRef describes dispatch through a connector's built-in\n GrantManagerService Grant / Revoke RPC — i.e. the default connector\n operation, used for synthesized tickets like scope-role requests.",
        "properties": {
          "appId": {
            "description": "The app whose connector handles the operation.",
            "readOnly": true,
            "type": "string"
          },
          "connectorId": {
            "description": "The connector that will execute the Grant / Revoke.",
            "readOnly": true,
            "type": "string"
          },
          "operation": {
            "description": "Which connector RPC this dispatches to.",
            "enum": [
              "OPERATION_UNSPECIFIED",
              "OPERATION_GRANT",
              "OPERATION_ISSUE_CREDENTIAL"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Connector Action Ref",
        "type": "object",
        "x-speakeasy-name-override": "ConnectorActionRef"
      },
      "c1.api.task.v1.CredentialIssueTarget": {
        "description": "CredentialIssueTarget describes one approved credential request: who receives\n the credential, the terms asked for, and the offering it came from.",
        "properties": {
          "duration": {
            "format": "duration",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "identityAppUserId": {
            "description": "The app user tying the recipient to the connector identity.",
            "readOnly": true,
            "type": "string"
          },
          "identityResourceId": {
            "description": "The connector-side identity the credential is minted against.",
            "readOnly": true,
            "type": "string"
          },
          "identityUserId": {
            "description": "The user who receives the credential and may open its delivery vault.",
            "readOnly": true,
            "type": "string"
          },
          "offeringId": {
            "description": "The offering the requester selected.",
            "readOnly": true,
            "type": "string"
          },
          "requestCatalogId": {
            "description": "The Access Profile that published it.",
            "readOnly": true,
            "type": "string"
          },
          "scopes": {
            "description": "Provider permissions approved for this credential.",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Credential Issue Target",
        "type": "object",
        "x-speakeasy-name-override": "CredentialIssueTarget"
      },
      "c1.api.task.v1.EntitlementAccessReviewSubject": {
        "description": "Access held by an account or resource principal.\n\nThis message contains a oneof named principal. Only a single field of the following list may be set at a time:\n  - appUser\n  - resource\n",
        "properties": {
          "appUser": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppUserRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "entitlement": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "resource": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppResourceRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Entitlement Access Review Subject",
        "type": "object",
        "x-speakeasy-name-override": "EntitlementAccessReviewSubject"
      },
      "c1.api.task.v1.ExternalRef": {
        "description": "A reference to an external source. This value is unused currently, but may be brought back.",
        "properties": {
          "externalRefSource": {
            "description": "The source of the external reference.",
            "enum": [
              "UNSPECIFIED",
              "JIRA"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "name": {
            "description": "The name of the external reference.",
            "readOnly": true,
            "type": "string"
          },
          "url": {
            "description": "The URL to the external reference.",
            "readOnly": true,
            "type": "string"
          }
        },
        "title": "External Ref",
        "type": "object",
        "x-speakeasy-name-override": "ExternalRef"
      },
      "c1.api.task.v1.FindingTarget": {
        "description": "The finding an inert TYPE_MANUAL action ticket remediates.",
        "properties": {
          "findingId": {
            "description": "Reference to the source finding.",
            "readOnly": true,
            "type": "string"
          },
          "findingType": {
            "description": "The finding type discriminator.",
            "readOnly": true,
            "type": "string"
          }
        },
        "title": "Finding Target",
        "type": "object",
        "x-speakeasy-name-override": "FindingTarget"
      },
      "c1.api.task.v1.GatedToolCallTarget": {
        "description": "The GatedToolCallTarget message.",
        "properties": {
          "appEntitlementId": {
            "description": "The appEntitlementId field.",
            "readOnly": true,
            "type": "string"
          },
          "appId": {
            "description": "The appId field.",
            "readOnly": true,
            "type": "string"
          },
          "callerKind": {
            "description": "The callerKind field.",
            "readOnly": true,
            "type": "string"
          },
          "connectorId": {
            "description": "The connectorId field.",
            "readOnly": true,
            "type": "string"
          },
          "gateId": {
            "description": "The gateId field.",
            "readOnly": true,
            "type": "string"
          },
          "inputSizeBytes": {
            "description": "The inputSizeBytes field.",
            "format": "int32",
            "readOnly": true,
            "type": "integer"
          },
          "toolError": {
            "description": "The toolError field.",
            "readOnly": true,
            "type": "string"
          },
          "toolId": {
            "description": "The toolId field.",
            "readOnly": true,
            "type": "string"
          },
          "toolInput": {
            "additionalProperties": true,
            "readOnly": true,
            "type": [
              "object",
              "null"
            ]
          },
          "toolKind": {
            "description": "The toolKind field.",
            "readOnly": true,
            "type": "string"
          },
          "toolName": {
            "description": "The toolName field.",
            "readOnly": true,
            "type": "string"
          },
          "toolOutput": {
            "readOnly": true,
            "type": [
              "string",
              "number",
              "object",
              "array",
              "boolean",
              "null"
            ]
          }
        },
        "title": "Gated Tool Call Target",
        "type": "object",
        "x-speakeasy-name-override": "GatedToolCallTarget"
      },
      "c1.api.task.v1.ReviewSubject": {
        "description": "The explicitly stored item under review. Legacy tasks may have no subject.\n\nThis message contains a oneof named kind. Only a single field of the following list may be set at a time:\n  - entitlementAccess\n  - profileComponent\n",
        "properties": {
          "entitlementAccess": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.EntitlementAccessReviewSubject"
              },
              {
                "type": "null"
              }
            ]
          },
          "profileComponent": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.AccessProfileComponentReviewSubject"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Review Subject",
        "type": "object",
        "x-speakeasy-name-override": "ReviewSubject"
      },
      "c1.api.task.v1.ScopeRole": {
        "description": "Scope-role variant of TaskTypeAction.target_object. The UI uses the\n embedded identifiers to build links and title strings without a separate\n Action fetch.",
        "properties": {
          "appId": {
            "description": "The IaaS/sparse-ACL app the (scope, role) pair lives on.",
            "readOnly": true,
            "type": "string"
          },
          "appUserId": {
            "description": "The appUserId field.",
            "readOnly": true,
            "type": "string"
          },
          "grantDuration": {
            "format": "duration",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "roleResourceId": {
            "description": "The roleResourceId field.",
            "readOnly": true,
            "type": "string"
          },
          "roleResourceTypeId": {
            "description": "The roleResourceTypeId field.",
            "readOnly": true,
            "type": "string"
          },
          "scopeResourceId": {
            "description": "The scopeResourceId field.",
            "readOnly": true,
            "type": "string"
          },
          "scopeResourceTypeId": {
            "description": "The scopeResourceTypeId field.",
            "readOnly": true,
            "type": "string"
          }
        },
        "title": "Scope Role",
        "type": "object",
        "x-speakeasy-name-override": "ScopeRole"
      },
      "c1.api.task.v1.SpendRemedyAbsentTarget": {
        "description": "The SpendRemedyAbsentTarget message.",
        "title": "Spend Remedy Absent Target",
        "type": "object",
        "x-speakeasy-name-override": "SpendRemedyAbsentTarget"
      },
      "c1.api.task.v1.SpendRemedyControlsSnapshot": {
        "description": "The SpendRemedyControlsSnapshot message.",
        "properties": {
          "controls": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.SpendControls"
              },
              {
                "type": "null"
              }
            ]
          },
          "period": {
            "description": "The period field.",
            "enum": [
              "PERIOD_KIND_UNSPECIFIED",
              "PERIOD_KIND_DAILY",
              "PERIOD_KIND_WEEKLY",
              "PERIOD_KIND_MONTHLY",
              "PERIOD_KIND_QUARTERLY",
              "PERIOD_KIND_YEARLY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "version": {
            "description": "Serialized as a string so JavaScript preserves the exact database version.",
            "format": "int64",
            "type": "string"
          }
        },
        "title": "Spend Remedy Controls Snapshot",
        "type": "object",
        "x-speakeasy-name-override": "SpendRemedyControlsSnapshot"
      },
      "c1.api.task.v1.SpendRemedyPersonalExtensionRequest": {
        "description": "A proposed personal replacement total and absolute expiration.",
        "properties": {
          "expiresAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "total": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.Money"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Spend Remedy Personal Extension Request",
        "type": "object",
        "x-speakeasy-name-override": "SpendRemedyPersonalExtensionRequest"
      },
      "c1.api.task.v1.SpendRemedyResumeRequest": {
        "description": "Resume carries no monetary terms or expiration.",
        "title": "Spend Remedy Resume Request",
        "type": "object",
        "x-speakeasy-name-override": "SpendRemedyResumeRequest"
      },
      "c1.api.task.v1.SpendRemedyReview": {
        "description": "SpendRemedyReview is returned only by the separately authorized review endpoint.\n\nThis message contains a oneof named change. Only a single field of the following list may be set at a time:\n  - personalExtension\n  - personalResume\n  - appIncrease\n  - appResume\n  - orgIncrease\n  - orgUnfreeze\n",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "appIncrease": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.SpendRemedySharedIncreaseRequest"
              },
              {
                "type": "null"
              }
            ]
          },
          "appResume": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.SpendRemedyResumeRequest"
              },
              {
                "type": "null"
              }
            ]
          },
          "appliedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "authorityMatches": {
            "description": "The authorityMatches field.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "beneficiaryUserId": {
            "description": "The beneficiaryUserId field.",
            "type": "string"
          },
          "blockId": {
            "description": "The blockId field.",
            "type": "string"
          },
          "capturedEffectiveLimit": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.SpendLimit"
              },
              {
                "type": "null"
              }
            ]
          },
          "capturedTarget": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.SpendRemedyReviewTarget"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "currentEffectiveLimit": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.SpendLimit"
              },
              {
                "type": "null"
              }
            ]
          },
          "currentTarget": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.SpendRemedyReviewTarget"
              },
              {
                "type": "null"
              }
            ]
          },
          "orgIncrease": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.SpendRemedySharedIncreaseRequest"
              },
              {
                "type": "null"
              }
            ]
          },
          "orgUnfreeze": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.SpendRemedyResumeRequest"
              },
              {
                "type": "null"
              }
            ]
          },
          "period": {
            "description": "The period field.",
            "enum": [
              "PERIOD_KIND_UNSPECIFIED",
              "PERIOD_KIND_DAILY",
              "PERIOD_KIND_WEEKLY",
              "PERIOD_KIND_MONTHLY",
              "PERIOD_KIND_QUARTERLY",
              "PERIOD_KIND_YEARLY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "periodEnd": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "periodKey": {
            "description": "The periodKey field.",
            "type": "string"
          },
          "personalExtension": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.SpendRemedyPersonalExtensionRequest"
              },
              {
                "type": "null"
              }
            ]
          },
          "personalResume": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.SpendRemedyResumeRequest"
              },
              {
                "type": "null"
              }
            ]
          },
          "reason": {
            "description": "The reason field.",
            "type": "string"
          },
          "requestPolicyId": {
            "description": "The requestPolicyId field.",
            "type": "string"
          },
          "requesterUserId": {
            "description": "The requesterUserId field.",
            "type": "string"
          },
          "taskId": {
            "description": "The taskId field.",
            "type": "string"
          }
        },
        "title": "Spend Remedy Review",
        "type": "object",
        "x-speakeasy-name-override": "SpendRemedyReview"
      },
      "c1.api.task.v1.SpendRemedyReviewTarget": {
        "description": "A missing row is not a deleted version. Current state may differ from capture.\n\nThis message contains a oneof named state. Only a single field of the following list may be set at a time:\n  - absent\n  - live\n  - deleted\n",
        "properties": {
          "absent": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.SpendRemedyAbsentTarget"
              },
              {
                "type": "null"
              }
            ]
          },
          "deleted": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.SpendRemedyControlsSnapshot"
              },
              {
                "type": "null"
              }
            ]
          },
          "live": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.SpendRemedyControlsSnapshot"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Spend Remedy Review Target",
        "type": "object",
        "x-speakeasy-name-override": "SpendRemedyReviewTarget"
      },
      "c1.api.task.v1.SpendRemedySharedIncreaseRequest": {
        "description": "A proposed shared replacement total, never an additive credit.",
        "properties": {
          "total": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.funds.v1.Money"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Spend Remedy Shared Increase Request",
        "type": "object",
        "x-speakeasy-name-override": "SpendRemedySharedIncreaseRequest"
      },
      "c1.api.task.v1.Task": {
        "description": "A fully-fleged task object. Includes its policy, references to external apps, its type, its processing history, and more.",
        "properties": {
          "actions": {
            "description": "The actions that can be performed on the task by the current user.",
            "items": {
              "enum": [
                "TASK_ACTION_TYPE_UNSPECIFIED",
                "TASK_ACTION_TYPE_CLOSE",
                "TASK_ACTION_TYPE_APPROVE",
                "TASK_ACTION_TYPE_DENY",
                "TASK_ACTION_TYPE_COMMENT",
                "TASK_ACTION_TYPE_DELETE",
                "TASK_ACTION_TYPE_REASSIGN",
                "TASK_ACTION_TYPE_RESTART",
                "TASK_ACTION_TYPE_SEND_REMINDER",
                "TASK_ACTION_TYPE_PROVISION_COMPLETE",
                "TASK_ACTION_TYPE_PROVISION_CANCELLED",
                "TASK_ACTION_TYPE_PROVISION_ERRORED",
                "TASK_ACTION_TYPE_ROLLBACK_SKIPPED",
                "TASK_ACTION_TYPE_PROVISION_APP_USER_TARGET_CREATED",
                "TASK_ACTION_TYPE_HARD_RESET",
                "TASK_ACTION_TYPE_ESCALATE_TO_EMERGENCY_ACCESS",
                "TASK_ACTION_TYPE_CHANGE_POLICY",
                "TASK_ACTION_TYPE_RECALCULATE_DENIAL_FROM_BASE_POLICY_DECISIONS",
                "TASK_ACTION_TYPE_SET_INSIGHTS_AND_RECOMMENDATION",
                "TASK_ACTION_TYPE_SET_ANALYSIS_ID",
                "TASK_ACTION_TYPE_RECALCULATE_APPROVERS_LIST",
                "TASK_ACTION_TYPE_PROCESS_NOW",
                "TASK_ACTION_TYPE_APPROVE_WITH_STEP_UP",
                "TASK_ACTION_TYPE_SKIP_STEP",
                "TASK_ACTION_TYPE_ROLLBACK_CANCELLED",
                "TASK_ACTION_TYPE_UPDATE_REQUEST_DATA",
                "TASK_ACTION_TYPE_UPDATE_GRANT_DURATION",
                "TASK_ACTION_TYPE_RETRY_PROVISIONING"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "analysisId": {
            "description": "The ID of the analysis object associated with this task created by an analysis workflow if the analysis feature is enabled for your tenant.",
            "readOnly": true,
            "type": "string"
          },
          "annotations": {
            "description": "An array of `google.protobuf.Any` annotations with various base64-encoded data.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "readOnly": true,
              "type": "object"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "approverIds": {
            "description": "An array of IDs belonging to Identity Users that have approved or denied any step in this task.",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "commentCount": {
            "description": "The count of comments.",
            "format": "int32",
            "readOnly": true,
            "type": "integer"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "createdByUserId": {
            "description": "The ID of the user that is the creator of this task. This may not always match the userId field.",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "additionalProperties": true,
            "readOnly": true,
            "type": [
              "object",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "The description of the task. This is also known as justification.",
            "readOnly": true,
            "type": "string"
          },
          "displayName": {
            "description": "The display name of the task.",
            "readOnly": true,
            "type": "string"
          },
          "emergencyAccess": {
            "description": "A field indicating whether this task was created using an emergency access flow, or escalated to emergency access. On task creation, it will also use the app entitlement's emergency policy when possible.",
            "readOnly": true,
            "type": "boolean"
          },
          "externalRefs": {
            "description": "An array of external references to the task. Historically that has been items like Jira task IDs. This is currently unused, but may come back in the future for integrations.",
            "items": {
              "$ref": "#/components/schemas/c1.api.task.v1.ExternalRef"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "form": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.form.v1.Form"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "description": "The ID of the task.",
            "readOnly": true,
            "type": "string"
          },
          "insightIds": {
            "description": "The insightIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "numericId": {
            "description": "A human-usable numeric ID of a task which can be included in place of the fully qualified task id in path parmeters (but not search queries).",
            "format": "int64",
            "readOnly": true,
            "type": "string"
          },
          "origin": {
            "description": "The origin field.",
            "enum": [
              "TASK_ORIGIN_UNSPECIFIED",
              "TASK_ORIGIN_PROFILE_MEMBERSHIP_AUTOMATION",
              "TASK_ORIGIN_SLACK",
              "TASK_ORIGIN_API",
              "TASK_ORIGIN_JIRA",
              "TASK_ORIGIN_COPILOT",
              "TASK_ORIGIN_WEBAPP",
              "TASK_ORIGIN_TIME_REVOKE",
              "TASK_ORIGIN_NON_USAGE_REVOKE",
              "TASK_ORIGIN_PROFILE_MEMBERSHIP_MANUAL",
              "TASK_ORIGIN_PROFILE_MEMBERSHIP",
              "TASK_ORIGIN_AUTOMATION",
              "TASK_ORIGIN_ACCESS_REVIEW",
              "TASK_ORIGIN_CASCADE_DELETE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "policy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.PolicyInstance"
              },
              {
                "type": "null"
              }
            ]
          },
          "policyGenerationId": {
            "description": "The policy generation id refers to the current policy's generation ID. This is changed when the policy is changed on a task.",
            "readOnly": true,
            "type": "string"
          },
          "processing": {
            "description": "The processing state of a task as defined by the `processing_enum`",
            "enum": [
              "TASK_PROCESSING_TYPE_UNSPECIFIED",
              "TASK_PROCESSING_TYPE_PROCESSING",
              "TASK_PROCESSING_TYPE_WAITING",
              "TASK_PROCESSING_TYPE_DONE"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "recommendation": {
            "description": "The recommendation field.",
            "enum": [
              "INSIGHT_RECOMMENDATION_UNSPECIFIED",
              "INSIGHT_RECOMMENDATION_APPROVE",
              "INSIGHT_RECOMMENDATION_DENY",
              "INSIGHT_RECOMMENDATION_REVIEW"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "revocationTargets": {
            "description": "Ancestor entitlements that will also be revoked when this revoke task is approved.\n Populated at ticket creation time for inherited grant revocations.",
            "items": {
              "$ref": "#/components/schemas/c1.api.task.v1.TaskRevocationTarget"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "state": {
            "description": "The current state of the task as defined by the `state_enum`",
            "enum": [
              "TASK_STATE_UNSPECIFIED",
              "TASK_STATE_OPEN",
              "TASK_STATE_CLOSED"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "stepApproverIds": {
            "description": "An array of IDs belonging to Identity Users that are allowed to review this step in a task.",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "type": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskType"
              },
              {
                "type": "null"
              }
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "userId": {
            "description": "The ID of the user that is the target of this task. This may be empty if we're targeting a specific app user that has no known identity user.",
            "readOnly": true,
            "type": "string"
          }
        },
        "title": "Task",
        "type": "object",
        "x-speakeasy-name-override": "Task"
      },
      "c1.api.task.v1.TaskAction": {
        "description": "Represents a single action that was performed on a task.",
        "properties": {
          "actionType": {
            "description": "The type of action that was performed.",
            "enum": [
              "TASK_ACTION_TYPE_UNSPECIFIED",
              "TASK_ACTION_TYPE_CLOSE",
              "TASK_ACTION_TYPE_APPROVE",
              "TASK_ACTION_TYPE_DENY",
              "TASK_ACTION_TYPE_COMMENT",
              "TASK_ACTION_TYPE_DELETE",
              "TASK_ACTION_TYPE_REASSIGN",
              "TASK_ACTION_TYPE_RESTART",
              "TASK_ACTION_TYPE_SEND_REMINDER",
              "TASK_ACTION_TYPE_PROVISION_COMPLETE",
              "TASK_ACTION_TYPE_PROVISION_CANCELLED",
              "TASK_ACTION_TYPE_PROVISION_ERRORED",
              "TASK_ACTION_TYPE_ROLLBACK_SKIPPED",
              "TASK_ACTION_TYPE_PROVISION_APP_USER_TARGET_CREATED",
              "TASK_ACTION_TYPE_HARD_RESET",
              "TASK_ACTION_TYPE_ESCALATE_TO_EMERGENCY_ACCESS",
              "TASK_ACTION_TYPE_CHANGE_POLICY",
              "TASK_ACTION_TYPE_RECALCULATE_DENIAL_FROM_BASE_POLICY_DECISIONS",
              "TASK_ACTION_TYPE_SET_INSIGHTS_AND_RECOMMENDATION",
              "TASK_ACTION_TYPE_SET_ANALYSIS_ID",
              "TASK_ACTION_TYPE_RECALCULATE_APPROVERS_LIST",
              "TASK_ACTION_TYPE_PROCESS_NOW",
              "TASK_ACTION_TYPE_APPROVE_WITH_STEP_UP",
              "TASK_ACTION_TYPE_SKIP_STEP",
              "TASK_ACTION_TYPE_ROLLBACK_CANCELLED",
              "TASK_ACTION_TYPE_UPDATE_REQUEST_DATA",
              "TASK_ACTION_TYPE_UPDATE_GRANT_DURATION",
              "TASK_ACTION_TYPE_RETRY_PROVISIONING"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "bulkActionId": {
            "description": "The ID of the bulk action this action belongs to, if it was part of a bulk operation.",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "The unique ID of this action.",
            "type": "string"
          },
          "policyStepId": {
            "description": "The ID of the policy step this action was performed on.",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "userId": {
            "description": "The ID of the user who performed the action.",
            "type": "string"
          }
        },
        "title": "Task Action",
        "type": "object",
        "x-speakeasy-name-override": "SubmittedTaskAction"
      },
      "c1.api.task.v1.TaskActionSource": {
        "description": "The TaskActionSource message indicates what created an action task.\n\nThis message contains a oneof named origin. Only a single field of the following list may be set at a time:\n  - review\n",
        "properties": {
          "review": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskActionSourceReview"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Task Action Source",
        "type": "object",
        "x-speakeasy-name-override": "TaskActionSource"
      },
      "c1.api.task.v1.TaskActionSourceReview": {
        "description": "The TaskActionSourceReview message tracks which access review decision created the action task.",
        "properties": {
          "accessReviewId": {
            "description": "The ID of the access review associated with the action task.",
            "readOnly": true,
            "type": "string"
          },
          "certTicketId": {
            "description": "The ID of the certify ticket that was denied and created this action task.",
            "readOnly": true,
            "type": "string"
          }
        },
        "title": "Task Action Source Review",
        "type": "object",
        "x-speakeasy-name-override": "TaskActionSourceReview"
      },
      "c1.api.task.v1.TaskActionsServiceApproveRequestInput": {
        "description": "The TaskActionsServiceApproveRequest object lets you approve a task.",
        "properties": {
          "comment": {
            "description": "The comment attached to the request.",
            "type": "string"
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "policyStepId": {
            "description": "The ID of the policy step on the given task to approve.",
            "type": "string"
          }
        },
        "required": [
          "policyStepId"
        ],
        "title": "Task Actions Service Approve Request",
        "type": "object",
        "x-speakeasy-name-override": "TaskActionsServiceApproveRequest"
      },
      "c1.api.task.v1.TaskActionsServiceApproveResponse": {
        "description": "The TaskActionsServiceApproveResponse returns a task view with paths indicating the location of expanded items in the array.",
        "properties": {
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "readOnly": true,
              "type": "object"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "taskView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskView"
              },
              {
                "type": "null"
              }
            ]
          },
          "ticketActionId": {
            "description": "The ID of the task approve action created by this request.",
            "readOnly": true,
            "type": "string"
          }
        },
        "title": "Task Actions Service Approve Response",
        "type": "object",
        "x-speakeasy-name-override": "TaskActionsServiceApproveResponse"
      },
      "c1.api.task.v1.TaskActionsServiceApproveWithStepUpRequestInput": {
        "description": "TaskActionsServiceApproveWithStepUpRequest is used to approve a task with step-up authentication",
        "properties": {
          "comment": {
            "description": "The comment attached to the request.",
            "type": "string"
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "policyStepId": {
            "description": "The ID of the policy step on the given task to approve.",
            "type": "string"
          },
          "stepUpTransactionId": {
            "description": "The step-up transaction ID that was verified.\n If unset, the response will include a redirect URL to\n complete the step-up authentication.",
            "type": "string"
          }
        },
        "required": [
          "policyStepId",
          "stepUpTransactionId"
        ],
        "title": "Task Actions Service Approve With Step Up Request",
        "type": "object",
        "x-speakeasy-name-override": "TaskActionsServiceApproveWithStepUpRequest"
      },
      "c1.api.task.v1.TaskActionsServiceApproveWithStepUpResponse": {
        "description": "TaskActionsServiceApproveWithStepUpResponse is the response for approving a task with step-up authentication",
        "properties": {
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "readOnly": true,
              "type": "object"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "redirectUrl": {
            "description": "The redirect URL the client must visit to complete the step-up authentication.",
            "type": "string"
          },
          "taskView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskView"
              },
              {
                "type": "null"
              }
            ]
          },
          "ticketActionId": {
            "description": "The ID of the task approve action created by this request.",
            "readOnly": true,
            "type": "string"
          }
        },
        "title": "Task Actions Service Approve With Step Up Response",
        "type": "object",
        "x-speakeasy-name-override": "TaskActionsServiceApproveWithStepUpResponse"
      },
      "c1.api.task.v1.TaskActionsServiceCloseRequestInput": {
        "description": "The TaskActionsServiceCloseRequest object lets you close or cancel a task.",
        "properties": {
          "comment": {
            "description": "An optional comment attached to the close action.",
            "type": "string"
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskExpandMask"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Task Actions Service Close Request",
        "type": "object",
        "x-speakeasy-name-override": "TaskActionsServiceCloseRequest"
      },
      "c1.api.task.v1.TaskActionsServiceCloseResponse": {
        "description": "The TaskActionsServiceCloseResponse returns a task view with paths indicating the location of expanded items in the array.",
        "properties": {
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "readOnly": true,
              "type": "object"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "taskActionId": {
            "description": "The ID of the task close action created by this request.",
            "readOnly": true,
            "type": "string"
          },
          "taskView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskView"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Task Actions Service Close Response",
        "type": "object",
        "x-speakeasy-name-override": "TaskActionsServiceCloseResponse"
      },
      "c1.api.task.v1.TaskActionsServiceCommentRequestInput": {
        "description": "The TaskActionsServiceCommentRequest object lets you create a new comment on a task.",
        "properties": {
          "comment": {
            "description": "The comment to be posted to the task.",
            "type": "string"
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskExpandMask"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Task Actions Service Comment Request",
        "type": "object",
        "x-speakeasy-name-override": "TaskActionsServiceCommentRequest"
      },
      "c1.api.task.v1.TaskActionsServiceCommentResponse": {
        "description": "Task actions service comment response returns the task view inluding the expanded array of items that are indicated by the expand mask on the request.",
        "properties": {
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "taskView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskView"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Task Actions Service Comment Response",
        "type": "object",
        "x-speakeasy-name-override": "TaskActionsServiceCommentResponse"
      },
      "c1.api.task.v1.TaskActionsServiceDenyRequestInput": {
        "description": "The TaskActionsServiceDenyRequest object lets you deny a task.",
        "properties": {
          "comment": {
            "description": "The comment attached to the request.",
            "type": "string"
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "policyStepId": {
            "description": "The ID of the current policy step. This is the step you want to deny.",
            "type": "string"
          }
        },
        "title": "Task Actions Service Deny Request",
        "type": "object",
        "x-speakeasy-name-override": "TaskActionsServiceDenyRequest"
      },
      "c1.api.task.v1.TaskActionsServiceDenyResponse": {
        "description": "The TaskActionsServiceDenyResponse returns a task view with paths indicating the location of expanded items in the array.",
        "properties": {
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "readOnly": true,
              "type": "object"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "taskView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskView"
              },
              {
                "type": "null"
              }
            ]
          },
          "ticketActionId": {
            "description": "The ID of the task deny action created by this request.",
            "readOnly": true,
            "type": "string"
          }
        },
        "title": "Task Actions Service Deny Response",
        "type": "object",
        "x-speakeasy-name-override": "TaskActionsServiceDenyResponse"
      },
      "c1.api.task.v1.TaskActionsServiceEscalateToEmergencyAccessRequestInput": {
        "description": "The TaskActionsServiceEscalateToEmergencyAccessRequest object lets you escalate a task to the emergency access workflow.",
        "properties": {
          "comment": {
            "description": "An optional comment attached to the escalation.",
            "type": "string"
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "policyStepId": {
            "description": "The ID of the current policy step being escalated from.",
            "type": "string"
          }
        },
        "title": "Task Actions Service Escalate To Emergency Access Request",
        "type": "object",
        "x-speakeasy-name-override": "TaskActionsServiceEscalateToEmergencyAccessRequest"
      },
      "c1.api.task.v1.TaskActionsServiceHardResetRequestInput": {
        "description": "The TaskActionsServiceHardResetRequest object lets you reset a task and recalculate its policy.",
        "properties": {
          "comment": {
            "description": "The comment attached to the request.",
            "type": "string"
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskExpandMask"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Task Actions Service Hard Reset Request",
        "type": "object",
        "x-speakeasy-name-override": "TaskActionsServiceHardResetRequest"
      },
      "c1.api.task.v1.TaskActionsServiceHardResetResponse": {
        "description": "The TaskActionsServiceHardResetResponse returns the updated task after a hard reset.",
        "properties": {
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "taskView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskView"
              },
              {
                "type": "null"
              }
            ]
          },
          "ticketActionId": {
            "description": "The ID of the task reset action created by this request.",
            "type": "string"
          }
        },
        "title": "Task Actions Service Hard Reset Response",
        "type": "object",
        "x-speakeasy-name-override": "TaskActionsServiceHardResetResponse"
      },
      "c1.api.task.v1.TaskActionsServiceProcessNowRequestInput": {
        "description": "The TaskActionsServiceProcessNowRequest object lets you trigger processing of a task immediately.",
        "properties": {
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskExpandMask"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Task Actions Service Process Now Request",
        "type": "object",
        "x-speakeasy-name-override": "TaskActionsServiceProcessNowRequest"
      },
      "c1.api.task.v1.TaskActionsServiceProcessNowResponse": {
        "description": "The TaskActionsServiceProcessNowResponse returns the task view after triggering immediate processing.",
        "properties": {
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "taskView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskView"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Task Actions Service Process Now Response",
        "type": "object",
        "x-speakeasy-name-override": "TaskActionsServiceProcessNowResponse"
      },
      "c1.api.task.v1.TaskActionsServiceReassignRequestInput": {
        "description": "The TaskActionsServiceReassignRequest object lets you reassign a task's current policy step to different users.",
        "properties": {
          "comment": {
            "description": "An optional comment attached to the reassignment.",
            "type": "string"
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "newStepUserIds": {
            "description": "The IDs of the users to reassign the current policy step to. Must be from the allowed reassignees list.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "policyStepId": {
            "description": "The ID of the current policy step to reassign. Must match the task's active step.",
            "type": "string"
          }
        },
        "title": "Task Actions Service Reassign Request",
        "type": "object",
        "x-speakeasy-name-override": "TaskActionsServiceReassignRequest"
      },
      "c1.api.task.v1.TaskActionsServiceReassignResponse": {
        "description": "The TaskActionsServiceReassignResponse returns a task view with paths indicating the location of expanded items in the array.",
        "properties": {
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "readOnly": true,
              "type": "object"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "taskView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskView"
              },
              {
                "type": "null"
              }
            ]
          },
          "ticketActionId": {
            "description": "The ID of the task reassign action created by this request.",
            "readOnly": true,
            "type": "string"
          }
        },
        "title": "Task Actions Service Reassign Response",
        "type": "object",
        "x-speakeasy-name-override": "TaskActionsServiceReassignResponse"
      },
      "c1.api.task.v1.TaskActionsServiceRestartRequestInput": {
        "description": "The TaskActionsServiceRestartRequest object lets you restart a task.",
        "properties": {
          "comment": {
            "description": "The comment attached to the request.",
            "type": "string"
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "policyStepId": {
            "description": "Deprecated. This field is accepted but does not affect behavior.",
            "type": "string"
          }
        },
        "title": "Task Actions Service Restart Request",
        "type": "object",
        "x-speakeasy-name-override": "TaskActionsServiceRestartRequest"
      },
      "c1.api.task.v1.TaskActionsServiceRestartResponse": {
        "description": "The TaskActionsServiceRestartResponse returns the updated task after restarting.",
        "properties": {
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "taskView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskView"
              },
              {
                "type": "null"
              }
            ]
          },
          "ticketActionId": {
            "description": "The ID of the task restart action created by this request.",
            "type": "string"
          }
        },
        "title": "Task Actions Service Restart Response",
        "type": "object",
        "x-speakeasy-name-override": "TaskActionsServiceRestartResponse"
      },
      "c1.api.task.v1.TaskActionsServiceRetryProvisioningRequestInput": {
        "description": "Request to retry a task's failed connector provisioning.",
        "properties": {
          "comment": {
            "description": "An optional comment attached to the action.",
            "type": "string"
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "policyStepId": {
            "description": "The ID of the provision policy step to retry.",
            "type": "string"
          }
        },
        "title": "Task Actions Service Retry Provisioning Request",
        "type": "object",
        "x-speakeasy-name-override": "TaskActionsServiceRetryProvisioningRequest"
      },
      "c1.api.task.v1.TaskActionsServiceSkipStepRequestInput": {
        "description": "The TaskActionsServiceSkipStepRequest object lets you skip a policy step in a task.",
        "properties": {
          "comment": {
            "description": "The comment attached to the request.",
            "type": "string"
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "policyStepId": {
            "description": "The ID of the policy step to skip.",
            "type": "string"
          }
        },
        "required": [
          "policyStepId"
        ],
        "title": "Task Actions Service Skip Step Request",
        "type": "object",
        "x-speakeasy-name-override": "TaskActionsServiceSkipStepRequest"
      },
      "c1.api.task.v1.TaskActionsServiceUpdateGrantDurationRequestInput": {
        "description": "The TaskActionsServiceUpdateGrantDurationRequest object lets you change the grant duration on a grant task.",
        "properties": {
          "duration": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskExpandMask"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "duration"
        ],
        "title": "Task Actions Service Update Grant Duration Request",
        "type": "object",
        "x-speakeasy-name-override": "TaskActionsServiceUpdateGrantDurationRequest"
      },
      "c1.api.task.v1.TaskActionsServiceUpdateRequestDataRequestInput": {
        "description": "The TaskActionsServiceUpdateRequestDataRequest object lets you submit form data for a task that is in a form policy step.",
        "properties": {
          "data": {
            "additionalProperties": true,
            "type": [
              "object",
              "null"
            ]
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskExpandMask"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Task Actions Service Update Request Data Request",
        "type": "object",
        "x-speakeasy-name-override": "TaskActionsServiceUpdateRequestDataRequest"
      },
      "c1.api.task.v1.TaskAuditAccessRequestOutcome": {
        "description": "The TaskAuditAccessRequestOutcome message.",
        "properties": {
          "outcome": {
            "description": "The outcome field.",
            "enum": [
              "ACCESS_REQUEST_OUTCOME_UNSPECIFIED",
              "ACCESS_REQUEST_OUTCOME_APPROVED",
              "ACCESS_REQUEST_OUTCOME_DENIED",
              "ACCESS_REQUEST_OUTCOME_ERROR",
              "ACCESS_REQUEST_OUTCOME_CANCELLED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Task Audit Access Request Outcome",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditAccessRequestOutcome"
      },
      "c1.api.task.v1.TaskAuditAccountDeleted": {
        "description": "TaskAuditAccountDeleted records an account deletion reported by a connector\n while completing a revoke action.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "appUserId": {
            "description": "The appUserId field.",
            "type": "string"
          },
          "connectorResourceId": {
            "description": "The connectorResourceId field.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "email": {
            "description": "The email field.",
            "type": "string"
          },
          "username": {
            "description": "The username field.",
            "type": "string"
          }
        },
        "title": "Task Audit Account Deleted",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditAccountDeleted"
      },
      "c1.api.task.v1.TaskAuditAccountLifecycleActionCreated": {
        "description": "The TaskAuditAccountLifecycleActionCreated message.",
        "properties": {
          "batonActionDisplayName": {
            "description": "The batonActionDisplayName field.",
            "type": "string"
          },
          "batonActionInvocationId": {
            "description": "The batonActionInvocationId field.",
            "type": "string"
          },
          "batonActionName": {
            "description": "The batonActionName field.",
            "type": "string"
          },
          "batonAppId": {
            "description": "The batonAppId field.",
            "type": "string"
          },
          "batonConnectorId": {
            "description": "The batonConnectorId field.",
            "type": "string"
          }
        },
        "title": "Task Audit Account Lifecycle Action Created",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditAccountLifecycleActionCreated"
      },
      "c1.api.task.v1.TaskAuditAccountLifecycleActionFailed": {
        "description": "The TaskAuditAccountLifecycleActionFailed message.",
        "properties": {
          "batonActionDisplayName": {
            "description": "The batonActionDisplayName field.",
            "type": "string"
          },
          "batonActionInvocationId": {
            "description": "The batonActionInvocationId field.",
            "type": "string"
          },
          "batonActionName": {
            "description": "The batonActionName field.",
            "type": "string"
          },
          "batonAppId": {
            "description": "The batonAppId field.",
            "type": "string"
          },
          "batonConnectorId": {
            "description": "The batonConnectorId field.",
            "type": "string"
          },
          "error": {
            "description": "The error field.",
            "type": "string"
          }
        },
        "title": "Task Audit Account Lifecycle Action Failed",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditAccountLifecycleActionFailed"
      },
      "c1.api.task.v1.TaskAuditActionInstanceCreated": {
        "description": "The TaskAuditActionInstanceCreated message.",
        "properties": {
          "instance": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ActionInstance"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Task Audit Action Instance Created",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditActionInstanceCreated"
      },
      "c1.api.task.v1.TaskAuditActionInstanceFailed": {
        "description": "The TaskAuditActionInstanceFailed message.",
        "properties": {
          "instance": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ActionInstance"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Task Audit Action Instance Failed",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditActionInstanceFailed"
      },
      "c1.api.task.v1.TaskAuditActionInstanceSucceeded": {
        "description": "The TaskAuditActionInstanceSucceeded message.",
        "properties": {
          "instance": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ActionInstance"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Task Audit Action Instance Succeeded",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditActionInstanceSucceeded"
      },
      "c1.api.task.v1.TaskAuditActionOutcome": {
        "description": "The TaskAuditActionOutcome message.",
        "properties": {
          "outcome": {
            "description": "The outcome field.",
            "enum": [
              "ACTION_OUTCOME_UNSPECIFIED",
              "ACTION_OUTCOME_SUCCESS",
              "ACTION_OUTCOME_DENIED",
              "ACTION_OUTCOME_ERROR",
              "ACTION_OUTCOME_CANCELLED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Task Audit Action Outcome",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditActionOutcome"
      },
      "c1.api.task.v1.TaskAuditActionSubmitted": {
        "description": "The TaskAuditActionSubmitted message.",
        "properties": {
          "action": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAction"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Task Audit Action Submitted",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditActionSubmitted"
      },
      "c1.api.task.v1.TaskAuditApprovalAutoAcceptedByPolicy": {
        "description": "The TaskAuditApprovalAutoAcceptedByPolicy message.",
        "title": "Task Audit Approval Auto Accepted By Policy",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditApprovalAutoAcceptedByPolicy"
      },
      "c1.api.task.v1.TaskAuditApprovalAutoRejectedByPolicy": {
        "description": "The TaskAuditApprovalAutoRejectedByPolicy message.",
        "title": "Task Audit Approval Auto Rejected By Policy",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditApprovalAutoRejectedByPolicy"
      },
      "c1.api.task.v1.TaskAuditApprovalHappenedAutomatically": {
        "description": "The TaskAuditApprovalHappenedAutomatically message.",
        "title": "Task Audit Approval Happened Automatically",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditApprovalHappenedAutomatically"
      },
      "c1.api.task.v1.TaskAuditApprovalInstanceChange": {
        "description": "The TaskAuditApprovalInstanceChange message.",
        "properties": {
          "instance": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.policy.v1.ApprovalInstance"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Task Audit Approval Instance Change",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditApprovalInstanceChange"
      },
      "c1.api.task.v1.TaskAuditAutomationTriggered": {
        "description": "TaskAuditAutomationTriggered attributes a system-created task to the\n automation execution that created it.",
        "properties": {
          "automationExecutionId": {
            "description": "The specific execution of the automation that created the task.",
            "format": "int64",
            "type": "string"
          },
          "automationId": {
            "description": "The automation that created the task.",
            "type": "string"
          },
          "automationName": {
            "description": "The automation's display name as of task creation, so the event stays\n readable after the automation is renamed or deleted.",
            "type": "string"
          }
        },
        "title": "Task Audit Automation Triggered",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditAutomationTriggered"
      },
      "c1.api.task.v1.TaskAuditBulkActionError": {
        "description": "The TaskAuditBulkActionError message.",
        "properties": {
          "error": {
            "description": "The error field.",
            "type": "string"
          }
        },
        "title": "Task Audit Bulk Action Error",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditBulkActionError"
      },
      "c1.api.task.v1.TaskAuditCertifyOutcome": {
        "description": "The TaskAuditCertifyOutcome message.",
        "properties": {
          "outcome": {
            "description": "The outcome field.",
            "enum": [
              "CERTIFY_OUTCOME_UNSPECIFIED",
              "CERTIFY_OUTCOME_CERTIFIED",
              "CERTIFY_OUTCOME_DECERTIFIED",
              "CERTIFY_OUTCOME_ERROR",
              "CERTIFY_OUTCOME_CANCELLED",
              "CERTIFY_OUTCOME_WAIT_TIMED_OUT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Task Audit Certify Outcome",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditCertifyOutcome"
      },
      "c1.api.task.v1.TaskAuditComment": {
        "description": "The TaskAuditComment message.",
        "properties": {
          "comment": {
            "description": "The comment field.",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updatedBy": {
            "description": "The updatedBy field.",
            "type": "string"
          }
        },
        "title": "Task Audit Comment",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditComment"
      },
      "c1.api.task.v1.TaskAuditConditionalPolicyExecutionResult": {
        "description": "The TaskAuditConditionalPolicyExecutionResult message.",
        "properties": {
          "chainDepth": {
            "description": "The depth of this policy in the chain (0 = root, 1 = first hop, etc.).",
            "format": "int32",
            "type": "integer"
          },
          "condition": {
            "description": "The condition field.",
            "type": "string"
          },
          "conditionMatched": {
            "description": "The conditionMatched field.",
            "type": "boolean"
          },
          "defaultCondition": {
            "description": "The defaultCondition field.",
            "type": "boolean"
          },
          "error": {
            "description": "The error field.",
            "type": "string"
          },
          "outcomePolicyId": {
            "description": "When this rule's outcome is a reference to another Policy, the ID of\n that referenced policy. Empty when the outcome is an inline policy_key.",
            "type": "string"
          },
          "policyId": {
            "description": "The policy in which this rule was evaluated. Empty for results recorded\n before chained policy references existed; populated for every result\n emitted by recursive evaluation.",
            "type": "string"
          },
          "policyKey": {
            "description": "The policyKey field.",
            "type": "string"
          }
        },
        "title": "Task Audit Conditional Policy Execution Result",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditConditionalPolicyExecutionResult"
      },
      "c1.api.task.v1.TaskAuditConnectorActionResult": {
        "description": "The TaskAuditConnectorActionResult message.\n\nThis message contains a oneof named result. Only a single field of the following list may be set at a time:\n  - success\n  - error\n  - cancelled\n  - pending\n",
        "properties": {
          "appEntitlementId": {
            "description": "The appEntitlementId field.",
            "type": "string"
          },
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "cancelled": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.TaskAuditCancelledResult"
              },
              {
                "type": "null"
              }
            ]
          },
          "connectorActionId": {
            "description": "The connectorActionId field.",
            "type": "string"
          },
          "connectorId": {
            "description": "The connectorId field.",
            "type": "string"
          },
          "error": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.TaskAuditErrorResult"
              },
              {
                "type": "null"
              }
            ]
          },
          "pending": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.TaskAuditPendingResult"
              },
              {
                "type": "null"
              }
            ]
          },
          "success": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.TaskAuditSuccessResult"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Task Audit Connector Action Result",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditConnectorActionResult"
      },
      "c1.api.task.v1.TaskAuditCreatedReplacementExtensionGrantTask": {
        "description": "TaskAuditCreatedReplacementExtensionGrantTask is used when a replacement extension grant task is created\n (e.g. when an extension grant task is cancelled due to app user deletion).",
        "properties": {
          "newTaskId": {
            "description": "The ID of the newly created replacement task",
            "type": "string"
          },
          "newTaskNumericId": {
            "description": "The numeric ID of the newly created replacement task (for display)",
            "format": "int64",
            "type": "string"
          }
        },
        "title": "Task Audit Created Replacement Extension Grant Task",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditCreatedReplacementExtensionGrantTask"
      },
      "c1.api.task.v1.TaskAuditEscalateToEmergencyAccess": {
        "description": "The TaskAuditEscalateToEmergencyAccess message.",
        "properties": {
          "oldPolicyId": {
            "description": "The oldPolicyId field.",
            "type": "string"
          },
          "oldPolicyStepId": {
            "description": "The oldPolicyStepId field.",
            "type": "string"
          }
        },
        "title": "Task Audit Escalate To Emergency Access",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditEscalateToEmergencyAccess"
      },
      "c1.api.task.v1.TaskAuditExpressionPolicyStepError": {
        "description": "The TaskAuditExpressionPolicyStepError message.",
        "properties": {
          "error": {
            "description": "The error field.",
            "type": "string"
          }
        },
        "title": "Task Audit Expression Policy Step Error",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditExpressionPolicyStepError"
      },
      "c1.api.task.v1.TaskAuditExternalTicketCreated": {
        "description": "The TaskAuditExternalTicketCreated message.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "connectorId": {
            "description": "The connectorId field.",
            "type": "string"
          },
          "externalTicketId": {
            "description": "The externalTicketId field.",
            "type": "string"
          },
          "externalTicketProvisionerConfigId": {
            "description": "The externalTicketProvisionerConfigId field.",
            "type": "string"
          },
          "externalTicketProvisionerConfigName": {
            "description": "The externalTicketProvisionerConfigName field.",
            "type": "string"
          },
          "externalTicketUrl": {
            "description": "The externalTicketUrl field.",
            "type": "string"
          }
        },
        "title": "Task Audit External Ticket Created",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditExternalTicketCreated"
      },
      "c1.api.task.v1.TaskAuditExternalTicketError": {
        "description": "The TaskAuditExternalTicketError message.",
        "properties": {
          "errorMessage": {
            "description": "The errorMessage field.",
            "type": "string"
          }
        },
        "title": "Task Audit External Ticket Error",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditExternalTicketError"
      },
      "c1.api.task.v1.TaskAuditExternalTicketProvisionStepResolved": {
        "description": "The TaskAuditExternalTicketProvisionStepResolved message.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "connectorId": {
            "description": "The connectorId field.",
            "type": "string"
          },
          "externalTicketId": {
            "description": "The externalTicketId field.",
            "type": "string"
          },
          "externalTicketProvisionerConfigId": {
            "description": "The externalTicketProvisionerConfigId field.",
            "type": "string"
          },
          "externalTicketUrl": {
            "description": "The externalTicketUrl field.",
            "type": "string"
          }
        },
        "title": "Task Audit External Ticket Provision Step Resolved",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditExternalTicketProvisionStepResolved"
      },
      "c1.api.task.v1.TaskAuditExternalTicketTriggered": {
        "description": "The TaskAuditExternalTicketTriggered message.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "connectorId": {
            "description": "The connectorId field.",
            "type": "string"
          },
          "externalTicketId": {
            "description": "The externalTicketId field.",
            "type": "string"
          },
          "externalTicketProvisionerConfigId": {
            "description": "The externalTicketProvisionerConfigId field.",
            "type": "string"
          },
          "externalTicketProvisionerConfigName": {
            "description": "The externalTicketProvisionerConfigName field.",
            "type": "string"
          }
        },
        "title": "Task Audit External Ticket Triggered",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditExternalTicketTriggered"
      },
      "c1.api.task.v1.TaskAuditFinishedConnectorActions": {
        "description": "The TaskAuditFinishedConnectorActions message.",
        "properties": {
          "policyStepId": {
            "description": "The policyStepId field.",
            "type": "string"
          }
        },
        "title": "Task Audit Finished Connector Actions",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditFinishedConnectorActions"
      },
      "c1.api.task.v1.TaskAuditFormInstanceChange": {
        "description": "The TaskAuditFormInstanceChange message.",
        "properties": {
          "isValid": {
            "description": "The isValid field.",
            "type": "boolean"
          }
        },
        "title": "Task Audit Form Instance Change",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditFormInstanceChange"
      },
      "c1.api.task.v1.TaskAuditGrantDurationUpdated": {
        "description": "The TaskAuditGrantDurationUpdated message.",
        "properties": {
          "duration": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Task Audit Grant Duration Updated",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditGrantDurationUpdated"
      },
      "c1.api.task.v1.TaskAuditGrantOutcome": {
        "description": "The TaskAuditGrantOutcome message.",
        "properties": {
          "outcome": {
            "description": "The outcome field.",
            "enum": [
              "GRANT_OUTCOME_UNSPECIFIED",
              "GRANT_OUTCOME_GRANTED",
              "GRANT_OUTCOME_DENIED",
              "GRANT_OUTCOME_ERROR",
              "GRANT_OUTCOME_CANCELLED",
              "GRANT_OUTCOME_WAIT_TIMED_OUT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Task Audit Grant Outcome",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditGrantOutcome"
      },
      "c1.api.task.v1.TaskAuditHardReset": {
        "description": "The TaskAuditHardReset message.",
        "properties": {
          "oldPolicyStepId": {
            "description": "The oldPolicyStepId field.",
            "type": "string"
          }
        },
        "title": "Task Audit Hard Reset",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditHardReset"
      },
      "c1.api.task.v1.TaskAuditListRequest": {
        "description": "The TaskAuditListRequest message.",
        "properties": {
          "commentsOnly": {
            "description": "When true, only comment events are returned, so a page of page_size holds\n page_size comments rather than a mix of comments and state-change events.",
            "type": "boolean"
          },
          "excludeComments": {
            "description": "When true, comment events are excluded from the response and the count, so\n a page of page_size holds page_size non-comment events. Mutually exclusive\n with comments_only.",
            "type": "boolean"
          },
          "newestFirst": {
            "description": "When true, events are returned newest-first (descending created_at) instead\n of the default chronological (ascending) order.",
            "type": "boolean"
          },
          "pageSize": {
            "description": "The maximum number of audit events to return per page.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "A pagination token from a previous response to retrieve the next page.",
            "type": "string"
          },
          "refs": {
            "description": "References to specific audit events to retrieve. If provided, only these events are returned.",
            "items": {
              "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditViewRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "taskId": {
            "description": "The ID of the task to list audit events for.",
            "type": "string"
          }
        },
        "title": "Task Audit List Request",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditListRequest"
      },
      "c1.api.task.v1.TaskAuditListResponse": {
        "description": "The TaskAuditListResponse message.",
        "properties": {
          "list": {
            "description": "The list of audit events for the task.",
            "items": {
              "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "A pagination token to retrieve the next page of results.",
            "type": "string"
          },
          "totalCount": {
            "description": "The total number of audit events the list returns for this request:\n comment events when comments_only is true, non-comment events when\n exclude_comments is true, all events otherwise. This is an upper bound:\n a small number of internal-only events (e.g. connector-action results\n with no pending reason) are omitted from list, so the count can exceed\n the rows reachable by paging. Only returned for the first page (a request\n with no page_token). Unset when the request filters by refs (the count is\n undefined for ref lookups) or when the count could not be computed.",
            "format": "int64",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Task Audit List Response",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditListResponse"
      },
      "c1.api.task.v1.TaskAuditMetaData": {
        "description": "The TaskAuditMetaData message.",
        "properties": {
          "user": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.User"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Task Audit Meta Data",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditMetaData"
      },
      "c1.api.task.v1.TaskAuditNewTask": {
        "description": "The TaskAuditNewTask message.",
        "title": "Task Audit New Task",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditNewTask"
      },
      "c1.api.task.v1.TaskAuditNewTaskCreatedFrom": {
        "description": "TaskAuditNewTaskCreatedFrom is used when a task is created from another task\n (e.g. when a replacement extension grant task is created after the original is cancelled).\n This is set on the NEW task to indicate its origin.",
        "properties": {
          "originalTaskId": {
            "description": "The originalTaskId field.",
            "type": "string"
          },
          "originalTaskNumericId": {
            "description": "The originalTaskNumericId field.",
            "format": "int64",
            "type": "string"
          },
          "originalTaskType": {
            "description": "The task type of the original task (e.g. \"grant\", \"revoke\", \"certify\").",
            "type": "string"
          }
        },
        "title": "Task Audit New Task Created From",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditNewTaskCreatedFrom"
      },
      "c1.api.task.v1.TaskAuditPolicyApprovalReassigned": {
        "description": "The TaskAuditPolicyApprovalReassigned message.",
        "properties": {
          "newPolicyStepId": {
            "description": "The newPolicyStepId field.",
            "type": "string"
          },
          "newUsers": {
            "description": "The newUsers field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "oldPolicyStepId": {
            "description": "The oldPolicyStepId field.",
            "type": "string"
          },
          "users": {
            "description": "The users field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.User"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Task Audit Policy Approval Reassigned",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditPolicyApprovalReassigned"
      },
      "c1.api.task.v1.TaskAuditPolicyChanged": {
        "description": "The TaskAuditPolicyChanged message.",
        "properties": {
          "newPolicyId": {
            "description": "The newPolicyId field.",
            "type": "string"
          },
          "oldPolicyId": {
            "description": "The oldPolicyId field.",
            "type": "string"
          }
        },
        "title": "Task Audit Policy Changed",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditPolicyChanged"
      },
      "c1.api.task.v1.TaskAuditPolicyEvaluationStep": {
        "description": "The TaskAuditPolicyEvaluationStep message.",
        "properties": {
          "stepComment": {
            "description": "The stepComment field.",
            "type": "string"
          }
        },
        "title": "Task Audit Policy Evaluation Step",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditPolicyEvaluationStep"
      },
      "c1.api.task.v1.TaskAuditPolicyProvisionCancelled": {
        "description": "The TaskAuditPolicyProvisionCancelled message.",
        "properties": {
          "cancelReason": {
            "description": "The cancelReason field.",
            "type": "string"
          }
        },
        "title": "Task Audit Policy Provision Cancelled",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditPolicyProvisionCancelled"
      },
      "c1.api.task.v1.TaskAuditPolicyProvisionError": {
        "description": "The TaskAuditPolicyProvisionError message.",
        "properties": {
          "error": {
            "description": "The error field.",
            "type": "string"
          }
        },
        "title": "Task Audit Policy Provision Error",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditPolicyProvisionError"
      },
      "c1.api.task.v1.TaskAuditPolicyProvisionReassigned": {
        "description": "The TaskAuditPolicyProvisionReassigned message.",
        "properties": {
          "newPolicyStepId": {
            "description": "The newPolicyStepId field.",
            "type": "string"
          },
          "newUsers": {
            "description": "The newUsers field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "oldPolicyStepId": {
            "description": "The oldPolicyStepId field.",
            "type": "string"
          },
          "users": {
            "description": "The users field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.User"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Task Audit Policy Provision Reassigned",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditPolicyProvisionReassigned"
      },
      "c1.api.task.v1.TaskAuditProvisionEntitlementMergeCompleted": {
        "description": "The TaskAuditProvisionEntitlementMergeCompleted message.",
        "properties": {
          "appEntitlementId": {
            "description": "The appEntitlementId field.",
            "type": "string"
          },
          "appId": {
            "description": "The appId field.",
            "type": "string"
          }
        },
        "title": "Task Audit Provision Entitlement Merge Completed",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditProvisionEntitlementMergeCompleted"
      },
      "c1.api.task.v1.TaskAuditProvisionEntitlementMergeTimedOut": {
        "description": "The TaskAuditProvisionEntitlementMergeTimedOut message.",
        "properties": {
          "appEntitlementId": {
            "description": "The appEntitlementId field.",
            "type": "string"
          },
          "appId": {
            "description": "The appId field.",
            "type": "string"
          }
        },
        "title": "Task Audit Provision Entitlement Merge Timed Out",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditProvisionEntitlementMergeTimedOut"
      },
      "c1.api.task.v1.TaskAuditProvisionWaitingForEntitlementMerge": {
        "description": "The TaskAuditProvisionWaitingForEntitlementMerge message.",
        "properties": {
          "appEntitlementId": {
            "description": "The appEntitlementId field.",
            "type": "string"
          },
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "fallbackAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Task Audit Provision Waiting For Entitlement Merge",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditProvisionWaitingForEntitlementMerge"
      },
      "c1.api.task.v1.TaskAuditReassignedToDelegate": {
        "description": "The TaskAuditReassignedToDelegate message.",
        "properties": {
          "delegatedAssigneeUser": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.User"
              },
              {
                "type": "null"
              }
            ]
          },
          "delegatedAssigneeUserId": {
            "description": "The delegatedAssigneeUserId field.",
            "type": "string"
          },
          "originalAssigneeUser": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.User"
              },
              {
                "type": "null"
              }
            ]
          },
          "originalAssigneeUserId": {
            "description": "The originalAssigneeUserId field.",
            "type": "string"
          }
        },
        "title": "Task Audit Reassigned To Delegate",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditReassignedToDelegate"
      },
      "c1.api.task.v1.TaskAuditReassignmentFallbackToAdmin": {
        "description": "TaskAuditReassignmentFallbackToAdmin is used when no eligible reviewers are found\n from the policy configuration and the task falls back to system administrators\n without creating a new policy step. This prevents reassignment loops.",
        "properties": {
          "adminUserIds": {
            "description": "The IDs of the system administrator users that the task is being assigned to",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "adminUsers": {
            "description": "The system administrator users (populated for display)",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.User"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Task Audit Reassignment Fallback To Admin",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditReassignmentFallbackToAdmin"
      },
      "c1.api.task.v1.TaskAuditReassignmentListError": {
        "description": "The TaskAuditReassignmentListError message.",
        "properties": {
          "errorMessage": {
            "description": "The errorMessage field.",
            "type": "string"
          }
        },
        "title": "Task Audit Reassignment List Error",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditReassignmentListError"
      },
      "c1.api.task.v1.TaskAuditRequestDefaultsApplied": {
        "description": "TaskAuditRequestDefaultsApplied records which tier of the request-settings\n precedence chain supplied the defaults for a grant request. The rule ID, not\n its name, is stored; consumers resolve the current display name via\n (app_id, routing_rule_id).",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "routingRuleId": {
            "description": "The routingRuleId field.",
            "type": "string"
          },
          "source": {
            "description": "The source field.",
            "enum": [
              "APPLIED_SETTINGS_SOURCE_UNSPECIFIED",
              "APPLIED_SETTINGS_SOURCE_ENTITLEMENT_OVERRIDE",
              "APPLIED_SETTINGS_SOURCE_ROUTING_RULE",
              "APPLIED_SETTINGS_SOURCE_ENTITLEMENT_DEFAULT",
              "APPLIED_SETTINGS_SOURCE_APP_DEFAULT",
              "APPLIED_SETTINGS_SOURCE_ACCESS_PROFILE_DEFAULT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Task Audit Request Defaults Applied",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditRequestDefaultsApplied"
      },
      "c1.api.task.v1.TaskAuditRestart": {
        "description": "The TaskAuditRestart message.",
        "properties": {
          "oldPolicyStepId": {
            "description": "The oldPolicyStepId field.",
            "type": "string"
          }
        },
        "title": "Task Audit Restart",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditRestart"
      },
      "c1.api.task.v1.TaskAuditRevokeOutcome": {
        "description": "The TaskAuditRevokeOutcome message.",
        "properties": {
          "outcome": {
            "description": "The outcome field.",
            "enum": [
              "REVOKE_OUTCOME_UNSPECIFIED",
              "REVOKE_OUTCOME_REVOKED",
              "REVOKE_OUTCOME_DENIED",
              "REVOKE_OUTCOME_ERROR",
              "REVOKE_OUTCOME_CANCELLED",
              "REVOKE_OUTCOME_WAIT_TIMED_OUT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Task Audit Revoke Outcome",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditRevokeOutcome"
      },
      "c1.api.task.v1.TaskAuditSLAEscalation": {
        "description": "The TaskAuditSLAEscalation message.",
        "properties": {
          "message": {
            "description": "The message field.",
            "type": "string"
          }
        },
        "title": "Task Audit Sla Escalation",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditSLAEscalation"
      },
      "c1.api.task.v1.TaskAuditStartedConnectorActions": {
        "description": "The TaskAuditStartedConnectorActions message.",
        "properties": {
          "policyStepId": {
            "description": "The policyStepId field.",
            "type": "string"
          }
        },
        "title": "Task Audit Started Connector Actions",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditStartedConnectorActions"
      },
      "c1.api.task.v1.TaskAuditStateChange": {
        "description": "The TaskAuditStateChange message.",
        "properties": {
          "previousState": {
            "description": "The previousState field.",
            "enum": [
              "TASK_STATE_UNSPECIFIED",
              "TASK_STATE_OPEN",
              "TASK_STATE_CLOSED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Task Audit State Change",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditStateChange"
      },
      "c1.api.task.v1.TaskAuditStepSkipped": {
        "description": "The TaskAuditStepSkipped message.",
        "properties": {
          "skippedBy": {
            "description": "The skippedBy field.",
            "type": "string"
          }
        },
        "title": "Task Audit Step Skipped",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditStepSkipped"
      },
      "c1.api.task.v1.TaskAuditStepUpApproval": {
        "description": "The TaskAuditStepUpApproval message.",
        "properties": {
          "stepUpTransactionId": {
            "description": "The stepUpTransactionId field.",
            "type": "string"
          }
        },
        "title": "Task Audit Step Up Approval",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditStepUpApproval"
      },
      "c1.api.task.v1.TaskAuditView": {
        "description": "The TaskAuditView message.\n\nThis message contains a oneof named typ. Only a single field of the following list may be set at a time:\n  - comment\n  - stateChange\n  - approvalInstanceChange\n  - connectorActionsStart\n  - connectorActionsEnd\n  - actionResult\n  - taskCreated\n  - certifyOutcome\n  - actionSubmitted\n  - grantOutcome\n  - revokeOutcome\n  - approvalReassigned\n  - taskRestarted\n  - accessRequestOutcome\n  - provisionReassigned\n  - provisionError\n  - approvedAutomatically\n  - reassignedToDelegate\n  - hardReset\n  - taskEscalated\n  - conditionalPolicyExecutionResult\n  - expressionPolicyStepError\n  - approvalAutoAcceptedByPolicy\n  - approvalAutoRejectedByPolicy\n  - bulkActionError\n  - webhookTriggered\n  - webhookAttempt\n  - webhookSuccess\n  - policyEvaluationStep\n  - waitStepSuccess\n  - waitStepWaiting\n  - waitStepTimedOut\n  - webhookApprovalTriggered\n  - webhookApprovalAttempt\n  - webhookApprovalSuccess\n  - webhookApprovalBadResponse\n  - externalTicketTriggered\n  - externalTicketCreated\n  - externalTicketError\n  - waitStepAnalysisSuccess\n  - waitStepAnalysisWaiting\n  - waitStepAnalysisTimedOut\n  - stepUpApproval\n  - externalTicketProvisionStepResolved\n  - stepSkipped\n  - reassignmentListError\n  - slaEscalation\n  - policyChanged\n  - formInstanceChange\n  - grantDurationUpdated\n  - waitStepUntilTime\n  - webhookApprovalFatalError\n  - accountLifecycleActionCreated\n  - accountLifecycleActionFailed\n  - provisionCancelled\n  - actionInstanceCreated\n  - actionInstanceSucceeded\n  - actionInstanceFailed\n  - createdReplacementExtensionGrantTask\n  - taskCreatedFrom\n  - reassignmentFallbackToAdmin\n  - requestDefaultsApplied\n  - provisionWaitingForEntitlementMerge\n  - provisionEntitlementMergeCompleted\n  - provisionEntitlementMergeTimedOut\n  - accountDeleted\n  - automationTriggered\n  - actionOutcome\n",
        "properties": {
          "accessRequestOutcome": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditAccessRequestOutcome"
              },
              {
                "type": "null"
              }
            ]
          },
          "accountDeleted": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditAccountDeleted"
              },
              {
                "type": "null"
              }
            ]
          },
          "accountLifecycleActionCreated": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditAccountLifecycleActionCreated"
              },
              {
                "type": "null"
              }
            ]
          },
          "accountLifecycleActionFailed": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditAccountLifecycleActionFailed"
              },
              {
                "type": "null"
              }
            ]
          },
          "actionInstanceCreated": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditActionInstanceCreated"
              },
              {
                "type": "null"
              }
            ]
          },
          "actionInstanceFailed": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditActionInstanceFailed"
              },
              {
                "type": "null"
              }
            ]
          },
          "actionInstanceSucceeded": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditActionInstanceSucceeded"
              },
              {
                "type": "null"
              }
            ]
          },
          "actionOutcome": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditActionOutcome"
              },
              {
                "type": "null"
              }
            ]
          },
          "actionResult": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditConnectorActionResult"
              },
              {
                "type": "null"
              }
            ]
          },
          "actionSubmitted": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditActionSubmitted"
              },
              {
                "type": "null"
              }
            ]
          },
          "approvalAutoAcceptedByPolicy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditApprovalAutoAcceptedByPolicy"
              },
              {
                "type": "null"
              }
            ]
          },
          "approvalAutoRejectedByPolicy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditApprovalAutoRejectedByPolicy"
              },
              {
                "type": "null"
              }
            ]
          },
          "approvalInstanceChange": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditApprovalInstanceChange"
              },
              {
                "type": "null"
              }
            ]
          },
          "approvalReassigned": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditPolicyApprovalReassigned"
              },
              {
                "type": "null"
              }
            ]
          },
          "approvedAutomatically": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditApprovalHappenedAutomatically"
              },
              {
                "type": "null"
              }
            ]
          },
          "automationTriggered": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditAutomationTriggered"
              },
              {
                "type": "null"
              }
            ]
          },
          "bulkActionError": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditBulkActionError"
              },
              {
                "type": "null"
              }
            ]
          },
          "certifyOutcome": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditCertifyOutcome"
              },
              {
                "type": "null"
              }
            ]
          },
          "comment": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditComment"
              },
              {
                "type": "null"
              }
            ]
          },
          "conditionalPolicyExecutionResult": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditConditionalPolicyExecutionResult"
              },
              {
                "type": "null"
              }
            ]
          },
          "connectorActionsEnd": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditFinishedConnectorActions"
              },
              {
                "type": "null"
              }
            ]
          },
          "connectorActionsStart": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditStartedConnectorActions"
              },
              {
                "type": "null"
              }
            ]
          },
          "created": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "createdReplacementExtensionGrantTask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditCreatedReplacementExtensionGrantTask"
              },
              {
                "type": "null"
              }
            ]
          },
          "currentState": {
            "description": "The currentState field.",
            "enum": [
              "TASK_STATE_UNSPECIFIED",
              "TASK_STATE_OPEN",
              "TASK_STATE_CLOSED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "eventType": {
            "description": "The eventType field.",
            "enum": [
              "TASK_AUDIT_EVENT_TYPE_UNSPECIFIED",
              "TASK_AUDIT_EVENT_TYPE_NEUTRAL",
              "TASK_AUDIT_EVENT_TYPE_ERROR"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "expressionPolicyStepError": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditExpressionPolicyStepError"
              },
              {
                "type": "null"
              }
            ]
          },
          "externalTicketCreated": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditExternalTicketCreated"
              },
              {
                "type": "null"
              }
            ]
          },
          "externalTicketError": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditExternalTicketError"
              },
              {
                "type": "null"
              }
            ]
          },
          "externalTicketProvisionStepResolved": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditExternalTicketProvisionStepResolved"
              },
              {
                "type": "null"
              }
            ]
          },
          "externalTicketTriggered": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditExternalTicketTriggered"
              },
              {
                "type": "null"
              }
            ]
          },
          "formInstanceChange": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditFormInstanceChange"
              },
              {
                "type": "null"
              }
            ]
          },
          "grantDurationUpdated": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditGrantDurationUpdated"
              },
              {
                "type": "null"
              }
            ]
          },
          "grantOutcome": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditGrantOutcome"
              },
              {
                "type": "null"
              }
            ]
          },
          "hardReset": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditHardReset"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "metadata": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditMetaData"
              },
              {
                "type": "null"
              }
            ]
          },
          "policyChanged": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditPolicyChanged"
              },
              {
                "type": "null"
              }
            ]
          },
          "policyEvaluationStep": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditPolicyEvaluationStep"
              },
              {
                "type": "null"
              }
            ]
          },
          "provisionCancelled": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditPolicyProvisionCancelled"
              },
              {
                "type": "null"
              }
            ]
          },
          "provisionEntitlementMergeCompleted": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditProvisionEntitlementMergeCompleted"
              },
              {
                "type": "null"
              }
            ]
          },
          "provisionEntitlementMergeTimedOut": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditProvisionEntitlementMergeTimedOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "provisionError": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditPolicyProvisionError"
              },
              {
                "type": "null"
              }
            ]
          },
          "provisionReassigned": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditPolicyProvisionReassigned"
              },
              {
                "type": "null"
              }
            ]
          },
          "provisionWaitingForEntitlementMerge": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditProvisionWaitingForEntitlementMerge"
              },
              {
                "type": "null"
              }
            ]
          },
          "reassignedToDelegate": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditReassignedToDelegate"
              },
              {
                "type": "null"
              }
            ]
          },
          "reassignmentFallbackToAdmin": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditReassignmentFallbackToAdmin"
              },
              {
                "type": "null"
              }
            ]
          },
          "reassignmentListError": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditReassignmentListError"
              },
              {
                "type": "null"
              }
            ]
          },
          "requestDefaultsApplied": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditRequestDefaultsApplied"
              },
              {
                "type": "null"
              }
            ]
          },
          "revokeOutcome": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditRevokeOutcome"
              },
              {
                "type": "null"
              }
            ]
          },
          "slaEscalation": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditSLAEscalation"
              },
              {
                "type": "null"
              }
            ]
          },
          "source": {
            "description": "The source field.",
            "enum": [
              "SOURCE_UNSPECIFIED",
              "SOURCE_C1",
              "SOURCE_JIRA",
              "SOURCE_SLACK",
              "SOURCE_COPILOT_AGENTS"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "stateChange": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditStateChange"
              },
              {
                "type": "null"
              }
            ]
          },
          "stepSkipped": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditStepSkipped"
              },
              {
                "type": "null"
              }
            ]
          },
          "stepUpApproval": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditStepUpApproval"
              },
              {
                "type": "null"
              }
            ]
          },
          "taskCreated": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditNewTask"
              },
              {
                "type": "null"
              }
            ]
          },
          "taskCreatedFrom": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditNewTaskCreatedFrom"
              },
              {
                "type": "null"
              }
            ]
          },
          "taskEscalated": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditEscalateToEmergencyAccess"
              },
              {
                "type": "null"
              }
            ]
          },
          "taskRestarted": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditRestart"
              },
              {
                "type": "null"
              }
            ]
          },
          "ticketId": {
            "description": "The ticketId field.",
            "type": "string"
          },
          "userId": {
            "description": "The userId field.",
            "type": "string"
          },
          "waitStepAnalysisSuccess": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditWaitForAnalysisStepSuccess"
              },
              {
                "type": "null"
              }
            ]
          },
          "waitStepAnalysisTimedOut": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditWaitForAnalysisStepTimedOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "waitStepAnalysisWaiting": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditWaitForAnalysisStepWaiting"
              },
              {
                "type": "null"
              }
            ]
          },
          "waitStepSuccess": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditWaitStepSuccess"
              },
              {
                "type": "null"
              }
            ]
          },
          "waitStepTimedOut": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditWaitStepTimedOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "waitStepUntilTime": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditWaitStepUntilTime"
              },
              {
                "type": "null"
              }
            ]
          },
          "waitStepWaiting": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditWaitStepWaiting"
              },
              {
                "type": "null"
              }
            ]
          },
          "webhookApprovalAttempt": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditWebhookApprovalAttempt"
              },
              {
                "type": "null"
              }
            ]
          },
          "webhookApprovalBadResponse": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditWebhookApprovalBadResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "webhookApprovalFatalError": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditWebhookApprovalFatalError"
              },
              {
                "type": "null"
              }
            ]
          },
          "webhookApprovalSuccess": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditWebhookApprovalSuccess"
              },
              {
                "type": "null"
              }
            ]
          },
          "webhookApprovalTriggered": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditWebhookApprovalTriggered"
              },
              {
                "type": "null"
              }
            ]
          },
          "webhookAttempt": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditWebhookAttempt"
              },
              {
                "type": "null"
              }
            ]
          },
          "webhookSuccess": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditWebhookSuccess"
              },
              {
                "type": "null"
              }
            ]
          },
          "webhookTriggered": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditWebhookTriggered"
              },
              {
                "type": "null"
              }
            ]
          },
          "workflowStep": {
            "description": "The workflowStep field.",
            "format": "int32",
            "type": "integer"
          }
        },
        "title": "Task Audit View",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditView"
      },
      "c1.api.task.v1.TaskAuditViewRef": {
        "description": "The TaskAuditViewRef message.",
        "properties": {
          "id": {
            "description": "The ID of the audit event.",
            "type": "string"
          }
        },
        "title": "Task Audit View Ref",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditViewRef"
      },
      "c1.api.task.v1.TaskAuditWaitForAnalysisStepSuccess": {
        "description": "The TaskAuditWaitForAnalysisStepSuccess message.",
        "properties": {
          "stepId": {
            "description": "The stepId field.",
            "type": "string"
          },
          "succeededAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Task Audit Wait For Analysis Step Success",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditWaitForAnalysisStepSuccess"
      },
      "c1.api.task.v1.TaskAuditWaitForAnalysisStepTimedOut": {
        "description": "The TaskAuditWaitForAnalysisStepTimedOut message.",
        "properties": {
          "stepId": {
            "description": "The stepId field.",
            "type": "string"
          },
          "timedOutAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Task Audit Wait For Analysis Step Timed Out",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditWaitForAnalysisStepTimedOut"
      },
      "c1.api.task.v1.TaskAuditWaitForAnalysisStepWaiting": {
        "description": "The TaskAuditWaitForAnalysisStepWaiting message.",
        "properties": {
          "stepId": {
            "description": "The stepId field.",
            "type": "string"
          }
        },
        "title": "Task Audit Wait For Analysis Step Waiting",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditWaitForAnalysisStepWaiting"
      },
      "c1.api.task.v1.TaskAuditWaitStepSuccess": {
        "description": "The TaskAuditWaitStepSuccess message.",
        "properties": {
          "condition": {
            "description": "The condition field.",
            "type": "string"
          },
          "stepId": {
            "description": "The stepId field.",
            "type": "string"
          },
          "succeededAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Task Audit Wait Step Success",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditWaitStepSuccess"
      },
      "c1.api.task.v1.TaskAuditWaitStepTimedOut": {
        "description": "The TaskAuditWaitStepTimedOut message.",
        "properties": {
          "condition": {
            "description": "The condition field.",
            "type": "string"
          },
          "stepId": {
            "description": "The stepId field.",
            "type": "string"
          },
          "timedOutAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Task Audit Wait Step Timed Out",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditWaitStepTimedOut"
      },
      "c1.api.task.v1.TaskAuditWaitStepUntilTime": {
        "description": "The TaskAuditWaitStepUntilTime message.",
        "properties": {
          "stepId": {
            "description": "The stepId field.",
            "type": "string"
          },
          "untilTime": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Task Audit Wait Step Until Time",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditWaitStepUntilTime"
      },
      "c1.api.task.v1.TaskAuditWaitStepWaiting": {
        "description": "The TaskAuditWaitStepWaiting message.",
        "properties": {
          "condition": {
            "description": "The condition field.",
            "type": "string"
          },
          "stepId": {
            "description": "The stepId field.",
            "type": "string"
          }
        },
        "title": "Task Audit Wait Step Waiting",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditWaitStepWaiting"
      },
      "c1.api.task.v1.TaskAuditWebhookApprovalAttempt": {
        "description": "The TaskAuditWebhookApprovalAttempt message.",
        "properties": {
          "webhookId": {
            "description": "The webhookId field.",
            "type": "string"
          },
          "webhookInstanceId": {
            "description": "The webhookInstanceId field.",
            "type": "string"
          },
          "webhookName": {
            "description": "The webhookName field.",
            "type": "string"
          },
          "webhookUrl": {
            "description": "The webhookUrl field.",
            "type": "string"
          }
        },
        "title": "Task Audit Webhook Approval Attempt",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditWebhookApprovalAttempt"
      },
      "c1.api.task.v1.TaskAuditWebhookApprovalBadResponse": {
        "description": "The TaskAuditWebhookApprovalBadResponse message.",
        "properties": {
          "error": {
            "description": "The error field.",
            "type": "string"
          },
          "webhookId": {
            "description": "The webhookId field.",
            "type": "string"
          },
          "webhookInstanceId": {
            "description": "The webhookInstanceId field.",
            "type": "string"
          },
          "webhookName": {
            "description": "The webhookName field.",
            "type": "string"
          },
          "webhookUrl": {
            "description": "The webhookUrl field.",
            "type": "string"
          }
        },
        "title": "Task Audit Webhook Approval Bad Response",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditWebhookApprovalBadResponse"
      },
      "c1.api.task.v1.TaskAuditWebhookApprovalFatalError": {
        "description": "The TaskAuditWebhookApprovalFatalError message.",
        "properties": {
          "error": {
            "description": "The error field.",
            "type": "string"
          },
          "webhookId": {
            "description": "The webhookId field.",
            "type": "string"
          },
          "webhookInstanceId": {
            "description": "The webhookInstanceId field.",
            "type": "string"
          },
          "webhookName": {
            "description": "The webhookName field.",
            "type": "string"
          },
          "webhookUrl": {
            "description": "The webhookUrl field.",
            "type": "string"
          }
        },
        "title": "Task Audit Webhook Approval Fatal Error",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditWebhookApprovalFatalError"
      },
      "c1.api.task.v1.TaskAuditWebhookApprovalSuccess": {
        "description": "The TaskAuditWebhookApprovalSuccess message.",
        "properties": {
          "webhookId": {
            "description": "The webhookId field.",
            "type": "string"
          },
          "webhookInstanceId": {
            "description": "The webhookInstanceId field.",
            "type": "string"
          },
          "webhookName": {
            "description": "The webhookName field.",
            "type": "string"
          },
          "webhookUrl": {
            "description": "The webhookUrl field.",
            "type": "string"
          }
        },
        "title": "Task Audit Webhook Approval Success",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditWebhookApprovalSuccess"
      },
      "c1.api.task.v1.TaskAuditWebhookApprovalTriggered": {
        "description": "The TaskAuditWebhookApprovalTriggered message.",
        "properties": {
          "webhookId": {
            "description": "The webhookId field.",
            "type": "string"
          },
          "webhookInstanceId": {
            "description": "The webhookInstanceId field.",
            "type": "string"
          },
          "webhookName": {
            "description": "The webhookName field.",
            "type": "string"
          },
          "webhookUrl": {
            "description": "The webhookUrl field.",
            "type": "string"
          }
        },
        "title": "Task Audit Webhook Approval Triggered",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditWebhookApprovalTriggered"
      },
      "c1.api.task.v1.TaskAuditWebhookAttempt": {
        "description": "The TaskAuditWebhookAttempt message.",
        "properties": {
          "webhookId": {
            "description": "The webhookId field.",
            "type": "string"
          },
          "webhookInstanceId": {
            "description": "The webhookInstanceId field.",
            "type": "string"
          },
          "webhookName": {
            "description": "The webhookName field.",
            "type": "string"
          },
          "webhookUrl": {
            "description": "The webhookUrl field.",
            "type": "string"
          }
        },
        "title": "Task Audit Webhook Attempt",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditWebhookAttempt"
      },
      "c1.api.task.v1.TaskAuditWebhookSuccess": {
        "description": "The TaskAuditWebhookSuccess message.",
        "properties": {
          "comment": {
            "description": "Optional comment supplied by the provisioning callback.",
            "type": "string"
          },
          "webhookId": {
            "description": "The webhookId field.",
            "type": "string"
          },
          "webhookInstanceId": {
            "description": "The webhookInstanceId field.",
            "type": "string"
          },
          "webhookName": {
            "description": "The webhookName field.",
            "type": "string"
          },
          "webhookUrl": {
            "description": "The webhookUrl field.",
            "type": "string"
          }
        },
        "title": "Task Audit Webhook Success",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditWebhookSuccess"
      },
      "c1.api.task.v1.TaskAuditWebhookTriggered": {
        "description": "The TaskAuditWebhookTriggered message.",
        "properties": {
          "webhookId": {
            "description": "The webhookId field.",
            "type": "string"
          },
          "webhookInstanceId": {
            "description": "The webhookInstanceId field.",
            "type": "string"
          },
          "webhookName": {
            "description": "The webhookName field.",
            "type": "string"
          },
          "webhookUrl": {
            "description": "The webhookUrl field.",
            "type": "string"
          }
        },
        "title": "Task Audit Webhook Triggered",
        "type": "object",
        "x-speakeasy-name-override": "TaskAuditWebhookTriggered"
      },
      "c1.api.task.v1.TaskExpandMask": {
        "description": "The task expand mask is an array of strings that specifes the related objects the requester wishes to have returned when making a request where the expand mask is part of the input. Use '*' to view all possible responses.",
        "properties": {
          "paths": {
            "description": "A list of paths to expand in the response. May be any combination of \"*\", \"access_review_id\", \"user_id\", \"created_by_user_id\", \"app_id\", \"app_user_id\", \"app_entitlement_ids\", \"step_approver_ids\", \"approver_ids\", \"identity_user_id\", \"insight_ids\", \"app_user_last_usage\", \"entitlement_scope_bindings\", \"scope_role_resources\", and \"resource\".",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Task Expand Mask",
        "type": "object",
        "x-speakeasy-name-override": "TaskExpandMask"
      },
      "c1.api.task.v1.TaskGrantSource": {
        "description": "The TaskGrantSource message tracks which external URL was the source of the specificed grant ticket.",
        "properties": {
          "conversationId": {
            "description": "The ID of the conversation that created this ticket",
            "type": "string"
          },
          "externalUrl": {
            "description": "The external url source of the grant ticket.",
            "type": "string"
          },
          "integrationId": {
            "description": "The integration id for the source of tickets.",
            "type": "string"
          },
          "isExtension": {
            "description": "Whether the grant task is an extension task.",
            "type": "boolean"
          },
          "requestId": {
            "description": "the request id for the grant ticket if the source is external",
            "type": "string"
          }
        },
        "title": "Task Grant Source",
        "type": "object",
        "x-speakeasy-name-override": "TaskGrantSource"
      },
      "c1.api.task.v1.TaskRef": {
        "description": "This object references a task by ID.",
        "properties": {
          "id": {
            "description": "The ID of the referenced Task",
            "type": "string"
          }
        },
        "title": "Task Ref",
        "type": "object",
        "x-speakeasy-name-override": "TaskRef"
      },
      "c1.api.task.v1.TaskRevocationTarget": {
        "description": "An ancestor entitlement that will be revoked as part of an inheritance revocation.",
        "properties": {
          "entitlementRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Task Revocation Target",
        "type": "object",
        "x-speakeasy-name-override": "TaskRevocationTarget"
      },
      "c1.api.task.v1.TaskRevokeSource": {
        "description": "The TaskRevokeSource message indicates the source of the revoke task is one of expired, nonUsage, request, or review.\n\nThis message contains a oneof named origin. Only a single field of the following list may be set at a time:\n  - review\n  - request\n  - expired\n  - nonUsage\n",
        "properties": {
          "expired": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskRevokeSourceExpired"
              },
              {
                "type": "null"
              }
            ]
          },
          "nonUsage": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskRevokeSourceNonUsage"
              },
              {
                "type": "null"
              }
            ]
          },
          "request": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskRevokeSourceRequest"
              },
              {
                "type": "null"
              }
            ]
          },
          "review": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskRevokeSourceReview"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Task Revoke Source",
        "type": "object",
        "x-speakeasy-name-override": "TaskRevokeSource"
      },
      "c1.api.task.v1.TaskRevokeSourceExpired": {
        "description": "The TaskRevokeSourceExpired message indicates that the source of the revoke task is due to a grant expiring.",
        "properties": {
          "expiredAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Task Revoke Source Expired",
        "type": "object",
        "x-speakeasy-name-override": "TaskRevokeSourceExpired"
      },
      "c1.api.task.v1.TaskRevokeSourceNonUsage": {
        "description": "The TaskRevokeSourceNonUsage message indicates that the source of the revoke task is due to the grant not being used.",
        "properties": {
          "expiresAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "lastLogin": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Task Revoke Source Non Usage",
        "type": "object",
        "x-speakeasy-name-override": "TaskRevokeSourceNonUsage"
      },
      "c1.api.task.v1.TaskRevokeSourceRequest": {
        "description": "The TaskRevokeSourceRequest message indicates that the source of the revoke task was a request.",
        "properties": {
          "requestUserId": {
            "description": "The ID of the user who initiated the revoke request.",
            "type": "string"
          }
        },
        "title": "Task Revoke Source Request",
        "type": "object",
        "x-speakeasy-name-override": "TaskRevokeSourceRequest"
      },
      "c1.api.task.v1.TaskRevokeSourceReview": {
        "description": "The TaskRevokeSourceReview message tracks which access review was the source of the specificed revoke ticket.",
        "properties": {
          "accessReviewId": {
            "description": "The ID of the access review associated with the revoke task.",
            "type": "string"
          },
          "certTicketId": {
            "description": "The ID of the certify ticket that was denied and created this revoke task.",
            "type": "string"
          }
        },
        "title": "Task Revoke Source Review",
        "type": "object",
        "x-speakeasy-name-override": "TaskRevokeSourceReview"
      },
      "c1.api.task.v1.TaskSearchRequest": {
        "description": "Search for tasks based on a plethora filters.",
        "properties": {
          "accessReviewIds": {
            "description": "Search tasks that belong to any of the access reviews included in this list.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "accountOwnerIds": {
            "description": "Search tasks that have any of these account owners.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "accountStatuses": {
            "description": "Search tasks by the account status of the app user subject.",
            "items": {
              "enum": [
                "STATUS_UNSPECIFIED",
                "STATUS_ENABLED",
                "STATUS_DISABLED",
                "STATUS_DELETED"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "accountTypes": {
            "description": "The accountTypes field.",
            "items": {
              "enum": [
                "APP_USER_TYPE_UNSPECIFIED",
                "APP_USER_TYPE_USER",
                "APP_USER_TYPE_SERVICE_ACCOUNT",
                "APP_USER_TYPE_SYSTEM_ACCOUNT"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "actorId": {
            "description": "Search tasks that have this actor ID.",
            "type": "string"
          },
          "appEntitlementIds": {
            "description": "Search tasks that have any of these app entitlement IDs.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appResourceIds": {
            "description": "Search tasks that have any of these app resource IDs.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appResourceTypeIds": {
            "description": "Search tasks that have any of these app resource type IDs.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "appUserSubjectIds": {
            "description": "Search tasks that have any of these app users as subjects.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "applicationIds": {
            "description": "Search tasks that have any of these apps as targets.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "assignedOrStepApproverUserId": {
            "description": "Search tasks that are currently assigned to this user, or that are closed and were previously approved by this user.",
            "type": "string"
          },
          "assigneesInIds": {
            "description": "Search tasks by  List of UserIDs which are currently assigned these Tasks",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "certifyOutcomes": {
            "description": "Search tasks by certify outcome",
            "items": {
              "enum": [
                "CERTIFY_OUTCOME_UNSPECIFIED",
                "CERTIFY_OUTCOME_CERTIFIED",
                "CERTIFY_OUTCOME_DECERTIFIED",
                "CERTIFY_OUTCOME_ERROR",
                "CERTIFY_OUTCOME_CANCELLED",
                "CERTIFY_OUTCOME_WAIT_TIMED_OUT"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "createdAfter": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "createdBefore": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "currentStep": {
            "description": "Search tasks that have this type of step as the current step.",
            "enum": [
              "TASK_SEARCH_CURRENT_STEP_UNSPECIFIED",
              "TASK_SEARCH_CURRENT_STEP_APPROVAL",
              "TASK_SEARCH_CURRENT_STEP_PROVISION"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "emergencyStatus": {
            "description": "Search tasks that are or are not emergency access.",
            "enum": [
              "UNSPECIFIED",
              "ALL",
              "NON_EMERGENCY",
              "EMERGENCY"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "excludeAppEntitlementIds": {
            "description": "Search tasks that do not have any of these app entitlement IDs.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "excludeAppResourceTypeIds": {
            "description": "Search tasks that do not have any of these app resource type IDs.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "excludeApplicationIds": {
            "description": "Search tasks that do NOT have any of these apps as targets.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "excludeIds": {
            "description": "Exclude Specific TaskIDs from this serach result.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "grantOutcomes": {
            "description": "Search tasks by grant outcome",
            "items": {
              "enum": [
                "GRANT_OUTCOME_UNSPECIFIED",
                "GRANT_OUTCOME_GRANTED",
                "GRANT_OUTCOME_DENIED",
                "GRANT_OUTCOME_ERROR",
                "GRANT_OUTCOME_CANCELLED",
                "GRANT_OUTCOME_WAIT_TIMED_OUT"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "includeActedAfter": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "includeDeleted": {
            "description": "Whether or not to include deleted tasks.",
            "type": "boolean"
          },
          "myWorkUserIds": {
            "description": "Search tasks where the user would see this task in the My Work section",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "olderThanDuration": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "openerIds": {
            "description": "Search tasks that were created by any of the users in this array.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "openerOrSubjectUserId": {
            "description": "Search tasks that were opened by this user, or that the user is the subject of.",
            "type": "string"
          },
          "outcomeAfter": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "outcomeBefore": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "pageSize": {
            "description": "The pageSize where 0 \u003c= pageSize \u003c= 100. Values \u003c 10 will be set to 10. A value of 0 returns the default page size (currently 25)",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          },
          "pendingActionFilter": {
            "description": "Filter tasks by pending action status. Only applies when exactly one access_review_id is specified.",
            "enum": [
              "PENDING_ACTION_FILTER_UNSPECIFIED",
              "PENDING_ACTION_FILTER_WITH_PENDING",
              "PENDING_ACTION_FILTER_WITHOUT_PENDING"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "previouslyActedOnIds": {
            "description": "Search tasks that were acted on by any of these users.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "query": {
            "description": "Fuzzy search tasks by display name, description, or ID.",
            "type": "string"
          },
          "refs": {
            "description": "Query tasks by display name, description, or numeric ID.",
            "items": {
              "$ref": "#/components/schemas/c1.api.task.v1.TaskRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "requireApprovalReason": {
            "description": "Filter tasks where the current approval step requires an approval reason.",
            "type": "boolean"
          },
          "requireDenialReason": {
            "description": "Filter tasks where the current approval step requires a denial reason.",
            "type": "boolean"
          },
          "revokeOutcomes": {
            "description": "Search tasks by revoke outcome",
            "items": {
              "enum": [
                "REVOKE_OUTCOME_UNSPECIFIED",
                "REVOKE_OUTCOME_REVOKED",
                "REVOKE_OUTCOME_DENIED",
                "REVOKE_OUTCOME_ERROR",
                "REVOKE_OUTCOME_CANCELLED",
                "REVOKE_OUTCOME_WAIT_TIMED_OUT"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "sortBy": {
            "description": "Sort tasks in a specific order.",
            "enum": [
              "TASK_SEARCH_SORT_BY_UNSPECIFIED",
              "TASK_SEARCH_SORT_BY_ACCOUNT",
              "TASK_SEARCH_SORT_BY_RESOURCE",
              "TASK_SEARCH_SORT_BY_ACCOUNT_OWNER",
              "TASK_SEARCH_SORT_BY_REVERSE_TICKET_ID",
              "TASK_SEARCH_SORT_BY_TICKET_ID",
              "TASK_SEARCH_SORT_BY_CREATED_AT",
              "TASK_SEARCH_SORT_BY_REVERSE_CREATED_AT",
              "TASK_SEARCH_SORT_BY_APP_RESOURCE_ID_AND_APP_ENTITLEMENT"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "stepApprovalTypes": {
            "description": "Search tasks that have a current policy step of this type",
            "items": {
              "enum": [
                "STEP_APPROVAL_TYPE_UNSPECIFIED",
                "STEP_APPROVAL_TYPE_USERS",
                "STEP_APPROVAL_TYPE_MANAGER",
                "STEP_APPROVAL_TYPE_APP_OWNERS",
                "STEP_APPROVAL_TYPE_GROUP",
                "STEP_APPROVAL_TYPE_SELF",
                "STEP_APPROVAL_TYPE_ENTITLEMENT_OWNERS",
                "STEP_APPROVAL_TYPE_EXPRESSION",
                "STEP_APPROVAL_TYPE_WEBHOOK",
                "STEP_APPROVAL_TYPE_RESOURCE_OWNERS",
                "STEP_APPROVAL_TYPE_AGENT",
                "STEP_APPROVAL_TYPE_ACCESS_PROFILE_OWNERS"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "subjectIds": {
            "description": "Search tasks where these users are the subject.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "taskStates": {
            "description": "Search tasks with this task state.",
            "items": {
              "enum": [
                "TASK_STATE_UNSPECIFIED",
                "TASK_STATE_OPEN",
                "TASK_STATE_CLOSED"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "taskTypes": {
            "description": "Search tasks with this task type. This is a oneOf, and needs an object, which can be empty, to sort.",
            "items": {
              "$ref": "#/components/schemas/c1.api.task.v1.TaskType"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "userEmploymentStatuses": {
            "description": "The userEmploymentStatuses field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Task Search Request",
        "type": "object",
        "x-speakeasy-name-override": "TaskSearchRequest"
      },
      "c1.api.task.v1.TaskSearchResponse": {
        "description": "The TaskSearchResponse message contains a list of results and a nextPageToken if applicable.",
        "properties": {
          "expanded": {
            "description": "The list of results containing up to X results, where X is the page size defined in the request.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "list": {
            "description": "List of serialized related objects.",
            "items": {
              "$ref": "#/components/schemas/c1.api.task.v1.TaskView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken is shown for the next page if the number of results is larger than the max page size.\n The server returns one page of results and the nextPageToken until all results are retreived.\n To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page.",
            "type": "string"
          }
        },
        "title": "Task Search Response",
        "type": "object",
        "x-speakeasy-name-override": "TaskSearchResponse"
      },
      "c1.api.task.v1.TaskServiceActionResponse": {
        "description": "A generic response for task action endpoints, containing the updated task and the ID of the action that was created.",
        "properties": {
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "taskView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskView"
              },
              {
                "type": "null"
              }
            ]
          },
          "ticketActionId": {
            "description": "The ID of the task action created by this request.",
            "type": "string"
          }
        },
        "title": "Task Service Action Response",
        "type": "object",
        "x-speakeasy-name-override": "TaskServiceActionResponse"
      },
      "c1.api.task.v1.TaskServiceCreateActionRequest": {
        "description": "The TaskServiceCreateActionRequest message submits a request action (requestable automation).",
        "properties": {
          "actionId": {
            "description": "The ID of the action to request.",
            "type": "string"
          },
          "description": {
            "description": "An optional description of the request.",
            "type": "string"
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "formValues": {
            "additionalProperties": true,
            "type": [
              "object",
              "null"
            ]
          }
        },
        "title": "Task Service Create Action Request",
        "type": "object",
        "x-speakeasy-name-override": "TaskServiceCreateActionRequest"
      },
      "c1.api.task.v1.TaskServiceCreateActionResponse": {
        "description": "The TaskServiceCreateActionResponse returns the created action task with optional expanded related objects.",
        "properties": {
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "readOnly": true,
              "type": "object"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "taskView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskView"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Task Service Create Action Response",
        "type": "object",
        "x-speakeasy-name-override": "TaskServiceCreateActionResponse"
      },
      "c1.api.task.v1.TaskServiceCreateGrantRequest": {
        "description": "Create a grant task.",
        "properties": {
          "appEntitlementId": {
            "description": "The ID of the app entitlement to grant access to.",
            "type": "string"
          },
          "appId": {
            "description": "The ID of the app that is associated with the entitlement.",
            "type": "string"
          },
          "appUserId": {
            "description": "The application account ID receiving access. Required unless identityUserId is set. If both are supplied, the account must belong to that user.",
            "type": "string"
          },
          "description": {
            "description": "The description of the request.",
            "type": "string"
          },
          "emergencyAccess": {
            "description": "Boolean stating whether or not the task is marked as emergency access.",
            "type": "boolean"
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "grantDuration": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "identityUserId": {
            "description": "The C1 user ID receiving access. Required unless appUserId is set. If both are supplied, the account must belong to this user.",
            "type": "string"
          },
          "requestData": {
            "additionalProperties": true,
            "type": [
              "object",
              "null"
            ]
          },
          "source": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskGrantSource"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "appId",
          "appEntitlementId"
        ],
        "title": "Task Service Create Grant Request",
        "type": "object",
        "x-speakeasy-name-override": "TaskServiceCreateGrantRequest"
      },
      "c1.api.task.v1.TaskServiceCreateGrantResponse": {
        "description": "The TaskServiceCreateGrantResponse returns a task view which has a task including JSONPATHs to the expanded items in the expanded array.",
        "properties": {
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "readOnly": true,
              "type": "object"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "taskView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskView"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Task Service Create Grant Response",
        "type": "object",
        "x-speakeasy-name-override": "TaskServiceCreateGrantResponse"
      },
      "c1.api.task.v1.TaskServiceCreateOffboardingRequest": {
        "description": "Create an offboarding task.",
        "properties": {
          "description": {
            "description": "The description of the offboarding request.",
            "type": "string"
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "subjectUserId": {
            "description": "The ID of the user to offboard.",
            "type": "string"
          }
        },
        "title": "Task Service Create Offboarding Request",
        "type": "object",
        "x-speakeasy-name-override": "TaskServiceCreateOffboardingRequest"
      },
      "c1.api.task.v1.TaskServiceCreateOffboardingResponse": {
        "description": "The TaskServiceCreateOffboardingResponse returns the created offboarding task with optional expanded related objects.",
        "properties": {
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "readOnly": true,
              "type": "object"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "taskView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskView"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Task Service Create Offboarding Response",
        "type": "object",
        "x-speakeasy-name-override": "TaskServiceCreateOffboardingResponse"
      },
      "c1.api.task.v1.TaskServiceCreateResourceActionRequest": {
        "description": "The TaskServiceCreateResourceActionRequest submits a request to execute a connector resource-create action, for example creating a group from a group template.",
        "properties": {
          "actionId": {
            "description": "The ID of the resource-create action to execute.",
            "type": "string"
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "formValues": {
            "additionalProperties": true,
            "type": [
              "object",
              "null"
            ]
          }
        },
        "required": [
          "actionId"
        ],
        "title": "Task Service Create Resource Action Request",
        "type": "object",
        "x-speakeasy-name-override": "TaskServiceCreateResourceActionRequest"
      },
      "c1.api.task.v1.TaskServiceCreateResourceActionResponse": {
        "description": "The TaskServiceCreateResourceActionResponse returns the created action task with optional expanded related objects.",
        "properties": {
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "readOnly": true,
              "type": "object"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "taskView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskView"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Task Service Create Resource Action Response",
        "type": "object",
        "x-speakeasy-name-override": "TaskServiceCreateResourceActionResponse"
      },
      "c1.api.task.v1.TaskServiceCreateRevokeRequest": {
        "description": "Create a revoke task.",
        "properties": {
          "appEntitlementId": {
            "description": "The ID of the app entitlement to revoke access to.",
            "type": "string"
          },
          "appId": {
            "description": "The ID of the app associated with the entitlement.",
            "type": "string"
          },
          "appUserId": {
            "description": "The application account ID whose access is being revoked. Required unless identityUserId is set. If both are supplied, the account must belong to that user.",
            "type": "string"
          },
          "description": {
            "description": "The description of the request.",
            "type": "string"
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "identityUserId": {
            "description": "The C1 user ID whose access is being revoked. Required unless appUserId is set. If both are supplied, the account must belong to this user.",
            "type": "string"
          }
        },
        "required": [
          "appId",
          "appEntitlementId"
        ],
        "title": "Task Service Create Revoke Request",
        "type": "object",
        "x-speakeasy-name-override": "TaskServiceCreateRevokeRequest"
      },
      "c1.api.task.v1.TaskServiceCreateRevokeResponse": {
        "description": "The TaskServiceCreateRevokeResponse returns a task view which has a task including JSONPATHs to the expanded items in the expanded array.",
        "properties": {
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "taskView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskView"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Task Service Create Revoke Response",
        "type": "object",
        "x-speakeasy-name-override": "TaskServiceCreateRevokeResponse"
      },
      "c1.api.task.v1.TaskServiceCreateSpendRemedyRequest": {
        "description": "TaskServiceCreateSpendRemedyRequest requests a scoped change through the configured policy.\n Beneficiary, operation and authority are derived from the caller's verified refusal.\n\nThis message contains a oneof named requested_change. Only a single field of the following list may be set at a time:\n  - personalExtension\n  - sharedIncrease\n  - resume\n",
        "properties": {
          "appId": {
            "description": "Narrows delivered audience proof. An APP-scoped refusal may supply this\n context; other scopes require it. The verified receipt determines the app.",
            "type": "string"
          },
          "blockId": {
            "description": "The blockId field.",
            "type": "string"
          },
          "personalExtension": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.SpendRemedyPersonalExtensionRequest"
              },
              {
                "type": "null"
              }
            ]
          },
          "predecessorTaskId": {
            "description": "Explicit reconsideration names the current closed request.",
            "type": "string"
          },
          "reason": {
            "description": "The reason field.",
            "type": "string"
          },
          "resume": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.SpendRemedyResumeRequest"
              },
              {
                "type": "null"
              }
            ]
          },
          "sharedIncrease": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.SpendRemedySharedIncreaseRequest"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Task Service Create Spend Remedy Request",
        "type": "object",
        "x-speakeasy-name-override": "TaskServiceCreateSpendRemedyRequest"
      },
      "c1.api.task.v1.TaskServiceCreateSpendRemedyResponse": {
        "description": "The TaskServiceCreateSpendRemedyResponse message.",
        "properties": {
          "task": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Task Service Create Spend Remedy Response",
        "type": "object",
        "x-speakeasy-name-override": "TaskServiceCreateSpendRemedyResponse"
      },
      "c1.api.task.v1.TaskServiceGetResponse": {
        "description": "The TaskServiceGetResponse returns a task view which has a task including JSONPATHs to the expanded items in the expanded array.",
        "properties": {
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "readOnly": true,
              "type": "object"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "taskView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskView"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Task Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "TaskServiceGetResponse"
      },
      "c1.api.task.v1.TaskServiceGetSpendRemedyReviewResponse": {
        "description": "The TaskServiceGetSpendRemedyReviewResponse message.",
        "properties": {
          "review": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.SpendRemedyReview"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Task Service Get Spend Remedy Review Response",
        "type": "object",
        "x-speakeasy-name-override": "TaskServiceGetSpendRemedyReviewResponse"
      },
      "c1.api.task.v1.TaskType": {
        "description": "Task Type provides configuration for the type of task: certify, grant, or revoke\n\nThis message contains a oneof named task_type. Only a single field of the following list may be set at a time:\n  - grant\n  - revoke\n  - certify\n  - offboarding\n  - action\n  - finding\n",
        "properties": {
          "action": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskTypeAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "certify": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskTypeCertify"
              },
              {
                "type": "null"
              }
            ]
          },
          "finding": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskTypeFinding"
              },
              {
                "type": "null"
              }
            ]
          },
          "grant": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskTypeGrant"
              },
              {
                "type": "null"
              }
            ]
          },
          "offboarding": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskTypeOffboarding"
              },
              {
                "type": "null"
              }
            ]
          },
          "revoke": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskTypeRevoke"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Task Type",
        "type": "object",
        "x-speakeasy-name-override": "TaskType"
      },
      "c1.api.task.v1.TaskTypeAction": {
        "description": "The TaskTypeAction message.\n\nThis message contains a oneof named target_object. Only a single field of the following list may be set at a time:\n  - scopeRole\n  - toolCall\n  - finding\n  - credentialIssue\n  - accessProfileComponent\n",
        "properties": {
          "accessProfileComponent": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.AccessProfileComponentTarget"
              },
              {
                "type": "null"
              }
            ]
          },
          "actionId": {
            "description": "The ID of the admin-authored action to execute. Empty for synthesized\n action tickets (e.g. scope-role grants) — those carry dispatch\n configuration on action_instance and target_object instead.",
            "readOnly": true,
            "type": "string"
          },
          "actionInstance": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.ActionInstance"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAppEntitlementIds": {
            "description": "The C1 IDs of the AppEntitlements materialized from the connector response\n (for a group, typically its members and owners entitlements). Use these to\n request access, attach a virtual entitlement, or otherwise manage the new\n resource. Empty until outcome is SUCCESS; may be empty on SUCCESS if\n materialization was skipped or failed, in which case the entitlements\n appear after the next connector sync.",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "createdAppResourceId": {
            "description": "Populated when a resource-create action completes: the C1 ID of the\n AppResource materialized from the connector response.",
            "readOnly": true,
            "type": "string"
          },
          "createdAppResourceTypeId": {
            "description": "The resource type ID of the materialized AppResource.",
            "readOnly": true,
            "type": "string"
          },
          "credentialIssue": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.CredentialIssueTarget"
              },
              {
                "type": "null"
              }
            ]
          },
          "displayName": {
            "description": "Display label captured on the action snapshot at ticket-creation time.\n Stable under admin renames to a referenced Action row and populated for\n synthesized tickets that have no Action row at all. UI reads this to\n render the task title without an Action fetch.",
            "readOnly": true,
            "type": "string"
          },
          "finding": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.FindingTarget"
              },
              {
                "type": "null"
              }
            ]
          },
          "formValues": {
            "additionalProperties": true,
            "readOnly": true,
            "type": [
              "object",
              "null"
            ]
          },
          "outcome": {
            "description": "The outcome field.",
            "enum": [
              "ACTION_OUTCOME_UNSPECIFIED",
              "ACTION_OUTCOME_SUCCESS",
              "ACTION_OUTCOME_DENIED",
              "ACTION_OUTCOME_ERROR",
              "ACTION_OUTCOME_CANCELLED"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "outcomeTime": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "partialResult": {
            "description": "The resource was created, but some requested effects remain unconfirmed.",
            "readOnly": true,
            "type": "boolean"
          },
          "scopeRole": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.ScopeRole"
              },
              {
                "type": "null"
              }
            ]
          },
          "source": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskActionSource"
              },
              {
                "type": "null"
              }
            ]
          },
          "toolCall": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.GatedToolCallTarget"
              },
              {
                "type": "null"
              }
            ]
          },
          "type": {
            "description": "Flavor of action the ticket represents — mirrors the snapshot's\n target_ref variant.",
            "enum": [
              "TYPE_UNSPECIFIED",
              "TYPE_GRANT",
              "TYPE_WORKFLOW",
              "TYPE_RESOURCE_ACTION",
              "TYPE_TOOL_CALL",
              "TYPE_MANUAL",
              "TYPE_CREDENTIAL_ISSUE",
              "TYPE_SPEND_REMEDY"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "unaddedMemberCount": {
            "description": "Selected members whose addition the connector could not confirm.",
            "format": "uint32",
            "readOnly": true,
            "type": "integer"
          }
        },
        "title": "Task Type Action",
        "type": "object",
        "x-speakeasy-name-override": "TaskTypeAction"
      },
      "c1.api.task.v1.TaskTypeCertify": {
        "description": "The TaskTypeCertify message indicates that a task is a certify task and all related details.\n\nThis message contains a oneof named principal. Only a single field of the following list may be set at a time:\n  - resource\n",
        "properties": {
          "accessReviewId": {
            "description": "The ID of the access review.",
            "readOnly": true,
            "type": "string"
          },
          "accessReviewSelection": {
            "description": "The ID of the specific access review object that owns this certify task. This is also set on a revoke task if the revoke task is created from the denied outcome of a certify task.",
            "readOnly": true,
            "type": "string"
          },
          "appEntitlementId": {
            "description": "The ID of the app entitlement.",
            "readOnly": true,
            "type": "string"
          },
          "appId": {
            "description": "The ID of the app.",
            "readOnly": true,
            "type": "string"
          },
          "appUserId": {
            "description": "The ID of the app user.",
            "readOnly": true,
            "type": "string"
          },
          "identityUserId": {
            "description": "The ID of the user.",
            "readOnly": true,
            "type": "string"
          },
          "outcome": {
            "description": "The outcome of the certification.",
            "enum": [
              "CERTIFY_OUTCOME_UNSPECIFIED",
              "CERTIFY_OUTCOME_CERTIFIED",
              "CERTIFY_OUTCOME_DECERTIFIED",
              "CERTIFY_OUTCOME_ERROR",
              "CERTIFY_OUTCOME_CANCELLED",
              "CERTIFY_OUTCOME_WAIT_TIMED_OUT"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "outcomeTime": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "resource": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppResourceRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "reviewSubject": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.ReviewSubject"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Task Type Certify",
        "type": "object",
        "x-speakeasy-name-override": "TaskTypeCertify"
      },
      "c1.api.task.v1.TaskTypeFinding": {
        "description": "The TaskTypeFinding message.",
        "properties": {
          "findingId": {
            "description": "Reference to the source finding.",
            "readOnly": true,
            "type": "string"
          },
          "findingType": {
            "description": "The finding type discriminator.",
            "readOnly": true,
            "type": "string"
          },
          "outcome": {
            "description": "The outcome field.",
            "enum": [
              "FINDING_TASK_OUTCOME_UNSPECIFIED",
              "FINDING_TASK_OUTCOME_REMEDIATED",
              "FINDING_TASK_OUTCOME_RISK_ACCEPTED",
              "FINDING_TASK_OUTCOME_CANCELLED"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "outcomeTime": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Task Type Finding",
        "type": "object",
        "x-speakeasy-name-override": "TaskTypeFinding"
      },
      "c1.api.task.v1.TaskTypeGrant": {
        "description": "The TaskTypeGrant message indicates that a task is a grant task and all related details.",
        "properties": {
          "appEntitlementId": {
            "description": "The ID of the app entitlement.",
            "readOnly": true,
            "type": "string"
          },
          "appId": {
            "description": "The ID of the app.",
            "readOnly": true,
            "type": "string"
          },
          "appUserId": {
            "description": "The ID of the app user.",
            "readOnly": true,
            "type": "string"
          },
          "grantDuration": {
            "format": "duration",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "identityUserId": {
            "description": "The ID of the user.",
            "readOnly": true,
            "type": "string"
          },
          "outcome": {
            "description": "The outcome of the grant.",
            "enum": [
              "GRANT_OUTCOME_UNSPECIFIED",
              "GRANT_OUTCOME_GRANTED",
              "GRANT_OUTCOME_DENIED",
              "GRANT_OUTCOME_ERROR",
              "GRANT_OUTCOME_CANCELLED",
              "GRANT_OUTCOME_WAIT_TIMED_OUT"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "outcomeTime": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "source": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskGrantSource"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Task Type Grant",
        "type": "object",
        "x-speakeasy-name-override": "TaskTypeGrant"
      },
      "c1.api.task.v1.TaskTypeOffboarding": {
        "description": "The TaskTypeOffboarding message.",
        "properties": {
          "outcome": {
            "description": "The outcome field.",
            "enum": [
              "OFFBOARDING_OUTCOME_UNSPECIFIED",
              "OFFBOARDING_OUTCOME_IN_PROGRESS",
              "OFFBOARDING_OUTCOME_DONE",
              "OFFBOARDING_OUTCOME_ERROR",
              "OFFBOARDING_OUTCOME_CANCELLED"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "outcomeTime": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "subjectUserId": {
            "description": "The subjectUserId field.",
            "readOnly": true,
            "type": "string"
          }
        },
        "title": "Task Type Offboarding",
        "type": "object",
        "x-speakeasy-name-override": "TaskTypeOffboarding"
      },
      "c1.api.task.v1.TaskTypeRevoke": {
        "description": "The TaskTypeRevoke message indicates that a task is a revoke task and all related details.\n\nThis message contains a oneof named principal. Only a single field of the following list may be set at a time:\n  - resource\n",
        "properties": {
          "appEntitlementId": {
            "description": "The ID of the app entitlement.",
            "readOnly": true,
            "type": "string"
          },
          "appId": {
            "description": "The ID of the app.",
            "readOnly": true,
            "type": "string"
          },
          "appUserId": {
            "description": "The ID of the app user.",
            "readOnly": true,
            "type": "string"
          },
          "identityUserId": {
            "description": "The ID of the user.",
            "readOnly": true,
            "type": "string"
          },
          "outcome": {
            "description": "The outcome of the revoke.",
            "enum": [
              "REVOKE_OUTCOME_UNSPECIFIED",
              "REVOKE_OUTCOME_REVOKED",
              "REVOKE_OUTCOME_DENIED",
              "REVOKE_OUTCOME_ERROR",
              "REVOKE_OUTCOME_CANCELLED",
              "REVOKE_OUTCOME_WAIT_TIMED_OUT"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "outcomeTime": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "resource": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppResourceRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "source": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskRevokeSource"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Task Type Revoke",
        "type": "object",
        "x-speakeasy-name-override": "TaskTypeRevoke"
      },
      "c1.api.task.v1.TaskView": {
        "description": "Contains a task and JSONPATH expressions that describe where in the expanded array related objects are located. This view can be used to display a fully-detailed dashboard of task information.",
        "properties": {
          "accessReviewPath": {
            "description": "JSONPATH expression indicating the location of the AccessReview object in the expanded array",
            "readOnly": true,
            "type": "string"
          },
          "appPath": {
            "description": "JSONPATH expression indicating the location of the App object in the expanded array",
            "readOnly": true,
            "type": "string"
          },
          "appUserLastUsagePath": {
            "description": "JSONPATH expression indicating the location of the AppUser last usage timestamp in the expanded array",
            "readOnly": true,
            "type": "string"
          },
          "appUserPath": {
            "description": "JSONPATH expression indicating the location of the AppUser object in the expanded array",
            "readOnly": true,
            "type": "string"
          },
          "approversPath": {
            "description": "JSONPATH expression indicating the location of the ApproverUsers objects in the expanded array. These are the users who have approved or denied this task.",
            "readOnly": true,
            "type": "string"
          },
          "createdByUserPath": {
            "description": "JSONPATH expression indicating the location of the object of the User that created the ticket in the expanded array",
            "readOnly": true,
            "type": "string"
          },
          "entitlementsPath": {
            "description": "JSONPATH expression indicating the location of the Entitlements objects in the expanded array",
            "readOnly": true,
            "type": "string"
          },
          "identityUserPath": {
            "description": "JSONPATH expression indicating the location of the User object of the User that this task is targeting in the expanded array. This is the user that is the identity when the target of a task is an app user.",
            "readOnly": true,
            "type": "string"
          },
          "insightsPath": {
            "description": "JSONPATH expression indicating the location of the Insights objects in the expanded array",
            "readOnly": true,
            "type": "string"
          },
          "objectPermissions": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.authorization.v1.ActorObjectPermissions"
              },
              {
                "type": "null"
              }
            ]
          },
          "principalResourcePath": {
            "description": "JSONPATH expression indicating the location of the AppResource under review for a resource-principal certify task in the expanded array.",
            "readOnly": true,
            "type": "string"
          },
          "resourceBindingsPath": {
            "description": "JSONPATH expression indicating the location of the EntitlementScopeBindingList object in the expanded array.",
            "readOnly": true,
            "type": "string"
          },
          "roleResourcePath": {
            "description": "JSONPATH expression indicating the location of the role AppResource for a scope-role action task in the expanded array.",
            "readOnly": true,
            "type": "string"
          },
          "scopeResourcePath": {
            "description": "JSONPATH expression indicating the location of the scope AppResource for a scope-role action task in the expanded array.",
            "readOnly": true,
            "type": "string"
          },
          "stepApproversPath": {
            "description": "JSONPATH expression indicating the location of the StepApproverUsers objects in the expanded array",
            "readOnly": true,
            "type": "string"
          },
          "task": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.Task"
              },
              {
                "type": "null"
              }
            ]
          },
          "userPath": {
            "description": "JSONPATH expression indicating the location of the User object in the expanded array. This is the user that is a direct target of the ticket without a specific relationship to a potentially non-existent app user.",
            "readOnly": true,
            "type": "string"
          }
        },
        "title": "Task View",
        "type": "object",
        "x-speakeasy-name-override": "TaskView"
      },
      "c1.api.terraform_export.v1.CompositeKeyField": {
        "description": "CompositeKeyField names one sibling component of a composite-key\n reference lookup.",
        "properties": {
          "c1Field": {
            "description": "C1 API field name on the parent message (snake_case proto\n field). The collector reads the runtime value at this path.",
            "type": "string"
          },
          "tfField": {
            "description": "Attribute name in the Terraform data source's `refs[]` struct.\n Usually identical to c1_field (the conductorone provider\n matches them 1:1 today). Distinct fields anyway so a future\n provider rename is wire-safe — no migration needed.",
            "type": "string"
          }
        },
        "title": "Composite Key Field",
        "type": "object",
        "x-speakeasy-name-override": "CompositeKeyField"
      },
      "c1.api.terraform_export.v1.CompositeKeyFieldSet": {
        "description": "CompositeKeyFieldSet groups a non-empty set of composite-key\n fields as declared by one or more consumer reference sites that\n target the same Terraform type. Used in `TFSchemaMapping\n .referer_shapes` (the \"inverted index\" of composite-key shapes\n targeting this kind) so a multi-root producer can register\n canonical lookup keys for every shape its consumers might\n compute.\n\n Invariant: `fields` MUST be non-empty. The bare-id (single-id)\n form is implicit — every producer registers under\n `canonicalRefKey(id, {})` unconditionally, and consumer sites\n with empty composite_key_fields are not represented here. The\n backend's inverted-index computation skips them; including an\n empty `fields` would just round-trip to the bare-id form and\n produce a duplicate registration.",
        "properties": {
          "fields": {
            "description": "The fields field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.terraform_export.v1.CompositeKeyField"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Composite Key Field Set",
        "type": "object",
        "x-speakeasy-name-override": "CompositeKeyFieldSet"
      },
      "c1.api.terraform_export.v1.EnumValue": {
        "description": "EnumValue is one declared variant of a proto enum.",
        "properties": {
          "name": {
            "description": "Full proto enum value name (e.g. \"POLICY_TYPE_GRANT\"). The\n conductorone provider accepts this verbatim as a quoted-string HCL\n literal.",
            "type": "string"
          },
          "number": {
            "description": "Proto enum number — the value on the wire (e.g. 1 for\n POLICY_TYPE_GRANT).",
            "format": "int32",
            "type": "integer"
          }
        },
        "title": "Enum Value",
        "type": "object",
        "x-speakeasy-name-override": "EnumValue"
      },
      "c1.api.terraform_export.v1.GetSchemaResponse": {
        "description": "The GetSchemaResponse message.",
        "properties": {
          "schema": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.terraform_export.v1.TFSchemaMapping"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Get Schema Response",
        "type": "object",
        "x-speakeasy-name-override": "GetSchemaResponse"
      },
      "c1.api.terraform_export.v1.ImportIDShape": {
        "description": "ImportIDShape describes the structure of the `id` value in a\n Terraform `import { to = ..., id = \"...\" }` block. Most resources use\n a single string; binding-style resources (App_Owner,\n App_Entitlement_Owner, …) use a composite of multiple field values.\n\nThis message contains a oneof named shape. Only a single field of the following list may be set at a time:\n  - singleString\n  - composite\n",
        "properties": {
          "composite": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.terraform_export.v1.ImportIDShape.Composite"
              },
              {
                "type": "null"
              }
            ]
          },
          "singleString": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.terraform_export.v1.ImportIDShape.SingleString"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Import Id Shape",
        "type": "object",
        "x-speakeasy-name-override": "ImportIDShape"
      },
      "c1.api.terraform_export.v1.ImportIDShape.Composite": {
        "description": "Composite import IDs combine values from multiple component fields\n per the declared `format`.",
        "properties": {
          "fields": {
            "description": "Component fields, in the order they participate in the import\n ID.",
            "items": {
              "$ref": "#/components/schemas/c1.api.terraform_export.v1.ImportIDShape.CompositeField"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "format": {
            "description": "Wire format the provider expects. Defaults to\n FORMAT_JSON_OBJECT.",
            "enum": [
              "FORMAT_JSON_OBJECT",
              "FORMAT_COLON_SEPARATED",
              "FORMAT_UNDERSCORE_SEPARATED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Composite",
        "type": "object",
        "x-speakeasy-name-override": "Composite"
      },
      "c1.api.terraform_export.v1.ImportIDShape.CompositeField": {
        "description": "CompositeField names one component of a composite import ID.",
        "properties": {
          "c1Field": {
            "description": "The C1 API field whose value supplies this component.",
            "type": "string"
          },
          "tfType": {
            "description": "The TF attribute type of the component value.",
            "enum": [
              "TF_TYPE_UNSPECIFIED",
              "TF_TYPE_STRING",
              "TF_TYPE_NUMBER",
              "TF_TYPE_BOOL",
              "TF_TYPE_LIST",
              "TF_TYPE_SET",
              "TF_TYPE_MAP",
              "TF_TYPE_OBJECT",
              "TF_TYPE_TUPLE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Composite Field",
        "type": "object",
        "x-speakeasy-name-override": "CompositeField"
      },
      "c1.api.terraform_export.v1.ImportIDShape.SingleString": {
        "description": "Single-string import IDs use the resource's id value verbatim.",
        "title": "Single String",
        "type": "object",
        "x-speakeasy-name-override": "SingleString"
      },
      "c1.api.terraform_export.v1.TFFieldMapping": {
        "description": "TFFieldMapping describes how one field of a C1 API object maps to one\n attribute of a Terraform block.",
        "properties": {
          "c1Field": {
            "description": "The C1 API field name (proto field name, snake_case).",
            "type": "string"
          },
          "computed": {
            "description": "Whether the server populates this field. A field that is\n `computed` and neither `optional` nor `required` is server-only —\n do not emit it in user-authored HCL.",
            "type": "boolean"
          },
          "elementTfType": {
            "description": "For collection fields (list/set/tuple/map) whose elements are\n primitives (string/number/bool), the TF type of those elements.\n TF_TYPE_UNSPECIFIED for non-collection fields and for collections\n of objects (where `nested_fields` describes the element shape).",
            "enum": [
              "TF_TYPE_UNSPECIFIED",
              "TF_TYPE_STRING",
              "TF_TYPE_NUMBER",
              "TF_TYPE_BOOL",
              "TF_TYPE_LIST",
              "TF_TYPE_SET",
              "TF_TYPE_MAP",
              "TF_TYPE_OBJECT",
              "TF_TYPE_TUPLE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "enumValues": {
            "description": "Declared variants for fields whose C1-side proto type is an enum.\n Empty for non-enum fields. The conductorone provider accepts the\n full proto enum name as a quoted string (e.g.\n `policy_type = \"POLICY_TYPE_GRANT\"`); emit `EnumValue.name` as the\n literal value.",
            "items": {
              "$ref": "#/components/schemas/c1.api.terraform_export.v1.EnumValue"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nestedFields": {
            "description": "For object-typed fields and list/set/tuple fields whose elements\n are objects, the shape of the nested attributes. Empty for\n primitive scalars and primitive-element collections.",
            "items": {
              "$ref": "#/components/schemas/c1.api.terraform_export.v1.TFFieldMapping"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "oneofField": {
            "description": "When this Terraform attribute corresponds to one variant of a\n proto `oneof`, `oneof_field` names the proto oneof and\n `oneof_variant` names the active case. Both unset for regular\n (non-oneof) fields, which is the common case.\n\n Example: a oneof `target` with variant `automation` on message\n `Action` exposed as the TF attribute `action_target_automation`:\n\n   oneof_field   = \"target\"\n   oneof_variant = \"automation\"",
            "type": "string"
          },
          "oneofVariant": {
            "description": "The oneofVariant field.",
            "type": "string"
          },
          "optional": {
            "description": "Whether the user may supply this field. May co-occur with\n `computed` (i.e. either the user or the server can set the value).",
            "type": "boolean"
          },
          "references": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.terraform_export.v1.TFReference"
              },
              {
                "type": "null"
              }
            ]
          },
          "required": {
            "description": "Whether the user must supply this field in HCL.",
            "type": "boolean"
          },
          "sensitive": {
            "description": "Whether the value is a secret. Sensitive values must not be\n rendered verbatim; emit a placeholder so callers wire the value\n through a Terraform variable or vault data source.",
            "type": "boolean"
          },
          "tfField": {
            "description": "The Terraform attribute name. Usually matches c1_field but may\n differ in casing or pluralization.",
            "type": "string"
          },
          "tfType": {
            "description": "The Terraform attribute type. For collections of structured\n objects, the element shape is in `nested_fields`. For collections\n of primitives, the element type is in `element_tf_type`.",
            "enum": [
              "TF_TYPE_UNSPECIFIED",
              "TF_TYPE_STRING",
              "TF_TYPE_NUMBER",
              "TF_TYPE_BOOL",
              "TF_TYPE_LIST",
              "TF_TYPE_SET",
              "TF_TYPE_MAP",
              "TF_TYPE_OBJECT",
              "TF_TYPE_TUPLE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Tf Field Mapping",
        "type": "object",
        "x-speakeasy-name-override": "TFFieldMapping"
      },
      "c1.api.terraform_export.v1.TFReference": {
        "description": "TFReference describes the Terraform type(s) an ID-shaped field may\n reference, plus any sibling fields needed to disambiguate a\n composite-key lookup.\n\n `tf_type_names` covers the polymorphic / preferred-default\n dimension. `composite_key_fields` covers the multi-key dimension —\n some referents can't be resolved with a single id (every\n `conductorone_app_entitlement` lookup needs `(app_id, id)`,\n every `conductorone_app_entitlement_user_binding` needs three\n keys, etc.).",
        "properties": {
          "compositeKeyFields": {
            "description": "Sibling fields on the SAME parent message whose runtime values\n must be paired with this reference's id to look the referent up\n via its Terraform data source.\n\n Examples (each entry's c1_field is the C1 proto field name on\n the parent message; tf_field is the attribute name in the data\n source's `refs[]` struct):\n\n   `AppEntitlementAutomation.app_entitlement_id` →\n     `[{c1_field: \"app_id\", tf_field: \"app_id\"}]`  (2 keys total)\n\n   `AppEntitlementUserBinding.app_user_id` →\n     `[{c1_field: \"app_id\",             tf_field: \"app_id\"},\n       {c1_field: \"app_entitlement_id\", tf_field: \"app_entitlement_id\"}]`\n     (3 keys total)\n\n   `AppResourceOwner.user_id` →\n     `[{c1_field: \"app_id\",               tf_field: \"app_id\"},\n       {c1_field: \"app_resource_type_id\", tf_field: \"app_resource_type_id\"},\n       {c1_field: \"app_resource_id\",      tf_field: \"app_resource_id\"}]`\n     (4 keys total)\n\n The reference id field itself is always emitted as `id` in the\n data source's ref struct (provider convention) — it is NOT\n re-listed here.\n\n Empty/unset means single-id lookup is sufficient (User, Policy,\n App today). Mirrors `ImportIDShape.Composite.fields`'s\n structured shape.",
            "items": {
              "$ref": "#/components/schemas/c1.api.terraform_export.v1.CompositeKeyField"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "tfTypeNames": {
            "description": "Candidate Terraform types this field may reference. The first\n entry is the preferred default when no other signal disambiguates.\n Empty means the field is not a reference.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Tf Reference",
        "type": "object",
        "x-speakeasy-name-override": "TFReference"
      },
      "c1.api.terraform_export.v1.TFSchemaMapping": {
        "description": "TFSchemaMapping describes how to translate one C1 API object into a\n single Terraform block. Variant-specific metadata (e.g. `import_id` for\n resources) lives on the `block` oneof.\n\nThis message contains a oneof named block. Only a single field of the following list may be set at a time:\n  - resource\n  - dataSource\n",
        "properties": {
          "dataSource": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.terraform_export.v1.TFSchemaMapping.DataSource"
              },
              {
                "type": "null"
              }
            ]
          },
          "fields": {
            "description": "Per-attribute mapping. Order matches the provider schema; preserve\n it when emitting for stable output.",
            "items": {
              "$ref": "#/components/schemas/c1.api.terraform_export.v1.TFFieldMapping"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "providerVersion": {
            "description": "The conductorone provider version this schema was derived from\n (e.g. \"1.0.40\").",
            "type": "string"
          },
          "refererShapes": {
            "description": "The set of distinct composite-key-field shapes that consumers\n declare when referencing this target via a TFReference. Used by\n the FE multi-root producer to enumerate canonical lookup keys for\n its `addressByImportId` registration so cross-root references\n collapse correctly to direct expressions regardless of which\n consumer site does the lookup.\n\n Each entry is one distinct shape (one `CompositeKeyFieldSet`\n with non-empty `fields`). The single-id (bare-id) form is\n implicit and is NOT represented here — every producer registers\n under `canonicalRefKey(id, {})` unconditionally as a baseline.\n\n Computed at schema-load time from `references_table.go` by\n grouping consumer-site `composite_key_fields` declarations\n by target tf_type and de-duplicating distinct shapes. Targets\n with no composite-key consumers (User, Policy, App today)\n ship an empty list.",
            "items": {
              "$ref": "#/components/schemas/c1.api.terraform_export.v1.CompositeKeyFieldSet"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "resource": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.terraform_export.v1.TFSchemaMapping.Resource"
              },
              {
                "type": "null"
              }
            ]
          },
          "tfTypeName": {
            "description": "The Terraform type identifier — the string immediately after the\n `resource` or `data` keyword in HCL (e.g. \"conductorone_app\").",
            "type": "string"
          }
        },
        "title": "Tf Schema Mapping",
        "type": "object",
        "x-speakeasy-name-override": "TFSchemaMapping"
      },
      "c1.api.terraform_export.v1.TFSchemaMapping.DataSource": {
        "description": "Data-source-specific schema metadata. Reserved for future use; empty\n in v1.",
        "title": "Data Source",
        "type": "object",
        "x-speakeasy-name-override": "DataSource"
      },
      "c1.api.terraform_export.v1.TFSchemaMapping.Resource": {
        "description": "Resource-specific schema metadata.",
        "properties": {
          "importId": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.terraform_export.v1.ImportIDShape"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Resource",
        "type": "object",
        "x-speakeasy-name-override": "Resource"
      },
      "c1.api.tsdb.v1.ForecastRollup": {
        "description": "ForecastRollup represents a single forecasted data point with uncertainty bounds.\n Note: field names are legacy (p10/p90); the actual quantile levels are p20/p50/p80.",
        "properties": {
          "p10": {
            "description": "The lower bound (p20) of the forecast. Field name is legacy.",
            "format": "int64",
            "type": "string"
          },
          "p50": {
            "description": "The median (p50) of the forecast.",
            "format": "int64",
            "type": "string"
          },
          "p90": {
            "description": "The upper bound (p80) of the forecast. Field name is legacy.",
            "format": "int64",
            "type": "string"
          },
          "timestamp": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Forecast Rollup",
        "type": "object",
        "x-speakeasy-name-override": "ForecastRollup"
      },
      "c1.api.tsdb.v1.GetMetricForecastResponse": {
        "description": "GetMetricForecastResponse contains the forecast for the requested metric.",
        "properties": {
          "forecastPoints": {
            "description": "The forecasted data points (future points only).",
            "items": {
              "$ref": "#/components/schemas/c1.api.tsdb.v1.ForecastRollup"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "historyDaysLoaded": {
            "description": "The number of historical days loaded as context for the model (includes hidden history).",
            "format": "uint32",
            "type": "integer"
          },
          "modelName": {
            "description": "The model identifier used for inference.",
            "type": "string"
          },
          "observedThrough": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Get Metric Forecast Response",
        "type": "object",
        "x-speakeasy-name-override": "GetMetricForecastResponse"
      },
      "c1.api.usage_event.v1.UsageResourceRef": {
        "description": "The UsageResourceRef message.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "connectorId": {
            "description": "The connectorId field.",
            "type": "string"
          },
          "resourceId": {
            "description": "The resourceId field.",
            "type": "string"
          },
          "resourceTypeId": {
            "description": "The resourceTypeId field.",
            "type": "string"
          }
        },
        "title": "Usage Resource Ref",
        "type": "object",
        "x-speakeasy-name-override": "UsageResourceRef"
      },
      "c1.api.user.v1.ExpiringUserDelegationBinding": {
        "description": "The ExpiringUserDelegationBinding message.",
        "properties": {
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "delegatedUserId": {
            "description": "The delegatedUserId field.",
            "type": "string"
          },
          "deletedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "expirationAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "startAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "userId": {
            "description": "The userId field.",
            "type": "string"
          }
        },
        "title": "Expiring User Delegation Binding",
        "type": "object",
        "x-speakeasy-name-override": "ExpiringUserDelegationBinding"
      },
      "c1.api.user.v1.GetUserProfileTypesResponse": {
        "description": "GetUserProfileTypesResponse is the response containing the profile types for a user.",
        "properties": {
          "profileTypes": {
            "description": "The list of profile types associated with the user across their connected apps.",
            "items": {
              "$ref": "#/components/schemas/c1.api.profiletype.v1.ProfileType"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Get User Profile Types Response",
        "type": "object",
        "x-speakeasy-name-override": "GetUserProfileTypesResponse"
      },
      "c1.api.user.v1.IntrospectRequest": {
        "description": "The IntrospectRequest message.",
        "properties": {
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserExpandMask"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Introspect Request",
        "type": "object",
        "x-speakeasy-name-override": "UserIntrospectRequest"
      },
      "c1.api.user.v1.IntrospectResponse": {
        "description": "The IntrospectResponse message.",
        "properties": {
          "expanded": {
            "description": "The expanded field.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "userView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserView"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Introspect Response",
        "type": "object",
        "x-speakeasy-name-override": "UserIntrospectResponse"
      },
      "c1.api.user.v1.SearchUsersRequest": {
        "description": "Search for users based on some filters.",
        "properties": {
          "delegateStatus": {
            "description": "Filter for users based on their delegate status.",
            "enum": [
              "DELEGATE_STATUS_UNSPECIFIED",
              "DELEGATE_STATUS_HAS_DELEGATE",
              "DELEGATE_STATUS_NO_DELEGATE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "delegatedUserIds": {
            "description": "Filter for users that have any of the delegated user IDs on this list.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "departments": {
            "description": "Search for users that have any of the departments on this list.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "email": {
            "description": "Search for users based on their email (exact match).",
            "type": "string"
          },
          "excludeIds": {
            "description": "An array of users IDs to exclude from the results.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "excludeOrigins": {
            "description": "Filter to exclude users with these origins.",
            "items": {
              "enum": [
                "USER_ORIGIN_UNSPECIFIED",
                "USER_ORIGIN_DIRECTORY",
                "USER_ORIGIN_LOCAL",
                "USER_ORIGIN_SYSTEM"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "excludeTypes": {
            "description": "An array of types to exclude from the results.",
            "items": {
              "enum": [
                "USER_TYPE_UNSPECIFIED",
                "USER_TYPE_SYSTEM",
                "USER_TYPE_HUMAN",
                "USER_TYPE_SERVICE",
                "USER_TYPE_AGENT"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "ids": {
            "description": "Deprecated. Use refs array instead.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "isDelegate": {
            "description": "Filter for users who are delegates of at least one other user.",
            "type": "boolean"
          },
          "jobTitles": {
            "description": "Search for users that have any of the job titles on this list.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "managerIds": {
            "description": "Search for users that have any of the manager IDs on this list.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "origins": {
            "description": "Filter to include only users with these origins.",
            "items": {
              "enum": [
                "USER_ORIGIN_UNSPECIFIED",
                "USER_ORIGIN_DIRECTORY",
                "USER_ORIGIN_LOCAL",
                "USER_ORIGIN_SYSTEM"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pageSize": {
            "description": "The pageSize where 0 \u003c= pageSize \u003c= 100. Values \u003c 10 will be set to 10. A value of 0 returns the default page size (currently 25)",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          },
          "query": {
            "description": "Query the apps with a fuzzy search on display name and emails.",
            "type": "string"
          },
          "refs": {
            "description": "An array of user refs to restrict the return values to by ID.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "roleIds": {
            "description": "Search for users that have any of the role IDs on this list.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "sourceAppIds": {
            "description": "Filter to include only users sourced from any of these apps (directories).\n Each value is an app ID; a user matches when its source_app_ids map\n contains any of the listed app IDs. Combined with `origins` using OR.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "userStatuses": {
            "description": "Search for users that have any of the statuses on this list. This can only be ENABLED, DISABLED, and DELETED",
            "items": {
              "enum": [
                "UNKNOWN",
                "ENABLED",
                "DISABLED",
                "DELETED"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Search Users Request",
        "type": "object",
        "x-speakeasy-name-override": "SearchUsersRequest"
      },
      "c1.api.user.v1.SearchUsersResponse": {
        "description": "The SearchUsersResponse message.",
        "properties": {
          "expanded": {
            "description": "List of related objects",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "list": {
            "description": "The list of results containing up to X results, where X is the page size defined in the request",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.UserView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken is shown for the next page if the number of results is larger than the max page size. The server returns one page of results and the nextPageToken until all results are retreived. To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page.",
            "type": "string"
          }
        },
        "title": "Search Users Response",
        "type": "object",
        "x-speakeasy-name-override": "SearchUsersResponse"
      },
      "c1.api.user.v1.SetExpiringUserDelegationBindingByAdminRequestInput": {
        "description": "SetExpiringUserDelegationBindingByAdminRequest is the request for an admin to set a temporary delegation binding for a user.",
        "properties": {
          "delegatedUserId": {
            "description": "The ID of the user who will act as delegate. Empty string removes the delegation.",
            "type": "string"
          },
          "delegationExpireAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "delegationStartAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Set Expiring User Delegation Binding By Admin Request",
        "type": "object",
        "x-speakeasy-name-override": "SetExpiringUserDelegationBindingByAdminRequest"
      },
      "c1.api.user.v1.SetExpiringUserDelegationBindingByAdminResponse": {
        "description": "SetExpiringUserDelegationBindingByAdminResponse is the response containing the created or updated delegation binding.",
        "properties": {
          "item": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.ExpiringUserDelegationBinding"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Set Expiring User Delegation Binding By Admin Response",
        "type": "object",
        "x-speakeasy-name-override": "SetExpiringUserDelegationBindingByAdminResponse"
      },
      "c1.api.user.v1.User": {
        "description": "The User object provides all of the details for an user, as well as some configuration.",
        "properties": {
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "delegatedUserId": {
            "description": "The id of the user to whom tasks will be automatically reassigned to.",
            "type": "string"
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "department": {
            "description": "The department which the user belongs to in the organization.",
            "readOnly": true,
            "type": "string"
          },
          "departmentSources": {
            "description": "A list of objects mapped based on department attribute mappings configured in the system.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeMappingSource"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "directoryIds": {
            "description": "A list of unique ids that represent different directories.",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "directoryStatus": {
            "description": "The status of the user in the directory.",
            "enum": [
              "UNKNOWN",
              "ENABLED",
              "DISABLED",
              "DELETED"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "directoryStatusSources": {
            "description": "A list of objects mapped based on directoryStatus attribute mappings configured in the system.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeMappingSource"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "displayName": {
            "description": "The display name of the user.",
            "readOnly": true,
            "type": "string"
          },
          "email": {
            "description": "This is the user's email.",
            "readOnly": true,
            "type": "string"
          },
          "emailSources": {
            "description": "A list of source data for the email attribute.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeMappingSource"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "emails": {
            "description": "This is a list of all of the user's emails from app users.",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "employeeIdSources": {
            "description": "A list of source data for the employee IDs attribute.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeMappingSource"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "employeeIds": {
            "description": "This is a list of all of the user's employee IDs from app users.",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "employmentStatus": {
            "description": "The users employment status.",
            "readOnly": true,
            "type": "string"
          },
          "employmentStatusSources": {
            "description": "A list of objects mapped based on employmentStatus attribute mappings configured in the system.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeMappingSource"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "employmentType": {
            "description": "The employment type of the user.",
            "readOnly": true,
            "type": "string"
          },
          "employmentTypeSources": {
            "description": "A list of objects mapped based on employmentType attribute mappings configured in the system.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeMappingSource"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "id": {
            "description": "A unique identifier of the user.",
            "readOnly": true,
            "type": "string"
          },
          "jobTitle": {
            "description": "The job title of the user.",
            "readOnly": true,
            "type": "string"
          },
          "jobTitleSources": {
            "description": "A list of objects mapped based on jobTitle attribute mappings configured in the system.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeMappingSource"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "managerIds": {
            "description": "A list of ids of the user's managers.",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "managerSources": {
            "description": "A list of objects mapped based on managerId attribute mappings configured in the system.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeMappingSource"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "origin": {
            "description": "The origin of the user, describing who owns the user's lifecycle.",
            "enum": [
              "USER_ORIGIN_UNSPECIFIED",
              "USER_ORIGIN_DIRECTORY",
              "USER_ORIGIN_LOCAL",
              "USER_ORIGIN_SYSTEM"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "profile": {
            "additionalProperties": true,
            "readOnly": true,
            "type": [
              "object",
              "null"
            ]
          },
          "roleIds": {
            "description": "A list of unique identifiers that maps to ConductorOne's user roles let you assign users permissions tailored to the work they do in the software.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "status": {
            "description": "The status of the user in the system.",
            "enum": [
              "UNKNOWN",
              "ENABLED",
              "DISABLED",
              "DELETED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "type": {
            "description": "The type of the user.",
            "enum": [
              "USER_TYPE_UNSPECIFIED",
              "USER_TYPE_SYSTEM",
              "USER_TYPE_HUMAN",
              "USER_TYPE_SERVICE",
              "USER_TYPE_AGENT"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "username": {
            "description": "This is the user's primary username. Typically sourced from the primary directory.",
            "readOnly": true,
            "type": "string"
          },
          "usernameSources": {
            "description": "A list of source data for the usernames attribute.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeMappingSource"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "usernames": {
            "description": "This is a list of all of the user's usernames from app users.",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "User",
        "type": "object",
        "x-speakeasy-name-override": "User"
      },
      "c1.api.user.v1.UserAttributeManagementServiceCreateRequest": {
        "description": "The UserAttributeManagementServiceCreateRequest message.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "readOnly": true,
            "type": "string"
          },
          "appUserProfileAttributeKey": {
            "description": "The appUserProfileAttributeKey field.",
            "readOnly": true,
            "type": "string"
          },
          "attributeType": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeType"
              },
              {
                "type": "null"
              }
            ]
          },
          "displayName": {
            "description": "The displayName field.",
            "readOnly": true,
            "type": "string"
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeMapConfigExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "fallbacks": {
            "description": "The fallbacks field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeMappingFallback"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "profileTypeIds": {
            "description": "The profileTypeIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "attributeType"
        ],
        "title": "User Attribute Management Service Create Request",
        "type": "object",
        "x-speakeasy-name-override": "UserAttributeManagementServiceCreateRequest"
      },
      "c1.api.user.v1.UserAttributeManagementServiceCreateResponse": {
        "description": "The UserAttributeManagementServiceCreateResponse message.",
        "properties": {
          "attribute": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeMappingView"
              },
              {
                "type": "null"
              }
            ]
          },
          "expanded": {
            "description": "The expanded field.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "User Attribute Management Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "UserAttributeManagementServiceCreateResponse"
      },
      "c1.api.user.v1.UserAttributeManagementServiceDeleteRequestInput": {
        "description": "The UserAttributeManagementServiceDeleteRequest message.",
        "title": "User Attribute Management Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "UserAttributeManagementServiceDeleteRequest"
      },
      "c1.api.user.v1.UserAttributeManagementServiceDeleteResponse": {
        "description": "The UserAttributeManagementServiceDeleteResponse message.",
        "title": "User Attribute Management Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "UserAttributeManagementServiceDeleteResponse"
      },
      "c1.api.user.v1.UserAttributeManagementServiceGetResponse": {
        "description": "The UserAttributeManagementServiceGetResponse message.",
        "properties": {
          "attribute": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeMappingView"
              },
              {
                "type": "null"
              }
            ]
          },
          "expanded": {
            "description": "The expanded field.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "User Attribute Management Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "UserAttributeManagementServiceGetResponse"
      },
      "c1.api.user.v1.UserAttributeManagementServiceListAttributeTypesResponse": {
        "description": "The UserAttributeManagementServiceListAttributeTypesResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeType"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "User Attribute Management Service List Attribute Types Response",
        "type": "object",
        "x-speakeasy-name-override": "UserAttributeManagementServiceListAttributeTypesResponse"
      },
      "c1.api.user.v1.UserAttributeManagementServiceListResponse": {
        "description": "The UserAttributeManagementServiceListResponse message.",
        "properties": {
          "expanded": {
            "description": "The expanded field.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeMappingView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "User Attribute Management Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "UserAttributeManagementServiceListResponse"
      },
      "c1.api.user.v1.UserAttributeManagementServiceUpdateRequestInput": {
        "description": "The UserAttributeManagementServiceUpdateRequest message.",
        "properties": {
          "attributeType": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeType"
              },
              {
                "type": "null"
              }
            ]
          },
          "expandMask": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeMapConfigExpandMask"
              },
              {
                "type": "null"
              }
            ]
          },
          "fallbacks": {
            "description": "The fallbacks field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeMappingFallback"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "profileTypeIds": {
            "description": "The profileTypeIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "attributeType"
        ],
        "title": "User Attribute Management Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "UserAttributeManagementServiceUpdateRequest"
      },
      "c1.api.user.v1.UserAttributeManagementServiceUpdateResponse": {
        "description": "The UserAttributeManagementServiceUpdateResponse message.",
        "properties": {
          "attribute": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeMappingView"
              },
              {
                "type": "null"
              }
            ]
          },
          "expanded": {
            "description": "The expanded field.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "User Attribute Management Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "UserAttributeManagementServiceUpdateResponse"
      },
      "c1.api.user.v1.UserAttributeMapConfigExpandMask": {
        "description": "The UserAttributeMapConfigExpandMask message.",
        "properties": {
          "paths": {
            "description": "The paths field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "User Attribute Map Config Expand Mask",
        "type": "object",
        "x-speakeasy-name-override": "UserAttributeMapConfigExpandMask"
      },
      "c1.api.user.v1.UserAttributeMapping": {
        "description": "The UserAttributeMapping message.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "appUserProfileAttributeKey": {
            "description": "The appUserProfileAttributeKey field.",
            "type": "string"
          },
          "attributeType": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeType"
              },
              {
                "type": "null"
              }
            ]
          },
          "count": {
            "description": "The count field.",
            "format": "int32",
            "type": "integer"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "evaluationErrorCount": {
            "description": "The evaluationErrorCount field.",
            "format": "int32",
            "readOnly": true,
            "type": "integer"
          },
          "fallbacks": {
            "description": "The fallbacks field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeMappingFallback"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "priority": {
            "description": "The priority field.",
            "format": "uint32",
            "readOnly": true,
            "type": "integer"
          },
          "profileTypeIds": {
            "description": "Profile type bindings are read from an asynchronously updated projection and may be temporarily stale immediately after a create or update.",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": [
              "array",
              "null"
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "User Attribute Mapping",
        "type": "object",
        "x-speakeasy-name-override": "UserAttributeMapping"
      },
      "c1.api.user.v1.UserAttributeMappingFallback": {
        "description": "The UserAttributeMappingFallback message.\n\nThis message contains a oneof named fallback. Only a single field of the following list may be set at a time:\n  - app\n  - appUserProfile\n  - celExpression\n",
        "properties": {
          "app": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeTypeConfigApp"
              },
              {
                "type": "null"
              }
            ]
          },
          "appUserProfile": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeTypeConfigAppUserProfile"
              },
              {
                "type": "null"
              }
            ]
          },
          "celExpression": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeTypeConfigCelExpression"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "User Attribute Mapping Fallback",
        "type": "object",
        "x-speakeasy-name-override": "UserAttributeMappingFallback"
      },
      "c1.api.user.v1.UserAttributeMappingSource": {
        "description": "The UserAttributeMappingSource message.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "appUserId": {
            "description": "The appUserId field.",
            "type": "string"
          },
          "appUserProfileAttributeKey": {
            "description": "The appUserProfileAttributeKey field.",
            "type": "string"
          },
          "priority": {
            "description": "Lower number = higher precedence; sources[0] is the winning source.",
            "format": "uint32",
            "readOnly": true,
            "type": "integer"
          },
          "userAttributeMappingId": {
            "description": "The userAttributeMappingId field.",
            "type": "string"
          },
          "value": {
            "description": "The value field.",
            "type": "string"
          }
        },
        "title": "User Attribute Mapping Source",
        "type": "object",
        "x-speakeasy-name-override": "UserAttributeMappingSource"
      },
      "c1.api.user.v1.UserAttributeMappingView": {
        "description": "The UserAttributeMappingView message.",
        "properties": {
          "appPath": {
            "description": "The appPath field.",
            "type": "string"
          },
          "fallbacksPath": {
            "description": "The fallbacksPath field.",
            "type": "string"
          },
          "userAttributeMapping": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeMapping"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "User Attribute Mapping View",
        "type": "object",
        "x-speakeasy-name-override": "UserAttributeMappingView"
      },
      "c1.api.user.v1.UserAttributeType": {
        "description": "The UserAttributeType message.\n\nThis message contains a oneof named config. Only a single field of the following list may be set at a time:\n  - app\n  - appUserProfile\n  - customAppUserProfile\n  - celExpression\n",
        "properties": {
          "app": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeTypeConfigApp"
              },
              {
                "type": "null"
              }
            ]
          },
          "appUserProfile": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeTypeConfigAppUserProfile"
              },
              {
                "type": "null"
              }
            ]
          },
          "celExpression": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeTypeConfigCelExpression"
              },
              {
                "type": "null"
              }
            ]
          },
          "customAppUserProfile": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeTypeConfigCustomAppUserProfile"
              },
              {
                "type": "null"
              }
            ]
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "title": "User Attribute Type",
        "type": "object",
        "x-speakeasy-name-override": "UserAttributeType"
      },
      "c1.api.user.v1.UserAttributeTypeConfigApp": {
        "description": "The UserAttributeTypeConfigApp message.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          }
        },
        "title": "User Attribute Type Config App",
        "type": "object",
        "x-speakeasy-name-override": "UserAttributeTypeConfigApp"
      },
      "c1.api.user.v1.UserAttributeTypeConfigAppUserProfile": {
        "description": "The UserAttributeTypeConfigAppUserProfile message.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "appUserProfileAttributeKey": {
            "description": "The appUserProfileAttributeKey field.",
            "type": "string"
          }
        },
        "title": "User Attribute Type Config App User Profile",
        "type": "object",
        "x-speakeasy-name-override": "UserAttributeTypeConfigAppUserProfile"
      },
      "c1.api.user.v1.UserAttributeTypeConfigCelExpression": {
        "description": "The UserAttributeTypeConfigCelExpression message.",
        "properties": {
          "celExpression": {
            "description": "The celExpression field.",
            "type": "string"
          },
          "userProfileAttributeKey": {
            "description": "The userProfileAttributeKey field.",
            "type": "string"
          }
        },
        "title": "User Attribute Type Config Cel Expression",
        "type": "object",
        "x-speakeasy-name-override": "UserAttributeTypeConfigCelExpression"
      },
      "c1.api.user.v1.UserAttributeTypeConfigCustomAppUserProfile": {
        "description": "The UserAttributeTypeConfigCustomAppUserProfile message.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "appUserProfileAttributeKey": {
            "description": "The appUserProfileAttributeKey field.",
            "type": "string"
          },
          "userProfileAttributeKey": {
            "description": "The userProfileAttributeKey field.",
            "type": "string"
          }
        },
        "title": "User Attribute Type Config Custom App User Profile",
        "type": "object",
        "x-speakeasy-name-override": "UserAttributeTypeConfigCustomAppUserProfile"
      },
      "c1.api.user.v1.UserExpandMask": {
        "description": "The user expand mask is used to indicate which related objects should be expanded in the response.\n The supported paths are 'role_ids', 'manager_ids', 'delegated_user_id', 'directory_ids', and '*'.",
        "properties": {
          "paths": {
            "description": "An array of paths to be expanded in the response.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "User Expand Mask",
        "type": "object",
        "x-speakeasy-name-override": "UserExpandMask"
      },
      "c1.api.user.v1.UserRef": {
        "description": "A reference to a user.",
        "properties": {
          "id": {
            "description": "The id of the user.",
            "type": "string"
          }
        },
        "title": "User Ref",
        "type": "object",
        "x-speakeasy-name-override": "UserRef"
      },
      "c1.api.user.v1.UserServiceGetResponse": {
        "description": "The UserServiceGetResponse returns a user view which has a user including JSONPATHs to the expanded items in the expanded array.",
        "properties": {
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "userView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserView"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "User Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "UserServiceGetResponse"
      },
      "c1.api.user.v1.UserServiceListResponse": {
        "description": "The UserServiceListResponse message contains a list of results and a nextPageToken if applicable.",
        "properties": {
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "list": {
            "description": "The list of results containing up to X results, where X is the page size defined in the request",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.UserView"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken is shown for the next page if the number of results is larger than the max page size.\n The server returns one page of results and the nextPageToken until all results are retreived.\n To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page.",
            "type": "string"
          }
        },
        "title": "User Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "UserServiceListResponse"
      },
      "c1.api.user.v1.UserView": {
        "description": "The UserView object provides a user response object, as well as JSONPATHs to related objects provided by expanders.",
        "properties": {
          "delegatedUserPath": {
            "description": "JSONPATH expression indicating the location of the user objects of delegates of the current user in the expanded array.",
            "readOnly": true,
            "type": "string"
          },
          "directoriesPath": {
            "description": "JSONPATH expression indicating the location of directory objects in the expanded array.",
            "readOnly": true,
            "type": "string"
          },
          "managersPath": {
            "description": "JSONPATH expression indicating the location of the user objects that managed the current user in the expanded array.",
            "readOnly": true,
            "type": "string"
          },
          "objectPermissions": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.authorization.v1.ActorObjectPermissions"
              },
              {
                "type": "null"
              }
            ]
          },
          "rolesPath": {
            "description": "JSONPATH expression indicating the location of the roles of the current user in the expanded array.",
            "readOnly": true,
            "type": "string"
          },
          "user": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.User"
              },
              {
                "type": "null"
              }
            ]
          },
          "userId": {
            "description": "The id of the user.",
            "readOnly": true,
            "type": "string"
          }
        },
        "title": "User View",
        "type": "object",
        "x-speakeasy-name-override": "UserView"
      },
      "c1.api.user.v2.CreateUserEntitlementOwnerRequestInput": {
        "description": "CreateUserEntitlementOwnerRequest is the request for creating an entitlement ownership source on a user (service account).",
        "properties": {
          "appEntitlementRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create User Entitlement Owner Request",
        "type": "object",
        "x-speakeasy-name-override": "CreateUserEntitlementOwnerRequest"
      },
      "c1.api.user.v2.CreateUserEntitlementOwnerResponse": {
        "description": "CreateUserEntitlementOwnerResponse is the response for creating an entitlement ownership source on a user (service account).",
        "properties": {
          "userOwnerEntitlement": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v2.UserOwnerEntitlement"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create User Entitlement Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "CreateUserEntitlementOwnerResponse"
      },
      "c1.api.user.v2.CreateUserUserOwnerRequestInput": {
        "description": "CreateUserUserOwnerRequest is the request for creating a user ownership source on a user (service account).",
        "properties": {
          "userRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create User User Owner Request",
        "type": "object",
        "x-speakeasy-name-override": "CreateUserUserOwnerRequest"
      },
      "c1.api.user.v2.CreateUserUserOwnerResponse": {
        "description": "CreateUserUserOwnerResponse is the response for creating a user ownership source on a user (service account).",
        "properties": {
          "userOwnerUser": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v2.UserOwnerUser"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Create User User Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "CreateUserUserOwnerResponse"
      },
      "c1.api.user.v2.DeleteUserEntitlementOwnerRequestInput": {
        "description": "DeleteUserEntitlementOwnerRequest is the request for deleting an entitlement ownership source on a user (service account).",
        "properties": {
          "appEntitlementRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Delete User Entitlement Owner Request",
        "type": "object",
        "x-speakeasy-name-override": "DeleteUserEntitlementOwnerRequest"
      },
      "c1.api.user.v2.DeleteUserEntitlementOwnerResponse": {
        "description": "DeleteUserEntitlementOwnerResponse is the empty response for deleting an entitlement ownership source on a user (service account).",
        "title": "Delete User Entitlement Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "DeleteUserEntitlementOwnerResponse"
      },
      "c1.api.user.v2.DeleteUserUserOwnerRequestInput": {
        "description": "DeleteUserUserOwnerRequest is the request for deleting a user ownership source on a user (service account).",
        "properties": {
          "userRef": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Delete User User Owner Request",
        "type": "object",
        "x-speakeasy-name-override": "DeleteUserUserOwnerRequest"
      },
      "c1.api.user.v2.DeleteUserUserOwnerResponse": {
        "description": "DeleteUserUserOwnerResponse is the empty response for deleting a user ownership source on a user (service account).",
        "title": "Delete User User Owner Response",
        "type": "object",
        "x-speakeasy-name-override": "DeleteUserUserOwnerResponse"
      },
      "c1.api.user.v2.SearchUserEntitlementOwnersResponse": {
        "description": "SearchUserEntitlementOwnersResponse is the response for searching entitlement ownership sources on a user (service account).",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v2.UserOwnerEntitlement"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Search User Entitlement Owners Response",
        "type": "object",
        "x-speakeasy-name-override": "SearchUserEntitlementOwnersResponse"
      },
      "c1.api.user.v2.SearchUserOwnersResponse": {
        "description": "SearchUserOwnersResponse is the response for searching user ownership sources on a user (service account).",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v2.UserOwnerUser"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Search User Owners Response",
        "type": "object",
        "x-speakeasy-name-override": "SearchUserOwnersResponse"
      },
      "c1.api.user.v2.SetUserOwnersV2RequestInput": {
        "description": "SetUserOwnersV2Request is the request for setting the owners of a user (service account) for a given role.",
        "properties": {
          "appEntitlementRefs": {
            "description": "The appEntitlementRefs field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementRef"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "roleSlug": {
            "description": "The roleSlug field.",
            "type": "string"
          },
          "userRefs": {
            "description": "The userRefs field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.user.v1.UserRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Set User Owners V 2 Request",
        "type": "object",
        "x-speakeasy-name-override": "SetUserOwnersV2Request"
      },
      "c1.api.user.v2.SetUserOwnersV2Response": {
        "description": "SetUserOwnersV2Response is the empty response for setting user owners.",
        "title": "Set User Owners V 2 Response",
        "type": "object",
        "x-speakeasy-name-override": "SetUserOwnersV2Response"
      },
      "c1.api.user.v2.UserOwnerEntitlement": {
        "description": "UserOwnerEntitlement represents an entitlement ownership source for a canonical User (a service account).",
        "properties": {
          "appEntitlement": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlement"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "roleSlug": {
            "description": "The roleSlug field.",
            "type": "string"
          },
          "userId": {
            "description": "The userId field.",
            "type": "string"
          }
        },
        "title": "User Owner Entitlement",
        "type": "object",
        "x-speakeasy-name-override": "UserOwnerEntitlement"
      },
      "c1.api.user.v2.UserOwnerUser": {
        "description": "UserOwnerUser represents a user ownership source for a canonical User (a service account).",
        "properties": {
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "roleSlug": {
            "description": "The roleSlug field.",
            "type": "string"
          },
          "user": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.user.v1.User"
              },
              {
                "type": "null"
              }
            ]
          },
          "userId": {
            "description": "The userId field.",
            "type": "string"
          }
        },
        "title": "User Owner User",
        "type": "object",
        "x-speakeasy-name-override": "UserOwnerUser"
      },
      "c1.api.vault.v1.GroupAuthzVault": {
        "description": "GroupAuthzVault configures a vault that uses group-based authorization to control access to stored credentials.",
        "title": "Group Authz Vault",
        "type": "object",
        "x-speakeasy-name-override": "GroupAuthzVault"
      },
      "c1.api.vault.v1.MagicVault": {
        "description": "MagicVault configures a vault that grants time-limited credential access via magic links.",
        "properties": {
          "allowUnauthedViews": {
            "description": "Controls whether unauthenticated users can view credentials via a magic link.",
            "type": "boolean"
          },
          "allowedViews": {
            "description": "The maximum number of times a credential in this vault may be viewed.",
            "format": "uint32",
            "type": "integer"
          }
        },
        "title": "Magic Vault",
        "type": "object",
        "x-speakeasy-name-override": "MagicVault"
      },
      "c1.api.vault.v1.Vault": {
        "description": "Vault represents an external secret storage integration used to store connector credentials securely.\n\nThis message contains a oneof named vault. Only a single field of the following list may be set at a time:\n  - groupAuthzVault\n  - magicVault\n",
        "properties": {
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "credentialExpirationDuration": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "A free-text description of the vault's purpose or configuration.",
            "type": "string"
          },
          "displayName": {
            "description": "The human-readable name of the vault.",
            "type": "string"
          },
          "groupAuthzVault": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.vault.v1.GroupAuthzVault"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "description": "The unique identifier of the vault.",
            "type": "string"
          },
          "magicVault": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.vault.v1.MagicVault"
              },
              {
                "type": "null"
              }
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Vault",
        "type": "object",
        "x-speakeasy-entity": "Vault",
        "x-speakeasy-name-override": "Vault"
      },
      "c1.api.vault.v1.VaultServiceCreateRequest": {
        "description": "VaultServiceCreateRequest is the request message for creating a new vault.\n\nThis message contains a oneof named vault. Only a single field of the following list may be set at a time:\n  - groupAuthzVault\n  - magicVault\n",
        "properties": {
          "description": {
            "description": "A free-text description of the vault's purpose or configuration.",
            "type": "string"
          },
          "displayName": {
            "description": "The human-readable name for the new vault.",
            "type": "string"
          },
          "groupAuthzVault": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.vault.v1.GroupAuthzVault"
              },
              {
                "type": "null"
              }
            ]
          },
          "magicVault": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.vault.v1.MagicVault"
              },
              {
                "type": "null"
              }
            ]
          },
          "ownerIds": {
            "description": "The IDs of users to assign as owners of this vault.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "displayName"
        ],
        "title": "Vault Service Create Request",
        "type": "object",
        "x-speakeasy-name-override": "VaultServiceCreateRequest"
      },
      "c1.api.vault.v1.VaultServiceCreateResponse": {
        "description": "VaultServiceCreateResponse is the response message for creating a new vault.",
        "properties": {
          "vault": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.vault.v1.Vault"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Vault Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "VaultServiceCreateResponse"
      },
      "c1.api.vault.v1.VaultServiceDeleteRequestInput": {
        "description": "VaultServiceDeleteRequest is the request message for deleting a vault.",
        "title": "Vault Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "VaultServiceDeleteRequest"
      },
      "c1.api.vault.v1.VaultServiceDeleteResponse": {
        "description": "Empty response body. Status code indicates success.",
        "title": "Vault Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "VaultServiceDeleteResponse"
      },
      "c1.api.vault.v1.VaultServiceGetResponse": {
        "description": "VaultServiceGetResponse is the response message containing the requested vault.",
        "properties": {
          "vault": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.vault.v1.Vault"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Vault Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "VaultServiceGetResponse"
      },
      "c1.api.vault.v1.VaultServiceUpdateRequestInput": {
        "description": "The VaultServiceUpdateRequest message contains the vault object to update and a field mask to indicate which fields to update.",
        "properties": {
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          },
          "vault": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.vault.v1.Vault"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Vault Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "VaultServiceUpdateRequest"
      },
      "c1.api.vault.v1.VaultServiceUpdateResponse": {
        "description": "VaultServiceUpdateResponse is the response message containing the updated vault.",
        "properties": {
          "vault": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.vault.v1.Vault"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Vault Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "VaultServiceUpdateResponse"
      },
      "c1.api.webhooks.v1.Webhook": {
        "description": "The Webhook message.",
        "properties": {
          "callbackTimeout": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "deletedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "An optional description of the webhook's purpose.",
            "type": "string"
          },
          "displayName": {
            "description": "The human-readable name of the webhook.",
            "type": "string"
          },
          "id": {
            "description": "The unique identifier of the webhook.",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "url": {
            "description": "The destination URL that receives event notification HTTP callbacks.",
            "type": "string"
          }
        },
        "title": "Webhook",
        "type": "object",
        "x-speakeasy-entity": "Webhook",
        "x-speakeasy-name-override": "WebhookEndpoint"
      },
      "c1.api.webhooks.v1.WebhookInstance": {
        "description": "The WebhookInstance message.",
        "properties": {
          "attempts": {
            "description": "The attempts field.",
            "format": "int32",
            "type": "integer"
          },
          "completedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "expiresAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "The id field.",
            "type": "string"
          },
          "lastAttemptedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "source": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.webhooks.v1.WebhookSource"
              },
              {
                "type": "null"
              }
            ]
          },
          "spec": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.webhooks.v1.WebhookSpec"
              },
              {
                "type": "null"
              }
            ]
          },
          "state": {
            "description": "The state field.",
            "enum": [
              "WEBHOOK_STATE_UNSPECIFIED",
              "WEBHOOK_STATE_PENDING",
              "WEBHOOK_STATE_RUNNING",
              "WEBHOOK_STATE_ERROR",
              "WEBHOOK_STATE_WAITING_CALLBACK",
              "WEBHOOK_STATE_PROCESS_RESPONSE",
              "WEBHOOK_STATE_SUCCESS",
              "WEBHOOK_STATE_FATAL_ERROR",
              "WEBHOOK_STATE_CANCELED"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "supersededReason": {
            "description": "Why the task step that triggered this webhook stopped owning it, if it did.\n Set on any instance that was abandoned rather than run to its own\n conclusion; empty otherwise.",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "webhookId": {
            "description": "The webhookId field.",
            "type": "string"
          }
        },
        "title": "Webhook Instance",
        "type": "object",
        "x-speakeasy-name-override": "WebhookInstance"
      },
      "c1.api.webhooks.v1.WebhookRef": {
        "description": "The WebhookRef message.",
        "properties": {
          "id": {
            "description": "The ID of the referenced webhook.",
            "type": "string"
          }
        },
        "title": "Webhook Ref",
        "type": "object",
        "x-speakeasy-name-override": "WebhookRef"
      },
      "c1.api.webhooks.v1.WebhookSource": {
        "description": "The WebhookSource message.\n\nThis message contains a oneof named source. Only a single field of the following list may be set at a time:\n  - test\n  - policyPostAction\n  - approvalStep\n  - provisionStep\n  - workflowStep\n",
        "properties": {
          "approvalStep": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.webhooks.v1.WebhookSource.WebhookSourceApprovalStep"
              },
              {
                "type": "null"
              }
            ]
          },
          "policyPostAction": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.webhooks.v1.WebhookSource.WebhookSourcePolicyPostAction"
              },
              {
                "type": "null"
              }
            ]
          },
          "provisionStep": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.webhooks.v1.WebhookSource.WebhookSourceProvisionStep"
              },
              {
                "type": "null"
              }
            ]
          },
          "test": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.webhooks.v1.WebhookSource.WebhookSourceTest"
              },
              {
                "type": "null"
              }
            ]
          },
          "workflowStep": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.webhooks.v1.WebhookSource.WebhookSourceWorkflowStep"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Webhook Source",
        "type": "object",
        "x-speakeasy-name-override": "WebhookSource"
      },
      "c1.api.webhooks.v1.WebhookSource.WebhookSourceApprovalStep": {
        "description": "The WebhookSourceApprovalStep message.",
        "properties": {
          "ticketId": {
            "description": "The ticketId field.",
            "type": "string"
          }
        },
        "title": "Webhook Source Approval Step",
        "type": "object",
        "x-speakeasy-name-override": "WebhookSourceApprovalStep"
      },
      "c1.api.webhooks.v1.WebhookSource.WebhookSourcePolicyPostAction": {
        "description": "The WebhookSourcePolicyPostAction message.",
        "properties": {
          "ticketId": {
            "description": "The ticketId field.",
            "type": "string"
          }
        },
        "title": "Webhook Source Policy Post Action",
        "type": "object",
        "x-speakeasy-name-override": "WebhookSourcePolicyPostAction"
      },
      "c1.api.webhooks.v1.WebhookSource.WebhookSourceProvisionStep": {
        "description": "The WebhookSourceProvisionStep message.",
        "properties": {
          "ticketId": {
            "description": "The ticketId field.",
            "type": "string"
          }
        },
        "title": "Webhook Source Provision Step",
        "type": "object",
        "x-speakeasy-name-override": "WebhookSourceProvisionStep"
      },
      "c1.api.webhooks.v1.WebhookSource.WebhookSourceTest": {
        "description": "The WebhookSourceTest message.",
        "title": "Webhook Source Test",
        "type": "object",
        "x-speakeasy-name-override": "WebhookSourceTest"
      },
      "c1.api.webhooks.v1.WebhookSource.WebhookSourceWorkflowStep": {
        "description": "The WebhookSourceWorkflowStep message.",
        "properties": {
          "workflowExecutionId": {
            "description": "The workflowExecutionId field.",
            "format": "int64",
            "type": "string"
          },
          "workflowStepId": {
            "description": "The workflowStepId field.",
            "type": "string"
          }
        },
        "title": "Webhook Source Workflow Step",
        "type": "object",
        "x-speakeasy-name-override": "WebhookSourceWorkflowStep"
      },
      "c1.api.webhooks.v1.WebhookSpec": {
        "description": "The WebhookSpec message.",
        "properties": {
          "destination": {
            "description": "The destination field.",
            "type": "string"
          }
        },
        "title": "Webhook Spec",
        "type": "object",
        "x-speakeasy-name-override": "WebhookSpec"
      },
      "c1.api.webhooks.v1.WebhooksSearchRequest": {
        "description": "The WebhooksSearchRequest message.",
        "properties": {
          "pageSize": {
            "description": "The maximum number of webhooks to return per page.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pagination token from a previous search response to fetch the next page.",
            "type": "string"
          },
          "query": {
            "description": "A text query to match against webhook names and descriptions.",
            "type": "string"
          },
          "refs": {
            "description": "Optional set of webhook references to restrict the search to specific webhooks.",
            "items": {
              "$ref": "#/components/schemas/c1.api.webhooks.v1.WebhookRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Webhooks Search Request",
        "type": "object",
        "x-speakeasy-name-override": "WebhooksSearchRequest"
      },
      "c1.api.webhooks.v1.WebhooksSearchResponse": {
        "description": "The WebhooksSearchResponse message.",
        "properties": {
          "list": {
            "description": "The list of webhooks matching the search criteria.",
            "items": {
              "$ref": "#/components/schemas/c1.api.webhooks.v1.Webhook"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "A token to retrieve the next page of results, or empty if there are no more results.",
            "type": "string"
          }
        },
        "title": "Webhooks Search Response",
        "type": "object",
        "x-speakeasy-name-override": "WebhooksSearchResponse"
      },
      "c1.api.webhooks.v1.WebhooksServiceCreateRequest": {
        "description": "The WebhooksServiceCreateRequest message.",
        "properties": {
          "callbackTimeout": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "An optional description of the webhook's purpose.",
            "type": "string"
          },
          "displayName": {
            "description": "The human-readable name for the new webhook.",
            "type": "string"
          },
          "url": {
            "description": "The destination URL that will receive event notification HTTP callbacks.",
            "type": "string"
          }
        },
        "required": [
          "displayName",
          "url"
        ],
        "title": "Webhooks Service Create Request",
        "type": "object",
        "x-speakeasy-name-override": "WebhooksServiceCreateRequest"
      },
      "c1.api.webhooks.v1.WebhooksServiceCreateResponse": {
        "description": "The WebhooksServiceCreateResponse message.",
        "properties": {
          "webhook": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.webhooks.v1.Webhook"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Webhooks Service Create Response",
        "type": "object",
        "x-speakeasy-name-override": "WebhooksServiceCreateResponse"
      },
      "c1.api.webhooks.v1.WebhooksServiceDeleteRequestInput": {
        "description": "The WebhooksServiceDeleteRequest message.",
        "title": "Webhooks Service Delete Request",
        "type": "object",
        "x-speakeasy-name-override": "WebhooksServiceDeleteRequest"
      },
      "c1.api.webhooks.v1.WebhooksServiceDeleteResponse": {
        "description": "Empty response body. Status code indicates success.",
        "title": "Webhooks Service Delete Response",
        "type": "object",
        "x-speakeasy-name-override": "WebhooksServiceDeleteResponse"
      },
      "c1.api.webhooks.v1.WebhooksServiceGetResponse": {
        "description": "The WebhooksServiceGetResponse message.",
        "properties": {
          "webhook": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.webhooks.v1.Webhook"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Webhooks Service Get Response",
        "type": "object",
        "x-speakeasy-name-override": "WebhooksServiceGetResponse"
      },
      "c1.api.webhooks.v1.WebhooksServiceListResponse": {
        "description": "The WebhooksServiceListResponse message.",
        "properties": {
          "list": {
            "description": "The list of webhooks for the current page.",
            "items": {
              "$ref": "#/components/schemas/c1.api.webhooks.v1.Webhook"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "A token to retrieve the next page of results, or empty if there are no more results.",
            "type": "string"
          }
        },
        "title": "Webhooks Service List Response",
        "type": "object",
        "x-speakeasy-name-override": "WebhooksServiceListResponse"
      },
      "c1.api.webhooks.v1.WebhooksServiceTestRequestInput": {
        "description": "The WebhooksServiceTestRequest message.",
        "title": "Webhooks Service Test Request",
        "type": "object",
        "x-speakeasy-name-override": "WebhooksServiceTestRequest"
      },
      "c1.api.webhooks.v1.WebhooksServiceTestResponse": {
        "description": "The WebhooksServiceTestResponse message.",
        "properties": {
          "webhook": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.webhooks.v1.WebhookInstance"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Webhooks Service Test Response",
        "type": "object",
        "x-speakeasy-name-override": "WebhooksServiceTestResponse"
      },
      "c1.api.webhooks.v1.WebhooksServiceUpdateRequestInput": {
        "description": "The WebhooksServiceUpdateRequest message contains the webhook object to update and a field mask to indicate which fields to update. It uses URL value for input.",
        "properties": {
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          },
          "webhook": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.webhooks.v1.Webhook"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Webhooks Service Update Request",
        "type": "object",
        "x-speakeasy-name-override": "WebhooksServiceUpdateRequest"
      },
      "c1.api.webhooks.v1.WebhooksServiceUpdateResponse": {
        "description": "The WebhooksServiceUpdateResponse message.",
        "properties": {
          "webhook": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.webhooks.v1.Webhook"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Webhooks Service Update Response",
        "type": "object",
        "x-speakeasy-name-override": "WebhooksServiceUpdateResponse"
      },
      "c1.api.workload_federation.v1.C1EdgeService": {
        "description": "C1EdgeService names the hosted Edge or AuthZEN service a trust under the\n C1_EDGE provider lets the fleet act for.",
        "properties": {
          "appId": {
            "description": "App owning the hosted service.",
            "readOnly": true,
            "type": "string"
          },
          "resourceId": {
            "description": "ID of the hosted Edge or AuthZEN server.",
            "readOnly": true,
            "type": "string"
          },
          "resourceKind": {
            "description": "Kind of the hosted service.",
            "enum": [
              "C1_EDGE_RESOURCE_KIND_UNSPECIFIED",
              "C1_EDGE_RESOURCE_KIND_EDGE",
              "C1_EDGE_RESOURCE_KIND_AUTHZEN_SERVER"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "C 1 Edge Service",
        "type": "object",
        "x-speakeasy-name-override": "C1EdgeService"
      },
      "c1.api.workload_federation.v1.C1EdgeSettings": {
        "description": "C1EdgeSettings is the kind-specific configuration block for the tenant's\n WELL_KNOWN_WORKLOAD_PROVIDER_C1_EDGE provider. Empty: the fleet's issuers\n and subjects are installation configuration, never tenant data.",
        "title": "C 1 Edge Settings",
        "type": "object",
        "x-speakeasy-name-override": "C1EdgeSettings"
      },
      "c1.api.workload_federation.v1.OIDCSettings": {
        "description": "OIDCSettings is the kind-specific configuration block for classic OIDC\n providers (GitHub Actions, GitLab CI, HCP Terraform, AWS IAM Outbound,\n any CUSTOM provider). Empty for now; future fields like custom_jwks_url,\n audience overrides, and required_claims land here.",
        "title": "Oidc Settings",
        "type": "object",
        "x-speakeasy-name-override": "OIDCSettings"
      },
      "c1.api.workload_federation.v1.SPIFFESettings": {
        "description": "SPIFFESettings is the kind-specific configuration block for SPIFFE\n trust-domain providers (issuer_url = spiffe://\u003ctrust-domain\u003e).",
        "properties": {
          "bundleEndpointUrl": {
            "description": "HTTPS URL of the JWKS endpoint serving the trust domain's signing keys.\n Required: the spiffe:// scheme has no discovery mechanism.\n Typically the SPIRE OIDC Discovery Provider's /keys endpoint.\n\n Mutable: updates re-validate the new URL by fetching its JWKS before\n persisting; the issuer (trust domain) itself remains immutable.",
            "type": "string"
          }
        },
        "title": "Spiffe Settings",
        "type": "object",
        "x-speakeasy-name-override": "SPIFFESettings"
      },
      "c1.api.workload_federation.v1.TestTokenStepResult": {
        "description": "TestTokenStepResult represents the result of a single validation step.",
        "properties": {
          "actual": {
            "description": "Actual value from the token.",
            "type": "string"
          },
          "detail": {
            "description": "Human-readable detail message.",
            "type": "string"
          },
          "expected": {
            "description": "Expected value (for comparison steps).",
            "type": "string"
          },
          "passed": {
            "description": "Whether this step passed.",
            "type": "boolean"
          },
          "skipped": {
            "description": "Whether this step was skipped (e.g., CIDR check when no allowlist configured).",
            "type": "boolean"
          },
          "stepName": {
            "description": "Step name for display (e.g., \"JWT decode\", \"Issuer match\").",
            "type": "string"
          }
        },
        "title": "Test Token Step Result",
        "type": "object",
        "x-speakeasy-name-override": "TestTokenStepResult"
      },
      "c1.api.workload_federation.v1.WorkloadFederationProvider": {
        "description": "WorkloadFederationProvider represents a tenant-level workload identity\n issuer registration. Two issuer schemes are supported:\n\n   - https://...   classic OIDC issuer; `settings.oidc` MUST be set.\n   - spiffe://...  SPIFFE trust-domain URI; `settings.spiffe` MUST be set.\n\n The (well_known_provider, issuer_url scheme, settings oneof) tuple is a\n tri-invariant: SPIFFE wkp ⟺ spiffe:// issuer ⟺ settings.spiffe set; any\n other wkp ⟺ https:// issuer ⟺ settings.oidc set. Issuer URLs are unique\n within tenant.\n\nThis message contains a oneof named settings. Only a single field of the following list may be set at a time:\n  - oidc\n  - spiffe\n  - c1Edge\n",
        "properties": {
          "c1Edge": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.workload_federation.v1.C1EdgeSettings"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "A description of what this provider is for.",
            "type": "string"
          },
          "disabled": {
            "description": "Whether the provider is disabled. Disabled providers reject all token exchanges.",
            "type": "boolean"
          },
          "displayName": {
            "description": "The display name of the provider.",
            "type": "string"
          },
          "id": {
            "description": "The unique ID of the provider.",
            "readOnly": true,
            "type": "string"
          },
          "issuerUrl": {
            "description": "Canonical issuer URL. https:// for OIDC providers, spiffe:// for SPIFFE\n trust domains. Unique within tenant. Immutable after creation.",
            "readOnly": true,
            "type": "string"
          },
          "oidc": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.workload_federation.v1.OIDCSettings"
              },
              {
                "type": "null"
              }
            ]
          },
          "spiffe": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.workload_federation.v1.SPIFFESettings"
              },
              {
                "type": "null"
              }
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "wellKnownProvider": {
            "description": "Well-known provider type. Drives UX (wizard presets, docs, icons).\n Set at creation time, immutable.",
            "enum": [
              "WELL_KNOWN_WORKLOAD_PROVIDER_UNSPECIFIED",
              "WELL_KNOWN_WORKLOAD_PROVIDER_CUSTOM",
              "WELL_KNOWN_WORKLOAD_PROVIDER_GITHUB_ACTIONS",
              "WELL_KNOWN_WORKLOAD_PROVIDER_GITLAB_CI",
              "WELL_KNOWN_WORKLOAD_PROVIDER_HCP_TERRAFORM",
              "WELL_KNOWN_WORKLOAD_PROVIDER_AWS_IAM_OUTBOUND",
              "WELL_KNOWN_WORKLOAD_PROVIDER_SPIFFE",
              "WELL_KNOWN_WORKLOAD_PROVIDER_C1_EDGE"
            ],
            "readOnly": true,
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Workload Federation Provider",
        "type": "object",
        "x-speakeasy-name-override": "WorkloadFederationProvider"
      },
      "c1.api.workload_federation.v1.WorkloadFederationServiceCreateProviderRequest": {
        "description": "The WorkloadFederationServiceCreateProviderRequest message.\n\nThis message contains a oneof named settings. Only a single field of the following list may be set at a time:\n  - oidc\n  - spiffe\n",
        "properties": {
          "description": {
            "description": "A description of what this provider is for.",
            "type": "string"
          },
          "displayName": {
            "description": "The display name for the new provider.",
            "type": "string"
          },
          "issuerUrl": {
            "description": "The issuer URL. For OIDC providers, this is an HTTPS URL validated via\n OIDC discovery. For SPIFFE providers, this is the SPIFFE trust-domain URI\n (e.g., spiffe://prod.example.com). Normalized on write: lowercase\n scheme/host, no trailing slash. Unique within tenant.",
            "type": "string"
          },
          "oidc": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.workload_federation.v1.OIDCSettings"
              },
              {
                "type": "null"
              }
            ]
          },
          "spiffe": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.workload_federation.v1.SPIFFESettings"
              },
              {
                "type": "null"
              }
            ]
          },
          "wellKnownProvider": {
            "description": "Well-known provider type. Required -- UNSPECIFIED is rejected.\n When set to a named source, the backend validates issuer_url consistency.\n SPIFFE wkp requires `settings.spiffe`; all other wkp values require\n `settings.oidc`.",
            "enum": [
              "WELL_KNOWN_WORKLOAD_PROVIDER_UNSPECIFIED",
              "WELL_KNOWN_WORKLOAD_PROVIDER_CUSTOM",
              "WELL_KNOWN_WORKLOAD_PROVIDER_GITHUB_ACTIONS",
              "WELL_KNOWN_WORKLOAD_PROVIDER_GITLAB_CI",
              "WELL_KNOWN_WORKLOAD_PROVIDER_HCP_TERRAFORM",
              "WELL_KNOWN_WORKLOAD_PROVIDER_AWS_IAM_OUTBOUND",
              "WELL_KNOWN_WORKLOAD_PROVIDER_SPIFFE",
              "WELL_KNOWN_WORKLOAD_PROVIDER_C1_EDGE"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Workload Federation Service Create Provider Request",
        "type": "object",
        "x-speakeasy-name-override": "WorkloadFederationServiceCreateProviderRequest"
      },
      "c1.api.workload_federation.v1.WorkloadFederationServiceCreateProviderResponse": {
        "description": "The WorkloadFederationServiceCreateProviderResponse message.",
        "properties": {
          "provider": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.workload_federation.v1.WorkloadFederationProvider"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Workload Federation Service Create Provider Response",
        "type": "object",
        "x-speakeasy-name-override": "WorkloadFederationServiceCreateProviderResponse"
      },
      "c1.api.workload_federation.v1.WorkloadFederationServiceCreateTrustRequestInput": {
        "description": "The WorkloadFederationServiceCreateTrustRequest message.",
        "properties": {
          "allowSourceCidrs": {
            "description": "IP allowlist for token exchange requests matching this trust.\n Accepts IPv4 (e.g. 10.0.0.0/24) or IPv6 (e.g. 2001:db8::/32) CIDRs.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "conditionExpression": {
            "description": "CEL expression evaluated against JWT claims. Must return bool.\n Compiled and validated before storage.",
            "type": "string"
          },
          "description": {
            "description": "A description of what this trust policy matches.",
            "type": "string"
          },
          "displayName": {
            "description": "The display name for the trust.",
            "type": "string"
          },
          "passthroughClaims": {
            "description": "JWT claim names from the subject token to copy into the issued C1 token.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "providerId": {
            "description": "The provider this trust references.",
            "type": "string"
          },
          "scopedRoleIds": {
            "description": "Scoped role IDs. Effective permissions = min(SP roles, trust.scoped_role_ids).",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Workload Federation Service Create Trust Request",
        "type": "object",
        "x-speakeasy-name-override": "WorkloadFederationServiceCreateTrustRequest"
      },
      "c1.api.workload_federation.v1.WorkloadFederationServiceCreateTrustResponse": {
        "description": "The WorkloadFederationServiceCreateTrustResponse message.",
        "properties": {
          "trust": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.workload_federation.v1.WorkloadFederationTrust"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Workload Federation Service Create Trust Response",
        "type": "object",
        "x-speakeasy-name-override": "WorkloadFederationServiceCreateTrustResponse"
      },
      "c1.api.workload_federation.v1.WorkloadFederationServiceDeleteProviderRequestInput": {
        "description": "The WorkloadFederationServiceDeleteProviderRequest message.",
        "title": "Workload Federation Service Delete Provider Request",
        "type": "object",
        "x-speakeasy-name-override": "WorkloadFederationServiceDeleteProviderRequest"
      },
      "c1.api.workload_federation.v1.WorkloadFederationServiceDeleteProviderResponse": {
        "description": "The WorkloadFederationServiceDeleteProviderResponse message.",
        "title": "Workload Federation Service Delete Provider Response",
        "type": "object",
        "x-speakeasy-name-override": "WorkloadFederationServiceDeleteProviderResponse"
      },
      "c1.api.workload_federation.v1.WorkloadFederationServiceDeleteTrustRequestInput": {
        "description": "The WorkloadFederationServiceDeleteTrustRequest message.",
        "title": "Workload Federation Service Delete Trust Request",
        "type": "object",
        "x-speakeasy-name-override": "WorkloadFederationServiceDeleteTrustRequest"
      },
      "c1.api.workload_federation.v1.WorkloadFederationServiceDeleteTrustResponse": {
        "description": "The WorkloadFederationServiceDeleteTrustResponse message.",
        "title": "Workload Federation Service Delete Trust Response",
        "type": "object",
        "x-speakeasy-name-override": "WorkloadFederationServiceDeleteTrustResponse"
      },
      "c1.api.workload_federation.v1.WorkloadFederationServiceGetProviderResponse": {
        "description": "The WorkloadFederationServiceGetProviderResponse message.",
        "properties": {
          "provider": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.workload_federation.v1.WorkloadFederationProvider"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Workload Federation Service Get Provider Response",
        "type": "object",
        "x-speakeasy-name-override": "WorkloadFederationServiceGetProviderResponse"
      },
      "c1.api.workload_federation.v1.WorkloadFederationServiceGetTrustResponse": {
        "description": "The WorkloadFederationServiceGetTrustResponse message.",
        "properties": {
          "trust": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.workload_federation.v1.WorkloadFederationTrust"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Workload Federation Service Get Trust Response",
        "type": "object",
        "x-speakeasy-name-override": "WorkloadFederationServiceGetTrustResponse"
      },
      "c1.api.workload_federation.v1.WorkloadFederationServiceListProvidersResponse": {
        "description": "The WorkloadFederationServiceListProvidersResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.workload_federation.v1.WorkloadFederationProvider"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Workload Federation Service List Providers Response",
        "type": "object",
        "x-speakeasy-name-override": "WorkloadFederationServiceListProvidersResponse"
      },
      "c1.api.workload_federation.v1.WorkloadFederationServiceListTrustsResponse": {
        "description": "The WorkloadFederationServiceListTrustsResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.workload_federation.v1.WorkloadFederationTrust"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Workload Federation Service List Trusts Response",
        "type": "object",
        "x-speakeasy-name-override": "WorkloadFederationServiceListTrustsResponse"
      },
      "c1.api.workload_federation.v1.WorkloadFederationServiceSearchTrustsRequest": {
        "description": "The WorkloadFederationServiceSearchTrustsRequest message.",
        "properties": {
          "pageSize": {
            "description": "The pageSize field.",
            "format": "int32",
            "type": "integer"
          },
          "pageToken": {
            "description": "The pageToken field.",
            "type": "string"
          },
          "providerId": {
            "description": "Optional: filter trusts by provider ID.",
            "type": "string"
          },
          "query": {
            "description": "Optional: full-text search on trust display name and description.",
            "type": "string"
          },
          "servicePrincipalId": {
            "description": "Optional: filter trusts by service principal ID.",
            "type": "string"
          }
        },
        "title": "Workload Federation Service Search Trusts Request",
        "type": "object",
        "x-speakeasy-name-override": "WorkloadFederationServiceSearchTrustsRequest"
      },
      "c1.api.workload_federation.v1.WorkloadFederationServiceSearchTrustsResponse": {
        "description": "The WorkloadFederationServiceSearchTrustsResponse message.",
        "properties": {
          "list": {
            "description": "The list field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.workload_federation.v1.WorkloadFederationTrust"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "nextPageToken": {
            "description": "The nextPageToken field.",
            "type": "string"
          }
        },
        "title": "Workload Federation Service Search Trusts Response",
        "type": "object",
        "x-speakeasy-name-override": "WorkloadFederationServiceSearchTrustsResponse"
      },
      "c1.api.workload_federation.v1.WorkloadFederationServiceTestCELRequest": {
        "description": "The WorkloadFederationServiceTestCELRequest message.",
        "properties": {
          "claimsJson": {
            "description": "The claims to evaluate against, as a JSON string.\n Parsed into map[string]any for CEL evaluation.",
            "type": "string"
          },
          "expression": {
            "description": "The CEL expression to evaluate. Must return bool.",
            "type": "string"
          }
        },
        "title": "Workload Federation Service Test Cel Request",
        "type": "object",
        "x-speakeasy-name-override": "WorkloadFederationServiceTestCELRequest"
      },
      "c1.api.workload_federation.v1.WorkloadFederationServiceTestCELResponse": {
        "description": "The WorkloadFederationServiceTestCELResponse message.",
        "properties": {
          "error": {
            "description": "Error message if compilation or evaluation failed.",
            "type": "string"
          },
          "expression": {
            "description": "The expression that was evaluated (echo back).",
            "type": "string"
          },
          "matched": {
            "description": "Whether the expression matched (returned true).",
            "type": "boolean"
          }
        },
        "title": "Workload Federation Service Test Cel Response",
        "type": "object",
        "x-speakeasy-name-override": "WorkloadFederationServiceTestCELResponse"
      },
      "c1.api.workload_federation.v1.WorkloadFederationServiceTestTokenRequestInput": {
        "description": "The WorkloadFederationServiceTestTokenRequest message.",
        "properties": {
          "sourceIp": {
            "description": "Optional: override source IP for CIDR testing.\n If empty, uses the request's source IP.\n Accepts IPv4 (e.g. 10.0.0.5) or IPv6 (e.g. 2001:db8::1) addresses, optionally with a CIDR prefix.",
            "type": "string"
          },
          "subjectToken": {
            "description": "The raw JWT to validate (the subject_token from a CI job).",
            "type": "string"
          }
        },
        "title": "Workload Federation Service Test Token Request",
        "type": "object",
        "x-speakeasy-name-override": "WorkloadFederationServiceTestTokenRequest"
      },
      "c1.api.workload_federation.v1.WorkloadFederationServiceTestTokenResponse": {
        "description": "The WorkloadFederationServiceTestTokenResponse message.",
        "properties": {
          "audienceValidation": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.workload_federation.v1.TestTokenStepResult"
              },
              {
                "type": "null"
              }
            ]
          },
          "celEvaluation": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.workload_federation.v1.TestTokenStepResult"
              },
              {
                "type": "null"
              }
            ]
          },
          "cidrCheck": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.workload_federation.v1.TestTokenStepResult"
              },
              {
                "type": "null"
              }
            ]
          },
          "decodedClaimsJson": {
            "description": "The decoded JWT claims (best-effort, even if signature fails).\n Returned as JSON string for display.",
            "type": "string"
          },
          "issuerMatch": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.workload_federation.v1.TestTokenStepResult"
              },
              {
                "type": "null"
              }
            ]
          },
          "jwtDecode": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.workload_federation.v1.TestTokenStepResult"
              },
              {
                "type": "null"
              }
            ]
          },
          "overallResult": {
            "description": "Overall result: true only if ALL steps passed.",
            "type": "boolean"
          },
          "signatureValidation": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.workload_federation.v1.TestTokenStepResult"
              },
              {
                "type": "null"
              }
            ]
          },
          "subjectValidation": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.workload_federation.v1.TestTokenStepResult"
              },
              {
                "type": "null"
              }
            ]
          },
          "tokenFreshness": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.workload_federation.v1.TestTokenStepResult"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Workload Federation Service Test Token Response",
        "type": "object",
        "x-speakeasy-name-override": "WorkloadFederationServiceTestTokenResponse"
      },
      "c1.api.workload_federation.v1.WorkloadFederationServiceUpdateProviderRequestInput": {
        "description": "The WorkloadFederationServiceUpdateProviderRequest message.",
        "properties": {
          "provider": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.workload_federation.v1.WorkloadFederationProvider"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Workload Federation Service Update Provider Request",
        "type": "object",
        "x-speakeasy-name-override": "WorkloadFederationServiceUpdateProviderRequest"
      },
      "c1.api.workload_federation.v1.WorkloadFederationServiceUpdateProviderResponse": {
        "description": "The WorkloadFederationServiceUpdateProviderResponse message.",
        "properties": {
          "provider": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.workload_federation.v1.WorkloadFederationProvider"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Workload Federation Service Update Provider Response",
        "type": "object",
        "x-speakeasy-name-override": "WorkloadFederationServiceUpdateProviderResponse"
      },
      "c1.api.workload_federation.v1.WorkloadFederationServiceUpdateTrustRequestInput": {
        "description": "The WorkloadFederationServiceUpdateTrustRequest message.",
        "properties": {
          "trust": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.workload_federation.v1.WorkloadFederationTrust"
              },
              {
                "type": "null"
              }
            ]
          },
          "updateMask": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Workload Federation Service Update Trust Request",
        "type": "object",
        "x-speakeasy-name-override": "WorkloadFederationServiceUpdateTrustRequest"
      },
      "c1.api.workload_federation.v1.WorkloadFederationServiceUpdateTrustResponse": {
        "description": "The WorkloadFederationServiceUpdateTrustResponse message.",
        "properties": {
          "trust": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.workload_federation.v1.WorkloadFederationTrust"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Workload Federation Service Update Trust Response",
        "type": "object",
        "x-speakeasy-name-override": "WorkloadFederationServiceUpdateTrustResponse"
      },
      "c1.api.workload_federation.v1.WorkloadFederationTrust": {
        "description": "WorkloadFederationTrust represents a per-SP trust policy that references\n a tenant-level provider and defines a CEL condition for claim matching.",
        "properties": {
          "allowSourceCidrs": {
            "description": "IP allowlist for token exchange requests matching this trust.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "c1EdgeService": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.workload_federation.v1.C1EdgeService"
              },
              {
                "type": "null"
              }
            ]
          },
          "clientId": {
            "description": "The full client ID of the trust (e.g., \"clever-fox-42195@acme.conductorone.com/wfe\").\n Used as the client_id parameter in RFC 8693 token exchange requests.",
            "readOnly": true,
            "type": "string"
          },
          "conditionExpression": {
            "description": "CEL expression evaluated against JWT claims. Must return bool.\n Example: claims.sub.startsWith(\"repo:acme/infra:\") \u0026\u0026 claims.environment == \"production\"",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "A description of what this trust policy matches.",
            "type": "string"
          },
          "disabled": {
            "description": "Whether the trust is disabled.",
            "type": "boolean"
          },
          "displayName": {
            "description": "The display name of the trust.",
            "type": "string"
          },
          "passthroughClaims": {
            "description": "JWT claim names from the subject token to copy into the issued C1 token.\n Values are placed in the \"c1wfc\" claim as a map[string]string.\n Only string-valued claims are copied; non-string claims are silently skipped.\n Example: [\"repository\", \"repository_owner\", \"job_workflow_ref\"]",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "providerId": {
            "description": "The provider ID this trust references. Immutable after creation.",
            "readOnly": true,
            "type": "string"
          },
          "scopedRoleIds": {
            "description": "Scoped role IDs. Effective permissions = min(SP roles, trust.scoped_role_ids).",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "servicePrincipalId": {
            "description": "The service principal user ID this trust belongs to.",
            "readOnly": true,
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "readOnly": true,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Workload Federation Trust",
        "type": "object",
        "x-speakeasy-name-override": "WorkloadFederationTrust"
      },
      "c1.mcp.role_mining.v1.AccessProfileMatch": {
        "description": "The AccessProfileMatch message.",
        "properties": {
          "catalogDisplayName": {
            "description": "The catalogDisplayName field.",
            "type": "string"
          },
          "catalogId": {
            "description": "The catalogId field.",
            "type": "string"
          },
          "matchType": {
            "description": "The matchType field.",
            "enum": [
              "ACCESS_PROFILE_MATCH_TYPE_UNSPECIFIED",
              "ACCESS_PROFILE_MATCH_TYPE_EXACT",
              "ACCESS_PROFILE_MATCH_TYPE_SUPERSET",
              "ACCESS_PROFILE_MATCH_TYPE_PARTIAL"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          },
          "missingEntitlements": {
            "description": "The missingEntitlements field.",
            "items": {
              "$ref": "#/components/schemas/c1.mcp.role_mining.v1.CohortEntitlement"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "overlapRatio": {
            "description": "The overlapRatio field.",
            "type": "number"
          }
        },
        "title": "Access Profile Match",
        "type": "object",
        "x-speakeasy-name-override": "AccessProfileMatch"
      },
      "c1.mcp.role_mining.v1.AccessScope": {
        "description": "AccessScope narrows a cohort to the users who hold a grant. It is combined\n with any ProfileFilters using AND logic, and is a complete cohort definition\n on its own.\n\nThis message contains a oneof named scope. Only a single field of the following list may be set at a time:\n  - appId\n  - entitlement\n  - groups\n",
        "properties": {
          "appId": {
            "description": "Cohort is every user holding a grant to this app's built-in Access\n entitlement, which is how \"everyone with access to the app\" is stored.\nThis field is part of the `scope` oneof.\nSee the documentation for `c1.mcp.role_mining.v1.AccessScope` for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "entitlement": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.mcp.role_mining.v1.AppEntitlementScopeRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "groups": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.mcp.role_mining.v1.AccessScopeGroups"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Access Scope",
        "type": "object",
        "x-speakeasy-name-override": "AccessScope"
      },
      "c1.mcp.role_mining.v1.AccessScopeClause": {
        "description": "AccessScopeClause matches holders of any listed entitlement.",
        "properties": {
          "entitlements": {
            "description": "The entitlements field.",
            "items": {
              "$ref": "#/components/schemas/c1.mcp.role_mining.v1.AppEntitlementScopeRef"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Access Scope Clause",
        "type": "object",
        "x-speakeasy-name-override": "AccessScopeClause"
      },
      "c1.mcp.role_mining.v1.AccessScopeGroups": {
        "description": "AccessScopeGroups intersects its clauses to define the cohort.",
        "properties": {
          "clauses": {
            "description": "The clauses field.",
            "items": {
              "$ref": "#/components/schemas/c1.mcp.role_mining.v1.AccessScopeClause"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Access Scope Groups",
        "type": "object",
        "x-speakeasy-name-override": "AccessScopeGroups"
      },
      "c1.mcp.role_mining.v1.AppEntitlementScopeRef": {
        "description": "AppEntitlementScopeRef identifies one entitlement by app and entitlement ID.",
        "properties": {
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "entitlementId": {
            "description": "The entitlementId field.",
            "type": "string"
          }
        },
        "title": "App Entitlement Scope Ref",
        "type": "object",
        "x-speakeasy-name-override": "AppEntitlementScopeRef"
      },
      "c1.mcp.role_mining.v1.AttributeFacet": {
        "description": "AttributeFacet represents a filterable user profile attribute with its available values.",
        "properties": {
          "attribute": {
            "description": "The attribute field.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "values": {
            "description": "The values field.",
            "items": {
              "$ref": "#/components/schemas/c1.mcp.role_mining.v1.AttributeValue"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "valuesTruncated": {
            "description": "True when values is a legacy bounded preview rather than the complete\n value set. Clients must not treat a truncated preview as exhaustive.",
            "type": "boolean"
          },
          "valuesUnavailable": {
            "description": "True when the legacy preview could not be loaded. The attribute remains\n valid and value discovery may be retried independently.",
            "type": "boolean"
          }
        },
        "title": "Attribute Facet",
        "type": "object",
        "x-speakeasy-name-override": "AttributeFacet"
      },
      "c1.mcp.role_mining.v1.AttributeValue": {
        "description": "AttributeValue represents a single value within a facet.",
        "properties": {
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "userCount": {
            "description": "The userCount field.",
            "format": "int32",
            "type": "integer"
          },
          "value": {
            "description": "The value field.",
            "type": "string"
          }
        },
        "title": "Attribute Value",
        "type": "object",
        "x-speakeasy-name-override": "RoleMiningAttributeValue"
      },
      "c1.mcp.role_mining.v1.CohortEntitlement": {
        "description": "The CohortEntitlement message.",
        "properties": {
          "appDisplayName": {
            "description": "The appDisplayName field.",
            "type": "string"
          },
          "appId": {
            "description": "The appId field.",
            "type": "string"
          },
          "appResourceDisplayName": {
            "description": "The appResourceDisplayName field.",
            "type": "string"
          },
          "appResourceTypeDisplayName": {
            "description": "The appResourceTypeDisplayName field.",
            "type": "string"
          },
          "coverage": {
            "description": "The coverage field.",
            "type": "number"
          },
          "entitlementDisplayName": {
            "description": "The entitlementDisplayName field.",
            "type": "string"
          },
          "entitlementId": {
            "description": "The entitlementId field.",
            "type": "string"
          },
          "grantedCount": {
            "description": "The grantedCount field.",
            "format": "int32",
            "type": "integer"
          },
          "riskLevelValueId": {
            "description": "The riskLevelValueId field.",
            "type": "string"
          }
        },
        "title": "Cohort Entitlement",
        "type": "object",
        "x-speakeasy-name-override": "CohortEntitlement"
      },
      "c1.mcp.role_mining.v1.CohortFilterAttribute": {
        "description": "CohortFilterAttribute describes one stable filter key independently of its\n materialized values.",
        "properties": {
          "attribute": {
            "description": "The attribute field.",
            "type": "string"
          },
          "displayName": {
            "description": "The displayName field.",
            "type": "string"
          },
          "kind": {
            "description": "The kind field.",
            "enum": [
              "COHORT_FILTER_ATTRIBUTE_KIND_UNSPECIFIED",
              "COHORT_FILTER_ATTRIBUTE_KIND_BUILTIN",
              "COHORT_FILTER_ATTRIBUTE_KIND_CUSTOM"
            ],
            "type": "string",
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "Cohort Filter Attribute",
        "type": "object",
        "x-speakeasy-name-override": "CohortFilterAttribute"
      },
      "c1.mcp.role_mining.v1.EntitlementCluster": {
        "description": "The EntitlementCluster message.",
        "properties": {
          "avgCoverage": {
            "description": "The avgCoverage field.",
            "type": "number"
          },
          "avgSimilarity": {
            "description": "The avgSimilarity field.",
            "type": "number"
          },
          "entitlements": {
            "description": "The entitlements field.",
            "items": {
              "$ref": "#/components/schemas/c1.mcp.role_mining.v1.CohortEntitlement"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "userCount": {
            "description": "The userCount field.",
            "format": "int32",
            "type": "integer"
          }
        },
        "title": "Entitlement Cluster",
        "type": "object",
        "x-speakeasy-name-override": "EntitlementCluster"
      },
      "c1.mcp.role_mining.v1.EntitlementCutoffImpactPoint": {
        "description": "EntitlementCutoffImpactPoint reports the exact effect of an inclusive\n entitlement coverage cutoff on the analyzed cohort.",
        "properties": {
          "entitlementCount": {
            "description": "Number of analyzed entitlements included at this cutoff.",
            "format": "int32",
            "type": "integer"
          },
          "minimumCoverageBasisPoints": {
            "description": "Inclusive minimum entitlement coverage in basis points, where 8000 is 80%.",
            "format": "int32",
            "type": "integer"
          },
          "usersWithAllEntitlements": {
            "description": "Exact number of cohort users who hold every included entitlement.",
            "format": "int32",
            "type": "integer"
          }
        },
        "title": "Entitlement Cutoff Impact Point",
        "type": "object",
        "x-speakeasy-name-override": "EntitlementCutoffImpactPoint"
      },
      "c1.mcp.role_mining.v1.ProfileFilter": {
        "description": "ProfileFilter defines a filter on a user profile attribute.\n Use GetOrgOverview to discover available attribute keys and their values.",
        "properties": {
          "attribute": {
            "description": "The attribute field.",
            "type": "string"
          },
          "values": {
            "description": "The values field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Profile Filter",
        "type": "object",
        "x-speakeasy-name-override": "ProfileFilter"
      },
      "c1.mcp.role_mining.v1.ResourceScope": {
        "description": "ResourceScope narrows which entitlements an analysis considers, without\n changing the cohort. Coverage denominators stay the population the\n ProfileFilters and AccessScope select; only the entitlement universe shrinks.\n It is never a cohort definition on its own.",
        "properties": {
          "appIds": {
            "description": "The appIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Resource Scope",
        "type": "object",
        "x-speakeasy-name-override": "ResourceScope"
      },
      "c1.webhooks.v1.Body": {
        "description": "The Body message.",
        "properties": {
          "callbackUrl": {
            "description": "If your receiver returns HTTP Status Code 202 Accepted, it MUST send its resposne to this URL as a POST\n message body.\n\n If your receiver returns any other status code, it is expected to not use the callback url.\n\n This value will match the \"Webhook-Callback-Url\" header.",
            "type": "string"
          },
          "event": {
            "description": "The type of event that triggered this Webhook.\n\n This value will match the \"Webhook-Event\" header.\n\n The value will be one of:\n - \"c1.webhooks.v1.PayloadTest\"\n - \"c1.webhooks.v1.PayloadPolicyApprovalStep\"\n - \"c1.webhooks.v1.PayloadPolicyPostAction\"\n - \"c1.webhooks.v1.PayloadProvisionStep\"",
            "type": "string"
          },
          "payload": {
            "additionalProperties": true,
            "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
            "properties": {
              "@type": {
                "description": "The type of the serialized message.",
                "type": "string"
              }
            },
            "type": [
              "object",
              "null"
            ]
          },
          "version": {
            "description": "version contains the constant value \"v1\". Future versions of the Webhook body will use a different string.\n\n This value will match the \"Webhook-Version\" header.",
            "type": "string"
          },
          "webhookId": {
            "description": "Unique ID for this Webhook. Your receiver should only process this ID once.\n\n This value will match the \"Webhook-Id\" header.",
            "type": "string"
          }
        },
        "title": "Body",
        "type": "object",
        "x-speakeasy-include": true,
        "x-speakeasy-name-override": "Body"
      },
      "c1.webhooks.v1.PayloadFindingDispatch": {
        "description": "The PayloadFindingDispatch message.",
        "properties": {
          "dispatchId": {
            "description": "The FindingDispatch row recording this execution.",
            "type": "string"
          },
          "finding": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.finding.v1.Finding"
              },
              {
                "type": "null"
              }
            ]
          },
          "findingId": {
            "description": "The finding that matched the routing rule.",
            "type": "string"
          },
          "payloadTemplate": {
            "description": "The dispatcher's rendered payload template. Empty when the dispatcher used\n the default finding payload.",
            "type": "string"
          },
          "ruleId": {
            "description": "The routing rule whose match caused this dispatch.",
            "type": "string"
          }
        },
        "title": "Payload Finding Dispatch",
        "type": "object",
        "x-speakeasy-include": true,
        "x-speakeasy-name-override": "PayloadFindingDispatch"
      },
      "c1.webhooks.v1.PayloadPolicyApprovalStep": {
        "description": "The PayloadPolicyApprovalStep message.",
        "properties": {
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "taskView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskView"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Payload Policy Approval Step",
        "type": "object",
        "x-speakeasy-include": true,
        "x-speakeasy-name-override": "PayloadPolicyApprovalStep"
      },
      "c1.webhooks.v1.PayloadPolicyPostAction": {
        "description": "The PayloadPolicyPostAction message.",
        "properties": {
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "taskView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskView"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Payload Policy Post Action",
        "type": "object",
        "x-speakeasy-include": true,
        "x-speakeasy-name-override": "PayloadPolicyPostAction"
      },
      "c1.webhooks.v1.PayloadProvisionStep": {
        "description": "The PayloadProvisionStep message.",
        "properties": {
          "expanded": {
            "description": "List of serialized related objects.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "taskView": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskView"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Payload Provision Step",
        "type": "object",
        "x-speakeasy-include": true,
        "x-speakeasy-name-override": "PayloadProvisionStep"
      },
      "c1.webhooks.v1.PayloadTest": {
        "description": "The PayloadTest message.",
        "title": "Payload Test",
        "type": "object",
        "x-speakeasy-include": true,
        "x-speakeasy-name-override": "PayloadTest"
      },
      "c1.webhooks.v1.PayloadWorkflowStep": {
        "description": "The PayloadWorkflowStep message.",
        "properties": {
          "context": {
            "additionalProperties": true,
            "type": [
              "object",
              "null"
            ]
          },
          "workflowExecutionId": {
            "description": "The workflow execution ID",
            "format": "int64",
            "type": "string"
          },
          "workflowExecutionStepId": {
            "description": "The workflow execution step ID",
            "type": "string"
          },
          "workflowId": {
            "description": "The workflow template ID",
            "type": "string"
          }
        },
        "title": "Payload Workflow Step",
        "type": "object",
        "x-speakeasy-include": true,
        "x-speakeasy-name-override": "PayloadWorkflowStep"
      },
      "c1.webhooks.v1.ResponsePolicyApprovalStep": {
        "description": "The ResponsePolicyApprovalStep message.\n\nThis message contains a oneof named action. Only a single field of the following list may be set at a time:\n  - approve\n  - deny\n  - reassign\n  - replacePolicy\n",
        "properties": {
          "approve": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.webhooks.v1.ResponsePolicyApprovalStep.ResponsePolicyApprovalStepApprove"
              },
              {
                "type": "null"
              }
            ]
          },
          "deny": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.webhooks.v1.ResponsePolicyApprovalStep.ResponsePolicyApprovalStepDeny"
              },
              {
                "type": "null"
              }
            ]
          },
          "reassign": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.webhooks.v1.ResponsePolicyApprovalStep.ResponsePolicyApprovalStepReassign"
              },
              {
                "type": "null"
              }
            ]
          },
          "replacePolicy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.webhooks.v1.ResponsePolicyApprovalStep.ResponsePolicyApprovalReplacePolicy"
              },
              {
                "type": "null"
              }
            ]
          },
          "version": {
            "description": "version contains the constant value \"v1\". Future versions of the Webhook Response\n will use a different string.",
            "type": "string"
          }
        },
        "title": "Response Policy Approval Step",
        "type": "object",
        "x-speakeasy-include": true,
        "x-speakeasy-name-override": "ResponsePolicyApprovalStep"
      },
      "c1.webhooks.v1.ResponsePolicyApprovalStep.ResponsePolicyApprovalReplacePolicy": {
        "description": "The ResponsePolicyApprovalReplacePolicy message.",
        "properties": {
          "comment": {
            "description": "The comment field.",
            "type": "string"
          },
          "policySteps": {
            "description": "The policySteps field.",
            "items": {
              "$ref": "#/components/schemas/c1.api.policy.v1.PolicyStep"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Response Policy Approval Replace Policy",
        "type": "object",
        "x-speakeasy-name-override": "ResponsePolicyApprovalReplacePolicy"
      },
      "c1.webhooks.v1.ResponsePolicyApprovalStep.ResponsePolicyApprovalStepApprove": {
        "description": "The ResponsePolicyApprovalStepApprove message.",
        "properties": {
          "comment": {
            "description": "optional comment",
            "type": "string"
          }
        },
        "title": "Response Policy Approval Step Approve",
        "type": "object",
        "x-speakeasy-name-override": "ResponsePolicyApprovalStepApprove"
      },
      "c1.webhooks.v1.ResponsePolicyApprovalStep.ResponsePolicyApprovalStepDeny": {
        "description": "The ResponsePolicyApprovalStepDeny message.",
        "properties": {
          "comment": {
            "description": "optional comment",
            "type": "string"
          }
        },
        "title": "Response Policy Approval Step Deny",
        "type": "object",
        "x-speakeasy-name-override": "ResponsePolicyApprovalStepDeny"
      },
      "c1.webhooks.v1.ResponsePolicyApprovalStep.ResponsePolicyApprovalStepReassign": {
        "description": "The ResponsePolicyApprovalStepReassign message.",
        "properties": {
          "comment": {
            "description": "optional comment",
            "type": "string"
          },
          "newStepUserIds": {
            "description": "The newStepUserIds field.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Response Policy Approval Step Reassign",
        "type": "object",
        "x-speakeasy-name-override": "ResponsePolicyApprovalStepReassign"
      },
      "c1.webhooks.v1.ResponsePolicyPostAction": {
        "description": "The ResponsePolicyPostAction message.",
        "properties": {
          "version": {
            "description": "version contains the constant value \"v1\". Future versions of the Webhook Response\n will use a different string.",
            "type": "string"
          }
        },
        "title": "Response Policy Post Action",
        "type": "object",
        "x-speakeasy-include": true,
        "x-speakeasy-name-override": "ResponsePolicyPostAction"
      },
      "c1.webhooks.v1.ResponseProvisionStep": {
        "description": "The ResponseProvisionStep message.\n\nThis message contains a oneof named outcome. Only a single field of the following list may be set at a time:\n  - complete\n  - errored\n",
        "properties": {
          "complete": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.webhooks.v1.ResponseProvisionStep.ResponseProvisionStepComplete"
              },
              {
                "type": "null"
              }
            ]
          },
          "errored": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/c1.webhooks.v1.ResponseProvisionStep.ResponseProvisionStepErrored"
              },
              {
                "type": "null"
              }
            ]
          },
          "version": {
            "description": "version contains the constant value \"v1\". Future versions of the Webhook Response\n will use a different string.",
            "type": "string"
          }
        },
        "title": "Response Provision Step",
        "type": "object",
        "x-speakeasy-include": true,
        "x-speakeasy-name-override": "ResponseProvisionStep"
      },
      "c1.webhooks.v1.ResponseProvisionStep.ResponseProvisionStepComplete": {
        "description": "The ResponseProvisionStepComplete message.",
        "properties": {
          "comment": {
            "description": "optional comment",
            "type": "string"
          }
        },
        "title": "Response Provision Step Complete",
        "type": "object",
        "x-speakeasy-name-override": "ResponseProvisionStepComplete"
      },
      "c1.webhooks.v1.ResponseProvisionStep.ResponseProvisionStepErrored": {
        "description": "The ResponseProvisionStepErrored message.",
        "properties": {
          "comment": {
            "description": "optional comment",
            "type": "string"
          }
        },
        "title": "Response Provision Step Errored",
        "type": "object",
        "x-speakeasy-name-override": "ResponseProvisionStepErrored"
      },
      "c1.webhooks.v1.ResponseTest": {
        "description": "The ResponseTest message.",
        "properties": {
          "version": {
            "description": "version contains the constant value \"v1\". Future versions of the Webhook Response\n will use a different string.",
            "type": "string"
          }
        },
        "title": "Response Test",
        "type": "object",
        "x-speakeasy-include": true,
        "x-speakeasy-name-override": "ResponseTest"
      },
      "c1.webhooks.v1.ResponseWorkflowStep": {
        "description": "The ResponseWorkflowStep message.",
        "properties": {
          "context": {
            "additionalProperties": true,
            "type": [
              "object",
              "null"
            ]
          },
          "version": {
            "description": "version contains the constant value \"v1\". Future versions of the Webhook Response\n will use a different string.",
            "type": "string"
          }
        },
        "title": "Response Workflow Step",
        "type": "object",
        "x-speakeasy-include": true,
        "x-speakeasy-name-override": "ResponseWorkflowStep"
      },
      "google.rpc.Status": {
        "description": "The `Status` type defines a logical error model that is suitable for\n different programming environments, including REST APIs and RPC APIs. It is\n used by [gRPC](https://github.com/grpc). Each `Status` message contains\n three pieces of data: error code, error message, and error details.\n\n You can find out more about this error model and how to work with it in the\n [API Design Guide](https://cloud.google.com/apis/design/errors).",
        "properties": {
          "code": {
            "description": "The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].",
            "format": "int32",
            "type": "integer"
          },
          "details": {
            "description": "A list of messages that carry the error details.  There is a common set of\n message types for APIs to use.",
            "items": {
              "additionalProperties": true,
              "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.",
              "properties": {
                "@type": {
                  "description": "The type of the serialized message.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "message": {
            "description": "A developer-facing error message, which should be in English. Any\n user-facing error message should be localized and sent in the\n [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.",
            "type": "string"
          }
        },
        "title": "Status",
        "type": "object",
        "x-speakeasy-name-override": "Status"
      },
      "validate.AnyRules": {
        "description": "AnyRules describe constraints applied exclusively to the\n `google.protobuf.Any` well-known type",
        "properties": {
          "in": {
            "description": "In specifies that this field's `type_url` must be equal to one of the\n specified values.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "notIn": {
            "description": "NotIn specifies that this field's `type_url` must not be equal to any of\n the specified values.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "required": {
            "description": "Required specifies that this field must be set",
            "type": "boolean"
          }
        },
        "title": "Any Rules",
        "type": "object",
        "x-speakeasy-name-override": "AnyRules"
      },
      "validate.BoolRules": {
        "description": "BoolRules describes the constraints applied to `bool` values",
        "properties": {
          "const": {
            "description": "Const specifies that this field must be exactly the specified value",
            "type": "boolean"
          }
        },
        "title": "Bool Rules",
        "type": "object",
        "x-speakeasy-name-override": "BoolRules"
      },
      "validate.BytesRules": {
        "description": "BytesRules describe the constraints applied to `bytes` values\n\nThis message contains a oneof named well_known. Only a single field of the following list may be set at a time:\n  - ip\n  - ipv4\n  - ipv6\n",
        "properties": {
          "const": {
            "description": "Const specifies that this field must be exactly the specified value",
            "format": "base64",
            "type": "string"
          },
          "contains": {
            "description": "Contains specifies that this field must have the specified bytes\n anywhere in the string.",
            "format": "base64",
            "type": "string"
          },
          "ignoreEmpty": {
            "description": "IgnoreEmpty specifies that the validation rules of this field should be\n evaluated only if the field is not empty",
            "type": "boolean"
          },
          "in": {
            "description": "In specifies that this field must be equal to one of the specified\n values",
            "items": {
              "format": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "ip": {
            "description": "Ip specifies that the field must be a valid IP (v4 or v6) address in\n byte format\nThis field is part of the `well_known` oneof.\nSee the documentation for `validate.BytesRules` for more details.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "ipv4": {
            "description": "Ipv4 specifies that the field must be a valid IPv4 address in byte\n format\nThis field is part of the `well_known` oneof.\nSee the documentation for `validate.BytesRules` for more details.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "ipv6": {
            "description": "Ipv6 specifies that the field must be a valid IPv6 address in byte\n format\nThis field is part of the `well_known` oneof.\nSee the documentation for `validate.BytesRules` for more details.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "len": {
            "description": "Len specifies that this field must be the specified number of bytes",
            "format": "uint64",
            "type": "string"
          },
          "maxLen": {
            "description": "MaxLen specifies that this field must be the specified number of bytes\n at a maximum",
            "format": "uint64",
            "type": "string"
          },
          "minLen": {
            "description": "MinLen specifies that this field must be the specified number of bytes\n at a minimum",
            "format": "uint64",
            "type": "string"
          },
          "notIn": {
            "description": "NotIn specifies that this field cannot be equal to one of the specified\n values",
            "items": {
              "format": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pattern": {
            "description": "Pattern specifes that this field must match against the specified\n regular expression (RE2 syntax). The included expression should elide\n any delimiters.",
            "type": "string"
          },
          "prefix": {
            "description": "Prefix specifies that this field must have the specified bytes at the\n beginning of the string.",
            "format": "base64",
            "type": "string"
          },
          "suffix": {
            "description": "Suffix specifies that this field must have the specified bytes at the\n end of the string.",
            "format": "base64",
            "type": "string"
          }
        },
        "title": "Bytes Rules",
        "type": "object",
        "x-speakeasy-name-override": "BytesRules"
      },
      "validate.DoubleRules": {
        "description": "DoubleRules describes the constraints applied to `double` values",
        "properties": {
          "const": {
            "description": "Const specifies that this field must be exactly the specified value",
            "type": "number"
          },
          "gt": {
            "description": "Gt specifies that this field must be greater than the specified value,\n exclusive. If the value of Gt is larger than a specified Lt or Lte, the\n range is reversed.",
            "type": "number"
          },
          "gte": {
            "description": "Gte specifies that this field must be greater than or equal to the\n specified value, inclusive. If the value of Gte is larger than a\n specified Lt or Lte, the range is reversed.",
            "type": "number"
          },
          "ignoreEmpty": {
            "description": "IgnoreEmpty specifies that the validation rules of this field should be\n evaluated only if the field is not empty",
            "type": "boolean"
          },
          "in": {
            "description": "In specifies that this field must be equal to one of the specified\n values",
            "items": {
              "type": "number"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "lt": {
            "description": "Lt specifies that this field must be less than the specified value,\n exclusive",
            "type": "number"
          },
          "lte": {
            "description": "Lte specifies that this field must be less than or equal to the\n specified value, inclusive",
            "type": "number"
          },
          "notIn": {
            "description": "NotIn specifies that this field cannot be equal to one of the specified\n values",
            "items": {
              "type": "number"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Double Rules",
        "type": "object",
        "x-speakeasy-name-override": "DoubleRules"
      },
      "validate.DurationRules": {
        "description": "DurationRules describe the constraints applied exclusively to the\n `google.protobuf.Duration` well-known type",
        "properties": {
          "const": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "gt": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "gte": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "in": {
            "description": "In specifies that this field must be equal to one of the specified\n values",
            "items": {
              "format": "duration",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "lt": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "lte": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          },
          "notIn": {
            "description": "NotIn specifies that this field cannot be equal to one of the specified\n values",
            "items": {
              "format": "duration",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "required": {
            "description": "Required specifies that this field must be set",
            "type": "boolean"
          }
        },
        "title": "Duration Rules",
        "type": "object",
        "x-speakeasy-name-override": "DurationRules"
      },
      "validate.EnumRules": {
        "description": "EnumRules describe the constraints applied to enum values",
        "properties": {
          "const": {
            "description": "Const specifies that this field must be exactly the specified value",
            "format": "int32",
            "type": "integer"
          },
          "definedOnly": {
            "description": "DefinedOnly specifies that this field must be only one of the defined\n values for this enum, failing on any undefined value.",
            "type": "boolean"
          },
          "in": {
            "description": "In specifies that this field must be equal to one of the specified\n values",
            "items": {
              "format": "int32",
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "notIn": {
            "description": "NotIn specifies that this field cannot be equal to one of the specified\n values",
            "items": {
              "format": "int32",
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Enum Rules",
        "type": "object",
        "x-speakeasy-name-override": "EnumRules"
      },
      "validate.FieldRules": {
        "description": "FieldRules encapsulates the rules for each type of field. Depending on the\n field, the correct set should be used to ensure proper validations.\n\nThis message contains a oneof named type. Only a single field of the following list may be set at a time:\n  - float\n  - double\n  - int32\n  - int64\n  - uint32\n  - uint64\n  - sint32\n  - sint64\n  - fixed32\n  - fixed64\n  - sfixed32\n  - sfixed64\n  - bool\n  - string\n  - bytes\n  - enum\n  - repeated\n  - map\n  - any\n  - duration\n  - timestamp\n",
        "properties": {
          "any": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/validate.AnyRules"
              },
              {
                "type": "null"
              }
            ]
          },
          "bool": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/validate.BoolRules"
              },
              {
                "type": "null"
              }
            ]
          },
          "bytes": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/validate.BytesRules"
              },
              {
                "type": "null"
              }
            ]
          },
          "double": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/validate.DoubleRules"
              },
              {
                "type": "null"
              }
            ]
          },
          "duration": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/validate.DurationRules"
              },
              {
                "type": "null"
              }
            ]
          },
          "enum": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/validate.EnumRules"
              },
              {
                "type": "null"
              }
            ]
          },
          "fixed32": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/validate.Fixed32Rules"
              },
              {
                "type": "null"
              }
            ]
          },
          "fixed64": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/validate.Fixed64Rules"
              },
              {
                "type": "null"
              }
            ]
          },
          "float": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/validate.FloatRules"
              },
              {
                "type": "null"
              }
            ]
          },
          "int32": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/validate.Int32Rules"
              },
              {
                "type": "null"
              }
            ]
          },
          "int64": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/validate.Int64Rules"
              },
              {
                "type": "null"
              }
            ]
          },
          "map": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/validate.MapRules"
              },
              {
                "type": "null"
              }
            ]
          },
          "message": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/validate.MessageRules"
              },
              {
                "type": "null"
              }
            ]
          },
          "repeated": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/validate.RepeatedRules"
              },
              {
                "type": "null"
              }
            ]
          },
          "sfixed32": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/validate.SFixed32Rules"
              },
              {
                "type": "null"
              }
            ]
          },
          "sfixed64": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/validate.SFixed64Rules"
              },
              {
                "type": "null"
              }
            ]
          },
          "sint32": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/validate.SInt32Rules"
              },
              {
                "type": "null"
              }
            ]
          },
          "sint64": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/validate.SInt64Rules"
              },
              {
                "type": "null"
              }
            ]
          },
          "string": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/validate.StringRules"
              },
              {
                "type": "null"
              }
            ]
          },
          "timestamp": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/validate.TimestampRules"
              },
              {
                "type": "null"
              }
            ]
          },
          "uint32": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/validate.UInt32Rules"
              },
              {
                "type": "null"
              }
            ]
          },
          "uint64": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/validate.UInt64Rules"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Field Rules",
        "type": "object",
        "x-speakeasy-name-override": "FieldRules"
      },
      "validate.Fixed32Rules": {
        "description": "Fixed32Rules describes the constraints applied to `fixed32` values",
        "properties": {
          "const": {
            "description": "Const specifies that this field must be exactly the specified value",
            "format": "uint32",
            "type": "integer"
          },
          "gt": {
            "description": "Gt specifies that this field must be greater than the specified value,\n exclusive. If the value of Gt is larger than a specified Lt or Lte, the\n range is reversed.",
            "format": "uint32",
            "type": "integer"
          },
          "gte": {
            "description": "Gte specifies that this field must be greater than or equal to the\n specified value, inclusive. If the value of Gte is larger than a\n specified Lt or Lte, the range is reversed.",
            "format": "uint32",
            "type": "integer"
          },
          "ignoreEmpty": {
            "description": "IgnoreEmpty specifies that the validation rules of this field should be\n evaluated only if the field is not empty",
            "type": "boolean"
          },
          "in": {
            "description": "In specifies that this field must be equal to one of the specified\n values",
            "items": {
              "format": "uint32",
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "lt": {
            "description": "Lt specifies that this field must be less than the specified value,\n exclusive",
            "format": "uint32",
            "type": "integer"
          },
          "lte": {
            "description": "Lte specifies that this field must be less than or equal to the\n specified value, inclusive",
            "format": "uint32",
            "type": "integer"
          },
          "notIn": {
            "description": "NotIn specifies that this field cannot be equal to one of the specified\n values",
            "items": {
              "format": "uint32",
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Fixed 32 Rules",
        "type": "object",
        "x-speakeasy-name-override": "Fixed32Rules"
      },
      "validate.Fixed64Rules": {
        "description": "Fixed64Rules describes the constraints applied to `fixed64` values",
        "properties": {
          "const": {
            "description": "Const specifies that this field must be exactly the specified value",
            "format": "uint64",
            "type": "string"
          },
          "gt": {
            "description": "Gt specifies that this field must be greater than the specified value,\n exclusive. If the value of Gt is larger than a specified Lt or Lte, the\n range is reversed.",
            "format": "uint64",
            "type": "string"
          },
          "gte": {
            "description": "Gte specifies that this field must be greater than or equal to the\n specified value, inclusive. If the value of Gte is larger than a\n specified Lt or Lte, the range is reversed.",
            "format": "uint64",
            "type": "string"
          },
          "ignoreEmpty": {
            "description": "IgnoreEmpty specifies that the validation rules of this field should be\n evaluated only if the field is not empty",
            "type": "boolean"
          },
          "in": {
            "description": "In specifies that this field must be equal to one of the specified\n values",
            "items": {
              "format": "uint64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "lt": {
            "description": "Lt specifies that this field must be less than the specified value,\n exclusive",
            "format": "uint64",
            "type": "string"
          },
          "lte": {
            "description": "Lte specifies that this field must be less than or equal to the\n specified value, inclusive",
            "format": "uint64",
            "type": "string"
          },
          "notIn": {
            "description": "NotIn specifies that this field cannot be equal to one of the specified\n values",
            "items": {
              "format": "uint64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Fixed 64 Rules",
        "type": "object",
        "x-speakeasy-name-override": "Fixed64Rules"
      },
      "validate.FloatRules": {
        "description": "FloatRules describes the constraints applied to `float` values",
        "properties": {
          "const": {
            "description": "Const specifies that this field must be exactly the specified value",
            "type": "number"
          },
          "gt": {
            "description": "Gt specifies that this field must be greater than the specified value,\n exclusive. If the value of Gt is larger than a specified Lt or Lte, the\n range is reversed.",
            "type": "number"
          },
          "gte": {
            "description": "Gte specifies that this field must be greater than or equal to the\n specified value, inclusive. If the value of Gte is larger than a\n specified Lt or Lte, the range is reversed.",
            "type": "number"
          },
          "ignoreEmpty": {
            "description": "IgnoreEmpty specifies that the validation rules of this field should be\n evaluated only if the field is not empty",
            "type": "boolean"
          },
          "in": {
            "description": "In specifies that this field must be equal to one of the specified\n values",
            "items": {
              "type": "number"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "lt": {
            "description": "Lt specifies that this field must be less than the specified value,\n exclusive",
            "type": "number"
          },
          "lte": {
            "description": "Lte specifies that this field must be less than or equal to the\n specified value, inclusive",
            "type": "number"
          },
          "notIn": {
            "description": "NotIn specifies that this field cannot be equal to one of the specified\n values",
            "items": {
              "type": "number"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Float Rules",
        "type": "object",
        "x-speakeasy-name-override": "FloatRules"
      },
      "validate.Int32Rules": {
        "description": "Int32Rules describes the constraints applied to `int32` values",
        "properties": {
          "const": {
            "description": "Const specifies that this field must be exactly the specified value",
            "format": "int32",
            "type": "integer"
          },
          "gt": {
            "description": "Gt specifies that this field must be greater than the specified value,\n exclusive. If the value of Gt is larger than a specified Lt or Lte, the\n range is reversed.",
            "format": "int32",
            "type": "integer"
          },
          "gte": {
            "description": "Gte specifies that this field must be greater than or equal to the\n specified value, inclusive. If the value of Gte is larger than a\n specified Lt or Lte, the range is reversed.",
            "format": "int32",
            "type": "integer"
          },
          "ignoreEmpty": {
            "description": "IgnoreEmpty specifies that the validation rules of this field should be\n evaluated only if the field is not empty",
            "type": "boolean"
          },
          "in": {
            "description": "In specifies that this field must be equal to one of the specified\n values",
            "items": {
              "format": "int32",
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "lt": {
            "description": "Lt specifies that this field must be less than the specified value,\n exclusive",
            "format": "int32",
            "type": "integer"
          },
          "lte": {
            "description": "Lte specifies that this field must be less than or equal to the\n specified value, inclusive",
            "format": "int32",
            "type": "integer"
          },
          "notIn": {
            "description": "NotIn specifies that this field cannot be equal to one of the specified\n values",
            "items": {
              "format": "int32",
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Int 32 Rules",
        "type": "object",
        "x-speakeasy-name-override": "Int32Rules"
      },
      "validate.Int64Rules": {
        "description": "Int64Rules describes the constraints applied to `int64` values",
        "properties": {
          "const": {
            "description": "Const specifies that this field must be exactly the specified value",
            "format": "int64",
            "type": "string"
          },
          "gt": {
            "description": "Gt specifies that this field must be greater than the specified value,\n exclusive. If the value of Gt is larger than a specified Lt or Lte, the\n range is reversed.",
            "format": "int64",
            "type": "string"
          },
          "gte": {
            "description": "Gte specifies that this field must be greater than or equal to the\n specified value, inclusive. If the value of Gte is larger than a\n specified Lt or Lte, the range is reversed.",
            "format": "int64",
            "type": "string"
          },
          "ignoreEmpty": {
            "description": "IgnoreEmpty specifies that the validation rules of this field should be\n evaluated only if the field is not empty",
            "type": "boolean"
          },
          "in": {
            "description": "In specifies that this field must be equal to one of the specified\n values",
            "items": {
              "format": "int64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "lt": {
            "description": "Lt specifies that this field must be less than the specified value,\n exclusive",
            "format": "int64",
            "type": "string"
          },
          "lte": {
            "description": "Lte specifies that this field must be less than or equal to the\n specified value, inclusive",
            "format": "int64",
            "type": "string"
          },
          "notIn": {
            "description": "NotIn specifies that this field cannot be equal to one of the specified\n values",
            "items": {
              "format": "int64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "Int 64 Rules",
        "type": "object",
        "x-speakeasy-name-override": "Int64Rules"
      },
      "validate.MapRules": {
        "description": "MapRules describe the constraints applied to `map` values",
        "properties": {
          "ignoreEmpty": {
            "description": "IgnoreEmpty specifies that the validation rules of this field should be\n evaluated only if the field is not empty",
            "type": "boolean"
          },
          "keys": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/validate.FieldRules"
              },
              {
                "type": "null"
              }
            ]
          },
          "maxPairs": {
            "description": "MaxPairs specifies that this field must have the specified number of\n KVs at a maximum",
            "format": "uint64",
            "type": "string"
          },
          "minPairs": {
            "description": "MinPairs specifies that this field must have the specified number of\n KVs at a minimum",
            "format": "uint64",
            "type": "string"
          },
          "noSparse": {
            "description": "NoSparse specifies values in this field cannot be unset. This only\n applies to map's with message value types.",
            "type": "boolean"
          },
          "values": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/validate.FieldRules"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "Map Rules",
        "type": "object",
        "x-speakeasy-name-override": "MapRules"
      },
      "validate.MessageRules": {
        "description": "MessageRules describe the constraints applied to embedded message values.\n For message-type fields, validation is performed recursively.",
        "properties": {
          "required": {
            "description": "Required specifies that this field must be set",
            "type": "boolean"
          },
          "skip": {
            "description": "Skip specifies that the validation rules of this field should not be\n evaluated",
            "type": "boolean"
          }
        },
        "title": "Message Rules",
        "type": "object",
        "x-speakeasy-name-override": "MessageRules"
      },
      "validate.RepeatedRules": {
        "description": "RepeatedRules describe the constraints applied to `repeated` values",
        "properties": {
          "ignoreEmpty": {
            "description": "IgnoreEmpty specifies that the validation rules of this field should be\n evaluated only if the field is not empty",
            "type": "boolean"
          },
          "items": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/validate.FieldRules"
              },
              {
                "type": "null"
              }
            ]
          },
          "maxItems": {
            "description": "MaxItems specifies that this field must have the specified number of\n items at a maximum",
            "format": "uint64",
            "type": "string"
          },
          "minItems": {
            "description": "MinItems specifies that this field must have the specified number of\n items at a minimum",
            "format": "uint64",
            "type": "string"
          },
          "unique": {
            "description": "Unique specifies that all elements in this field must be unique. This\n contraint is only applicable to scalar and enum types (messages are not\n supported).",
            "type": "boolean"
          }
        },
        "title": "Repeated Rules",
        "type": "object",
        "x-speakeasy-name-override": "RepeatedRules"
      },
      "validate.SFixed32Rules": {
        "description": "SFixed32Rules describes the constraints applied to `sfixed32` values",
        "properties": {
          "const": {
            "description": "Const specifies that this field must be exactly the specified value",
            "format": "int32",
            "type": "integer"
          },
          "gt": {
            "description": "Gt specifies that this field must be greater than the specified value,\n exclusive. If the value of Gt is larger than a specified Lt or Lte, the\n range is reversed.",
            "format": "int32",
            "type": "integer"
          },
          "gte": {
            "description": "Gte specifies that this field must be greater than or equal to the\n specified value, inclusive. If the value of Gte is larger than a\n specified Lt or Lte, the range is reversed.",
            "format": "int32",
            "type": "integer"
          },
          "ignoreEmpty": {
            "description": "IgnoreEmpty specifies that the validation rules of this field should be\n evaluated only if the field is not empty",
            "type": "boolean"
          },
          "in": {
            "description": "In specifies that this field must be equal to one of the specified\n values",
            "items": {
              "format": "int32",
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "lt": {
            "description": "Lt specifies that this field must be less than the specified value,\n exclusive",
            "format": "int32",
            "type": "integer"
          },
          "lte": {
            "description": "Lte specifies that this field must be less than or equal to the\n specified value, inclusive",
            "format": "int32",
            "type": "integer"
          },
          "notIn": {
            "description": "NotIn specifies that this field cannot be equal to one of the specified\n values",
            "items": {
              "format": "int32",
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "S Fixed 32 Rules",
        "type": "object",
        "x-speakeasy-name-override": "SFixed32Rules"
      },
      "validate.SFixed64Rules": {
        "description": "SFixed64Rules describes the constraints applied to `sfixed64` values",
        "properties": {
          "const": {
            "description": "Const specifies that this field must be exactly the specified value",
            "format": "int64",
            "type": "string"
          },
          "gt": {
            "description": "Gt specifies that this field must be greater than the specified value,\n exclusive. If the value of Gt is larger than a specified Lt or Lte, the\n range is reversed.",
            "format": "int64",
            "type": "string"
          },
          "gte": {
            "description": "Gte specifies that this field must be greater than or equal to the\n specified value, inclusive. If the value of Gte is larger than a\n specified Lt or Lte, the range is reversed.",
            "format": "int64",
            "type": "string"
          },
          "ignoreEmpty": {
            "description": "IgnoreEmpty specifies that the validation rules of this field should be\n evaluated only if the field is not empty",
            "type": "boolean"
          },
          "in": {
            "description": "In specifies that this field must be equal to one of the specified\n values",
            "items": {
              "format": "int64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "lt": {
            "description": "Lt specifies that this field must be less than the specified value,\n exclusive",
            "format": "int64",
            "type": "string"
          },
          "lte": {
            "description": "Lte specifies that this field must be less than or equal to the\n specified value, inclusive",
            "format": "int64",
            "type": "string"
          },
          "notIn": {
            "description": "NotIn specifies that this field cannot be equal to one of the specified\n values",
            "items": {
              "format": "int64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "S Fixed 64 Rules",
        "type": "object",
        "x-speakeasy-name-override": "SFixed64Rules"
      },
      "validate.SInt32Rules": {
        "description": "SInt32Rules describes the constraints applied to `sint32` values",
        "properties": {
          "const": {
            "description": "Const specifies that this field must be exactly the specified value",
            "format": "int32",
            "type": "integer"
          },
          "gt": {
            "description": "Gt specifies that this field must be greater than the specified value,\n exclusive. If the value of Gt is larger than a specified Lt or Lte, the\n range is reversed.",
            "format": "int32",
            "type": "integer"
          },
          "gte": {
            "description": "Gte specifies that this field must be greater than or equal to the\n specified value, inclusive. If the value of Gte is larger than a\n specified Lt or Lte, the range is reversed.",
            "format": "int32",
            "type": "integer"
          },
          "ignoreEmpty": {
            "description": "IgnoreEmpty specifies that the validation rules of this field should be\n evaluated only if the field is not empty",
            "type": "boolean"
          },
          "in": {
            "description": "In specifies that this field must be equal to one of the specified\n values",
            "items": {
              "format": "int32",
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "lt": {
            "description": "Lt specifies that this field must be less than the specified value,\n exclusive",
            "format": "int32",
            "type": "integer"
          },
          "lte": {
            "description": "Lte specifies that this field must be less than or equal to the\n specified value, inclusive",
            "format": "int32",
            "type": "integer"
          },
          "notIn": {
            "description": "NotIn specifies that this field cannot be equal to one of the specified\n values",
            "items": {
              "format": "int32",
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "S Int 32 Rules",
        "type": "object",
        "x-speakeasy-name-override": "SInt32Rules"
      },
      "validate.SInt64Rules": {
        "description": "SInt64Rules describes the constraints applied to `sint64` values",
        "properties": {
          "const": {
            "description": "Const specifies that this field must be exactly the specified value",
            "format": "int64",
            "type": "string"
          },
          "gt": {
            "description": "Gt specifies that this field must be greater than the specified value,\n exclusive. If the value of Gt is larger than a specified Lt or Lte, the\n range is reversed.",
            "format": "int64",
            "type": "string"
          },
          "gte": {
            "description": "Gte specifies that this field must be greater than or equal to the\n specified value, inclusive. If the value of Gte is larger than a\n specified Lt or Lte, the range is reversed.",
            "format": "int64",
            "type": "string"
          },
          "ignoreEmpty": {
            "description": "IgnoreEmpty specifies that the validation rules of this field should be\n evaluated only if the field is not empty",
            "type": "boolean"
          },
          "in": {
            "description": "In specifies that this field must be equal to one of the specified\n values",
            "items": {
              "format": "int64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "lt": {
            "description": "Lt specifies that this field must be less than the specified value,\n exclusive",
            "format": "int64",
            "type": "string"
          },
          "lte": {
            "description": "Lte specifies that this field must be less than or equal to the\n specified value, inclusive",
            "format": "int64",
            "type": "string"
          },
          "notIn": {
            "description": "NotIn specifies that this field cannot be equal to one of the specified\n values",
            "items": {
              "format": "int64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "S Int 64 Rules",
        "type": "object",
        "x-speakeasy-name-override": "SInt64Rules"
      },
      "validate.StringRules": {
        "description": "StringRules describe the constraints applied to `string` values\n\nThis message contains a oneof named well_known. Only a single field of the following list may be set at a time:\n  - email\n  - hostname\n  - ip\n  - ipv4\n  - ipv6\n  - uri\n  - uriRef\n  - address\n  - uuid\n  - wellKnownRegex\n",
        "properties": {
          "address": {
            "description": "Address specifies that the field must be either a valid hostname as\n defined by RFC 1034 (which does not support internationalized domain\n names or IDNs), or it can be a valid IP (v4 or v6).\nThis field is part of the `well_known` oneof.\nSee the documentation for `validate.StringRules` for more details.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "const": {
            "description": "Const specifies that this field must be exactly the specified value",
            "type": "string"
          },
          "contains": {
            "description": "Contains specifies that this field must have the specified substring\n anywhere in the string.",
            "type": "string"
          },
          "email": {
            "description": "Email specifies that the field must be a valid email address as\n defined by RFC 5322\nThis field is part of the `well_known` oneof.\nSee the documentation for `validate.StringRules` for more details.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "hostname": {
            "description": "Hostname specifies that the field must be a valid hostname as\n defined by RFC 1034. This constraint does not support\n internationalized domain names (IDNs).\nThis field is part of the `well_known` oneof.\nSee the documentation for `validate.StringRules` for more details.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "ignoreEmpty": {
            "description": "IgnoreEmpty specifies that the validation rules of this field should be\n evaluated only if the field is not empty",
            "type": "boolean"
          },
          "in": {
            "description": "In specifies that this field must be equal to one of the specified\n values",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "ip": {
            "description": "Ip specifies that the field must be a valid IP (v4 or v6) address.\n Valid IPv6 addresses should not include surrounding square brackets.\nThis field is part of the `well_known` oneof.\nSee the documentation for `validate.StringRules` for more details.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "ipv4": {
            "description": "Ipv4 specifies that the field must be a valid IPv4 address.\nThis field is part of the `well_known` oneof.\nSee the documentation for `validate.StringRules` for more details.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "ipv6": {
            "description": "Ipv6 specifies that the field must be a valid IPv6 address. Valid\n IPv6 addresses should not include surrounding square brackets.\nThis field is part of the `well_known` oneof.\nSee the documentation for `validate.StringRules` for more details.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "len": {
            "description": "Len specifies that this field must be the specified number of\n characters (Unicode code points). Note that the number of\n characters may differ from the number of bytes in the string.",
            "format": "uint64",
            "type": "string"
          },
          "lenBytes": {
            "description": "LenBytes specifies that this field must be the specified number of bytes\n at a minimum",
            "format": "uint64",
            "type": "string"
          },
          "maxBytes": {
            "description": "MaxBytes specifies that this field must be the specified number of bytes\n at a maximum",
            "format": "uint64",
            "type": "string"
          },
          "maxLen": {
            "description": "MaxLen specifies that this field must be the specified number of\n characters (Unicode code points) at a maximum. Note that the number of\n characters may differ from the number of bytes in the string.",
            "format": "uint64",
            "type": "string"
          },
          "minBytes": {
            "description": "MinBytes specifies that this field must be the specified number of bytes\n at a minimum",
            "format": "uint64",
            "type": "string"
          },
          "minLen": {
            "description": "MinLen specifies that this field must be the specified number of\n characters (Unicode code points) at a minimum. Note that the number of\n characters may differ from the number of bytes in the string.",
            "format": "uint64",
            "type": "string"
          },
          "notContains": {
            "description": "NotContains specifies that this field cannot have the specified substring\n anywhere in the string.",
            "type": "string"
          },
          "notIn": {
            "description": "NotIn specifies that this field cannot be equal to one of the specified\n values",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pattern": {
            "description": "Pattern specifes that this field must match against the specified\n regular expression (RE2 syntax). The included expression should elide\n any delimiters.",
            "type": "string"
          },
          "prefix": {
            "description": "Prefix specifies that this field must have the specified substring at\n the beginning of the string.",
            "type": "string"
          },
          "strict": {
            "description": "This applies to regexes HTTP_HEADER_NAME and HTTP_HEADER_VALUE to enable\n strict header validation.\n By default, this is true, and HTTP header validations are RFC-compliant.\n Setting to false will enable a looser validations that only disallows\n \\r\\n\\0 characters, which can be used to bypass header matching rules.",
            "type": "boolean"
          },
          "suffix": {
            "description": "Suffix specifies that this field must have the specified substring at\n the end of the string.",
            "type": "string"
          },
          "uri": {
            "description": "Uri specifies that the field must be a valid, absolute URI as defined\n by RFC 3986\nThis field is part of the `well_known` oneof.\nSee the documentation for `validate.StringRules` for more details.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "uriRef": {
            "description": "UriRef specifies that the field must be a valid URI as defined by RFC\n 3986 and may be relative or absolute.\nThis field is part of the `well_known` oneof.\nSee the documentation for `validate.StringRules` for more details.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "uuid": {
            "description": "Uuid specifies that the field must be a valid UUID as defined by\n RFC 4122\nThis field is part of the `well_known` oneof.\nSee the documentation for `validate.StringRules` for more details.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "wellKnownRegex": {
            "description": "WellKnownRegex specifies a common well known pattern defined as a regex.\nThis field is part of the `well_known` oneof.\nSee the documentation for `validate.StringRules` for more details.",
            "enum": [
              "UNKNOWN",
              "HTTP_HEADER_NAME",
              "HTTP_HEADER_VALUE"
            ],
            "type": [
              "string",
              "null"
            ],
            "x-speakeasy-unknown-values": "allow"
          }
        },
        "title": "String Rules",
        "type": "object",
        "x-speakeasy-name-override": "StringRules"
      },
      "validate.TimestampRules": {
        "description": "TimestampRules describe the constraints applied exclusively to the\n `google.protobuf.Timestamp` well-known type",
        "properties": {
          "const": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "gt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "gtNow": {
            "description": "GtNow specifies that this must be greater than the current time. GtNow\n can only be used with the Within rule.",
            "type": "boolean"
          },
          "gte": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "lt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "ltNow": {
            "description": "LtNow specifies that this must be less than the current time. LtNow\n can only be used with the Within rule.",
            "type": "boolean"
          },
          "lte": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "required": {
            "description": "Required specifies that this field must be set",
            "type": "boolean"
          },
          "within": {
            "format": "duration",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "Timestamp Rules",
        "type": "object",
        "x-speakeasy-name-override": "TimestampRules"
      },
      "validate.UInt32Rules": {
        "description": "UInt32Rules describes the constraints applied to `uint32` values",
        "properties": {
          "const": {
            "description": "Const specifies that this field must be exactly the specified value",
            "format": "uint32",
            "type": "integer"
          },
          "gt": {
            "description": "Gt specifies that this field must be greater than the specified value,\n exclusive. If the value of Gt is larger than a specified Lt or Lte, the\n range is reversed.",
            "format": "uint32",
            "type": "integer"
          },
          "gte": {
            "description": "Gte specifies that this field must be greater than or equal to the\n specified value, inclusive. If the value of Gte is larger than a\n specified Lt or Lte, the range is reversed.",
            "format": "uint32",
            "type": "integer"
          },
          "ignoreEmpty": {
            "description": "IgnoreEmpty specifies that the validation rules of this field should be\n evaluated only if the field is not empty",
            "type": "boolean"
          },
          "in": {
            "description": "In specifies that this field must be equal to one of the specified\n values",
            "items": {
              "format": "uint32",
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "lt": {
            "description": "Lt specifies that this field must be less than the specified value,\n exclusive",
            "format": "uint32",
            "type": "integer"
          },
          "lte": {
            "description": "Lte specifies that this field must be less than or equal to the\n specified value, inclusive",
            "format": "uint32",
            "type": "integer"
          },
          "notIn": {
            "description": "NotIn specifies that this field cannot be equal to one of the specified\n values",
            "items": {
              "format": "uint32",
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "U Int 32 Rules",
        "type": "object",
        "x-speakeasy-name-override": "UInt32Rules"
      },
      "validate.UInt64Rules": {
        "description": "UInt64Rules describes the constraints applied to `uint64` values",
        "properties": {
          "const": {
            "description": "Const specifies that this field must be exactly the specified value",
            "format": "uint64",
            "type": "string"
          },
          "gt": {
            "description": "Gt specifies that this field must be greater than the specified value,\n exclusive. If the value of Gt is larger than a specified Lt or Lte, the\n range is reversed.",
            "format": "uint64",
            "type": "string"
          },
          "gte": {
            "description": "Gte specifies that this field must be greater than or equal to the\n specified value, inclusive. If the value of Gte is larger than a\n specified Lt or Lte, the range is reversed.",
            "format": "uint64",
            "type": "string"
          },
          "ignoreEmpty": {
            "description": "IgnoreEmpty specifies that the validation rules of this field should be\n evaluated only if the field is not empty",
            "type": "boolean"
          },
          "in": {
            "description": "In specifies that this field must be equal to one of the specified\n values",
            "items": {
              "format": "uint64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "lt": {
            "description": "Lt specifies that this field must be less than the specified value,\n exclusive",
            "format": "uint64",
            "type": "string"
          },
          "lte": {
            "description": "Lte specifies that this field must be less than or equal to the\n specified value, inclusive",
            "format": "uint64",
            "type": "string"
          },
          "notIn": {
            "description": "NotIn specifies that this field cannot be equal to one of the specified\n values",
            "items": {
              "format": "uint64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "U Int 64 Rules",
        "type": "object",
        "x-speakeasy-name-override": "UInt64Rules"
      }
    },
    "securitySchemes": {
      "bearerAuth": {
        "scheme": "bearer",
        "type": "http"
      },
      "oauth": {
        "description": "This API uses OAuth2 with the Client Credential flow.\nClient Credentials must be sent in the BODY, not the headers.\nFor an example of how to implement this, refer to the [c1TokenSource.Token()](https://github.com/ConductorOne/conductorone-sdk-go/blob/3375fe7c0126d17e7ec4e711693dee7b791023aa/token_source.go#L101-L187) function.",
        "flows": {
          "clientCredentials": {
            "scopes": {},
            "tokenUrl": "/auth/v1/token"
          }
        },
        "type": "oauth2"
      }
    }
  },
  "info": {
    "description": "The C1 API is a HTTP API for managing C1 resources.",
    "title": "C1 API",
    "version": "0.1.0-alpha"
  },
  "openapi": "3.1.0",
  "paths": {
    "/api/v1/a2ui/conversations/{conversation_id}/surfaces": {
      "get": {
        "description": "ListSurfaces returns active surfaces for a conversation.",
        "operationId": "c1.api.a2ui.v1.A2UIService.ListSurfaces",
        "parameters": [
          {
            "in": "path",
            "name": "conversation_id",
            "required": true,
            "schema": {
              "description": "The conversationId field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.a2ui.v1.A2UIServiceListSurfacesResponse"
                }
              }
            },
            "description": "A2UIServiceListSurfacesResponse returns active surfaces."
          }
        },
        "summary": "List Surfaces",
        "tags": [
          "A 2 UI"
        ],
        "x-speakeasy-group": "A2UI",
        "x-speakeasy-name-override": "ListSurfaces"
      }
    },
    "/api/v1/a2ui/conversations/{conversation_id}/surfaces/{surface_id}/provenance": {
      "get": {
        "description": "GetSurfaceProvenance returns, in plain terms, what the surface's report\n was built from: every record its program touched, in the order it touched\n them.",
        "operationId": "c1.api.a2ui.v1.A2UIService.GetSurfaceProvenance",
        "parameters": [
          {
            "in": "path",
            "name": "conversation_id",
            "required": true,
            "schema": {
              "description": "The conversationId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "surface_id",
            "required": true,
            "schema": {
              "description": "The surfaceId field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.a2ui.v1.A2UIServiceGetSurfaceProvenanceResponse"
                }
              }
            },
            "description": "A2UIServiceGetSurfaceProvenanceResponse returns what a surface was built\n from: the steps its program ran, and the sources its components report."
          }
        },
        "summary": "Get Surface Provenance",
        "tags": [
          "A 2 UI"
        ],
        "x-speakeasy-group": "A2UI",
        "x-speakeasy-name-override": "GetSurfaceProvenance"
      }
    },
    "/api/v1/a2ui/surfaces/{surface_id}/actions": {
      "post": {
        "description": "SubmitAction handles user actions on A2UI surfaces.",
        "operationId": "c1.api.a2ui.v1.A2UIService.SubmitAction",
        "parameters": [
          {
            "in": "path",
            "name": "surface_id",
            "required": true,
            "schema": {
              "description": "The surfaceId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.A2UIServiceSubmitActionRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.a2ui.v1.A2UIServiceSubmitActionResponse"
                }
              }
            },
            "description": "A2UIServiceSubmitActionResponse returns the result of an action."
          }
        },
        "summary": "Submit Action",
        "tags": [
          "A 2 UI"
        ],
        "x-speakeasy-group": "A2UI",
        "x-speakeasy-name-override": "SubmitAction"
      }
    },
    "/api/v1/a2ui/surfaces/{surface_id}/feedback": {
      "get": {
        "description": "ListSurfaceFeedback lists feedback for a surface.",
        "operationId": "c1.api.a2ui.v1.A2UIService.ListSurfaceFeedback",
        "parameters": [
          {
            "in": "path",
            "name": "surface_id",
            "required": true,
            "schema": {
              "description": "The surfaceId field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.a2ui.v1.A2UIServiceListSurfaceFeedbackResponse"
                }
              }
            },
            "description": "A2UIServiceListSurfaceFeedbackResponse returns feedback for a surface."
          }
        },
        "summary": "List Surface Feedback",
        "tags": [
          "A 2 UI"
        ],
        "x-speakeasy-group": "A2UI",
        "x-speakeasy-name-override": "ListSurfaceFeedback"
      },
      "post": {
        "description": "CreateSurfaceFeedback submits feedback for a surface with a snapshot.",
        "operationId": "c1.api.a2ui.v1.A2UIService.CreateSurfaceFeedback",
        "parameters": [
          {
            "in": "path",
            "name": "surface_id",
            "required": true,
            "schema": {
              "description": "The surfaceId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.a2ui.v1.A2UIServiceCreateSurfaceFeedbackRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.a2ui.v1.A2UIServiceCreateSurfaceFeedbackResponse"
                }
              }
            },
            "description": "A2UIServiceCreateSurfaceFeedbackResponse returns the created feedback."
          }
        },
        "summary": "Create Surface Feedback",
        "tags": [
          "A 2 UI"
        ],
        "x-speakeasy-group": "A2UI",
        "x-speakeasy-name-override": "CreateSurfaceFeedback"
      }
    },
    "/api/v1/access_review": {
      "post": {
        "description": "Create creates a new access review campaign with the specified name, policy, and owners.",
        "operationId": "c1.api.accessreview.v1.AccessReviewService.Create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewServiceCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewServiceCreateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create",
        "tags": [
          "Access Review"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Access Review#create"
        },
        "x-speakeasy-group": "AccessReview",
        "x-speakeasy-name-override": "Create",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/access_review/{access_review_id}/entitlements/add": {
      "post": {
        "description": "AddCampaignEntitlements adds entitlements to an access review campaign's selection without\n replacing existing selections or their policies. For large selections, send chunks of at most\n 200 entitlements and wait for each call to finish before sending the next. Entitlements that\n are already selected are skipped, so retrying a chunk is safe. If the campaign has no apps and\n resources scope yet, it is set to the selected entitlements. The per-campaign entitlement quota\n applies to the total selection. To change user, account or grant scope afterwards, use\n AccessReviewService.Update with update_mask scope_v2 rather than SetCampaignScopeAndEntitlements,\n which would replace the whole selection.",
        "operationId": "c1.api.accessreview.v1.AccessReviewSetupEntitlementService.AddCampaignEntitlements",
        "parameters": [
          {
            "in": "path",
            "name": "access_review_id",
            "required": true,
            "schema": {
              "description": "The ID of the access review campaign to add entitlements to.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewAddCampaignEntitlementsRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewAddCampaignEntitlementsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Add Campaign Entitlements",
        "tags": [
          "Access Review"
        ],
        "x-speakeasy-group": "AccessReviewSetupEntitlement",
        "x-speakeasy-name-override": "AddCampaignEntitlements",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/access_review/{access_review_id}/entitlements/remove": {
      "post": {
        "description": "RemoveCampaignEntitlements removes entitlements from an access review campaign's selection\n without changing other selections or their policies. Entitlements that are not selected are\n ignored, so retrying a chunk is safe. Send at most 200 entitlements per call.",
        "operationId": "c1.api.accessreview.v1.AccessReviewSetupEntitlementService.RemoveCampaignEntitlements",
        "parameters": [
          {
            "in": "path",
            "name": "access_review_id",
            "required": true,
            "schema": {
              "description": "The ID of the access review campaign to remove entitlements from.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewRemoveCampaignEntitlementsRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewRemoveCampaignEntitlementsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Remove Campaign Entitlements",
        "tags": [
          "Access Review"
        ],
        "x-speakeasy-group": "AccessReviewSetupEntitlement",
        "x-speakeasy-name-override": "RemoveCampaignEntitlements",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/access_review/{access_review_id}/excluded_entitlements/add_delete": {
      "post": {
        "description": "AddDeleteExcludedEntitlements adds and/or removes individual excluded entitlements for a\n supported campaign without replacing the whole excluded set, so concurrent edits are not\n overwritten. Entitlements that are already excluded are skipped, and entitlements that are not\n excluded are ignored on removal. This does not change the campaign's scope_v2, and\n exclusions only take effect while scope_v2 sets excluded_specific_resources; use\n SetCampaignScopeAndExcludedEntitlements to set the scope.",
        "operationId": "c1.api.accessreview.v1.AccessReviewSetupEntitlementService.AddDeleteExcludedEntitlements",
        "parameters": [
          {
            "in": "path",
            "name": "access_review_id",
            "required": true,
            "schema": {
              "description": "The ID of the access review campaign to configure.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewAddDeleteExcludedEntitlementsRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewAddDeleteExcludedEntitlementsResponse"
                }
              }
            },
            "description": "AccessReviewAddDeleteExcludedEntitlementsResponse is empty. Read the current exclusions with GetCampaignScopeAndEntitlements."
          }
        },
        "summary": "Add Delete Excluded Entitlements",
        "tags": [
          "Access Review"
        ],
        "x-speakeasy-group": "AccessReviewSetupEntitlement",
        "x-speakeasy-name-override": "AddDeleteExcludedEntitlements",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/access_review/{access_review_id}/report": {
      "get": {
        "description": "List the generated reports for an access review campaign, each with a\n time-limited download_url and its output format.",
        "operationId": "c1.api.accessreview.v1.AccessReviewReportService.List",
        "parameters": [
          {
            "in": "path",
            "name": "access_review_id",
            "required": true,
            "schema": {
              "description": "The accessReviewId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewReportServiceListResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List",
        "tags": [
          "Access Review"
        ],
        "x-speakeasy-group": "AccessReviewReport",
        "x-speakeasy-name-override": "List",
        "x-stability-level": "draft"
      },
      "post": {
        "description": "Generate a report of the campaign's reviews and decisions. The format\n defaults to JSON (also available: CSV, XLSX). Works on in-flight (OPEN)\n and closed campaigns. Asynchronous — the report record is created\n immediately; the file is materialized in the background.",
        "operationId": "c1.api.accessreview.v1.AccessReviewActionsService.GenerateReport",
        "parameters": [
          {
            "in": "path",
            "name": "access_review_id",
            "required": true,
            "schema": {
              "description": "The accessReviewId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewActionsServiceGenerateReportRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewActionsServiceGenerateReportResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Generate Report",
        "tags": [
          "Access Review"
        ],
        "x-speakeasy-group": "AccessReviewActions",
        "x-speakeasy-name-override": "GenerateReport",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/access_review/{access_review_id}/scope_and_entitlements": {
      "get": {
        "description": "GetCampaignScopeAndEntitlements retrieves the current scope configuration and selected entitlements for an access review campaign.",
        "operationId": "c1.api.accessreview.v1.AccessReviewSetupEntitlementService.GetCampaignScopeAndEntitlements",
        "parameters": [
          {
            "in": "path",
            "name": "access_review_id",
            "required": true,
            "schema": {
              "description": "The ID of the access review campaign to retrieve scope and entitlements for.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewSetupEntitlementAndScopeServiceSetResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Campaign Scope And Entitlements",
        "tags": [
          "Access Review"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "Access Review Setup#read",
          "terraform-resource": "Access Review Setup#read"
        },
        "x-speakeasy-group": "AccessReviewSetupEntitlement",
        "x-speakeasy-name-override": "GetCampaignScopeAndEntitlements",
        "x-stability-level": "stable"
      },
      "post": {
        "description": "SetCampaignScopeAndEntitlements replaces the scope configuration and selected entitlements for an access review campaign.\n Each call replaces the whole selection. To build a large selection, use AddCampaignEntitlements in chunks instead.",
        "operationId": "c1.api.accessreview.v1.AccessReviewSetupEntitlementService.SetCampaignScopeAndEntitlements",
        "parameters": [
          {
            "in": "path",
            "name": "access_review_id",
            "required": true,
            "schema": {
              "description": "The ID of the access review campaign to configure.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewSetupEntitlementAndScopeServiceSetRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewSetupEntitlementAndScopeServiceSetResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Set Campaign Scope And Entitlements",
        "tags": [
          "Access Review"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": [
            "Access Review Setup#create",
            "Access Review Setup#update"
          ]
        },
        "x-speakeasy-group": "AccessReviewSetupEntitlement",
        "x-speakeasy-name-override": "SetCampaignScopeAndEntitlements",
        "x-stability-level": "stable"
      }
    },
    "/api/v1/access_review/{access_review_id}/scope_and_excluded_entitlements": {
      "post": {
        "description": "SetCampaignScopeAndExcludedEntitlements replaces the scope configuration and the set of\n excluded entitlements for a supported campaign scope. Each call replaces the whole excluded set; to\n add or remove individual entitlements, use AddDeleteExcludedEntitlements instead. Exclusions\n are supported for BY_USERS, selector/resource-type BY_ENTITLEMENTS, BY_INHERITANCE, and\n BY_ACCESS_CONFLICTS campaigns. Read them back with GetCampaignScopeAndEntitlements.",
        "operationId": "c1.api.accessreview.v1.AccessReviewSetupEntitlementService.SetCampaignScopeAndExcludedEntitlements",
        "parameters": [
          {
            "in": "path",
            "name": "access_review_id",
            "required": true,
            "schema": {
              "description": "The ID of the access review campaign to configure.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewSetCampaignScopeAndExcludedEntitlementsRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewSetCampaignScopeAndExcludedEntitlementsResponse"
                }
              }
            },
            "description": "AccessReviewSetCampaignScopeAndExcludedEntitlementsResponse contains the resulting excluded entitlements and scope."
          }
        },
        "summary": "Set Campaign Scope And Excluded Entitlements",
        "tags": [
          "Access Review"
        ],
        "x-speakeasy-group": "AccessReviewSetupEntitlement",
        "x-speakeasy-name-override": "SetCampaignScopeAndExcludedEntitlements",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/access_review/{access_review_id}/scope_by_excluded_resource_type": {
      "post": {
        "deprecated": true,
        "description": "SetCampaignScopeByExcludedResourceType replaces the scope configuration and the set of excluded\n resource types for a legacy campaign configuration. Read the current exclusions back with\n GetCampaignScopeAndEntitlements.\n\n This route is superseded and scheduled for removal. Requests that set excluded_resource_types\n are rejected with FAILED_PRECONDITION; an empty list, which clears stored resource-type\n exclusions, is still accepted. To exclude entitlements by resource type, call\n SetCampaignScopeAndExcludedEntitlements with scope_v2.excluded_app_selection_criteria and list\n the resource types in resource_type_refs.",
        "operationId": "c1.api.accessreview.v1.AccessReviewSetupEntitlementService.SetCampaignScopeByExcludedResourceType",
        "parameters": [
          {
            "in": "path",
            "name": "access_review_id",
            "required": true,
            "schema": {
              "description": "The ID of the user-first access review campaign to configure.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewSetCampaignScopeByExcludedResourceTypeRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewSetCampaignScopeByExcludedResourceTypeResponse"
                }
              }
            },
            "description": "AccessReviewSetCampaignScopeByExcludedResourceTypeResponse contains the resulting excluded resource types and scope."
          }
        },
        "summary": "Set Campaign Scope By Excluded Resource Type",
        "tags": [
          "Access Review"
        ],
        "x-speakeasy-group": "AccessReviewSetupEntitlement",
        "x-speakeasy-name-override": "SetCampaignScopeByExcludedResourceType",
        "x-stability-level": "draft",
        "x-sunset": "2026-11-06"
      }
    },
    "/api/v1/access_review/{access_review_id}/scope_by_resource_type": {
      "post": {
        "description": "SetCampaignScopeByResourceType sets the campaign scope by selecting specific resource types to include in the review.",
        "operationId": "c1.api.accessreview.v1.AccessReviewSetupEntitlementService.SetCampaignScopeByResourceType",
        "parameters": [
          {
            "in": "path",
            "name": "access_review_id",
            "required": true,
            "schema": {
              "description": "The ID of the access review campaign to configure.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewSetScopeByResourceTypeRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewSetScopeByResourceTypeResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Set Campaign Scope By Resource Type",
        "tags": [
          "Access Review"
        ],
        "x-speakeasy-group": "AccessReviewSetupEntitlement",
        "x-speakeasy-name-override": "SetCampaignScopeByResourceType",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/access_review/{id}": {
      "delete": {
        "description": "Delete transitions an access review campaign to the deleted state, along with its dependent objects.",
        "operationId": "c1.api.accessreview.v1.AccessReviewService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the access review campaign to delete.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewServiceDeleteResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete",
        "tags": [
          "Access Review"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Access Review#delete"
        },
        "x-speakeasy-group": "AccessReview",
        "x-speakeasy-name-override": "Delete",
        "x-stability-level": "draft"
      },
      "get": {
        "description": "Get retrieves a single access review campaign by ID.",
        "operationId": "c1.api.accessreview.v1.AccessReviewService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the access review campaign to retrieve.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewServiceGetResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "Access Review"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "Access Review#read",
          "terraform-resource": "Access Review#read"
        },
        "x-speakeasy-group": "AccessReview",
        "x-speakeasy-name-override": "Get",
        "x-stability-level": "draft"
      },
      "post": {
        "description": "Update modifies an existing access review campaign. Use the update_mask to specify which fields to change.",
        "operationId": "c1.api.accessreview.v1.AccessReviewService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The unique identifier of this access review campaign.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewServiceUpdateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update",
        "tags": [
          "Access Review"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Access Review#update"
        },
        "x-speakeasy-group": "AccessReview",
        "x-speakeasy-name-override": "Update",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/access_review_template": {
      "post": {
        "description": "Create creates a new access review template that defines a reusable configuration for launching campaigns.",
        "operationId": "c1.api.accessreview.v1.AccessReviewTemplateService.Create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewTemplateServiceCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewTemplateServiceCreateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create",
        "tags": [
          "Access Review Template"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Access Review Template#create"
        },
        "x-speakeasy-group": "AccessReviewTemplate",
        "x-speakeasy-name-override": "Create",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/access_review_template/{access_review_template_id}/entitlements/add": {
      "post": {
        "description": "AddTemplateEntitlements adds entitlements to an access review template's selection without\n replacing existing selections or their policies. For large selections, send chunks of at most\n 200 entitlements and wait for each call to finish before sending the next. Entitlements that\n are already selected are skipped, so retrying a chunk is safe. If the template has no apps and\n resources scope yet, it is set to the selected entitlements. The per-campaign entitlement quota\n applies to the total selection. To change user, account or grant scope afterwards, send the\n template from AccessReviewTemplateService.Get to AccessReviewTemplateService.Update with\n update_mask scope rather than using SetScopeAndEntitlements, which would replace the whole selection.",
        "operationId": "c1.api.accessreview.v1.AccessReviewTemplateSetupEntitlementService.AddTemplateEntitlements",
        "parameters": [
          {
            "in": "path",
            "name": "access_review_template_id",
            "required": true,
            "schema": {
              "description": "The ID of the access review template to add entitlements to.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewAddTemplateEntitlementsRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewAddTemplateEntitlementsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Add Template Entitlements",
        "tags": [
          "Access Review Templates"
        ],
        "x-speakeasy-group": "AccessReviewTemplateSetupEntitlement",
        "x-speakeasy-name-override": "AddTemplateEntitlements",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/access_review_template/{access_review_template_id}/entitlements/remove": {
      "post": {
        "description": "RemoveTemplateEntitlements removes entitlements from an access review template's selection\n without changing other selections or their policies. Entitlements that are not selected are\n ignored, so retrying a chunk is safe. Send at most 200 entitlements per call.",
        "operationId": "c1.api.accessreview.v1.AccessReviewTemplateSetupEntitlementService.RemoveTemplateEntitlements",
        "parameters": [
          {
            "in": "path",
            "name": "access_review_template_id",
            "required": true,
            "schema": {
              "description": "The ID of the access review template to remove entitlements from.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewRemoveTemplateEntitlementsRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewRemoveTemplateEntitlementsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Remove Template Entitlements",
        "tags": [
          "Access Review Templates"
        ],
        "x-speakeasy-group": "AccessReviewTemplateSetupEntitlement",
        "x-speakeasy-name-override": "RemoveTemplateEntitlements",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/access_review_template/{access_review_template_id}/excluded_entitlements/add_delete": {
      "post": {
        "description": "AddDeleteExcludedEntitlements adds and/or removes individual excluded entitlements for a\n supported campaign template without replacing the whole excluded set, so concurrent edits are\n not overwritten. This does not change the template's scope, and exclusions\n only take effect while the scope sets excluded_specific_resources; use\n SetScopeAndExcludedEntitlements to set the scope.",
        "operationId": "c1.api.accessreview.v1.AccessReviewTemplateSetupEntitlementService.AddDeleteExcludedEntitlements",
        "parameters": [
          {
            "in": "path",
            "name": "access_review_template_id",
            "required": true,
            "schema": {
              "description": "The ID of the access review template to configure.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewTemplateAddDeleteExcludedEntitlementsRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewTemplateAddDeleteExcludedEntitlementsResponse"
                }
              }
            },
            "description": "AccessReviewTemplateAddDeleteExcludedEntitlementsResponse is empty. Read the current exclusions with GetScopeAndEntitlements."
          }
        },
        "summary": "Add Delete Excluded Entitlements",
        "tags": [
          "Access Review Templates"
        ],
        "x-speakeasy-group": "AccessReviewTemplateSetupEntitlement",
        "x-speakeasy-name-override": "AddDeleteExcludedEntitlements",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/access_review_template/{access_review_template_id}/scope_and_entitlements": {
      "get": {
        "description": "GetScopeAndEntitlements retrieves the current scope configuration and selected entitlements for an access review template.",
        "operationId": "c1.api.accessreview.v1.AccessReviewTemplateSetupEntitlementService.GetScopeAndEntitlements",
        "parameters": [
          {
            "in": "path",
            "name": "access_review_template_id",
            "required": true,
            "schema": {
              "description": "The ID of the access review template to retrieve scope and entitlements for.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewTemplateSetupEntitlementServiceSetResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Scope And Entitlements",
        "tags": [
          "Access Review Templates"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "Access Review Template Setup#read",
          "terraform-resource": "Access Review Template Setup#read"
        },
        "x-speakeasy-group": "AccessReviewTemplateSetupEntitlement",
        "x-speakeasy-name-override": "GetScopeAndEntitlements",
        "x-stability-level": "stable"
      },
      "post": {
        "description": "SetScopeAndEntitlements replaces the scope configuration and selected entitlements for an access review template.\n Each call replaces the whole selection. To build a large selection, use AddTemplateEntitlements in chunks instead.",
        "operationId": "c1.api.accessreview.v1.AccessReviewTemplateSetupEntitlementService.SetScopeAndEntitlements",
        "parameters": [
          {
            "in": "path",
            "name": "access_review_template_id",
            "required": true,
            "schema": {
              "description": "The ID of the access review template to configure.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewTemplateSetupEntitlementServiceSetRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewTemplateSetupEntitlementServiceSetResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Set Scope And Entitlements",
        "tags": [
          "Access Review Templates"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": [
            "Access Review Template Setup#create",
            "Access Review Template Setup#update"
          ]
        },
        "x-speakeasy-group": "AccessReviewTemplateSetupEntitlement",
        "x-speakeasy-name-override": "SetScopeAndEntitlements",
        "x-stability-level": "stable"
      }
    },
    "/api/v1/access_review_template/{access_review_template_id}/scope_and_excluded_entitlements": {
      "post": {
        "description": "SetScopeAndExcludedEntitlements replaces the scope configuration and the set of excluded\n entitlements for a supported campaign template. Each call replaces the whole excluded set; to\n add or remove individual entitlements, use AddDeleteExcludedEntitlements instead. Exclusions\n are supported for BY_USERS, selector/resource-type BY_ENTITLEMENTS, BY_INHERITANCE, and\n BY_ACCESS_CONFLICTS templates. Read them back with GetScopeAndEntitlements.",
        "operationId": "c1.api.accessreview.v1.AccessReviewTemplateSetupEntitlementService.SetScopeAndExcludedEntitlements",
        "parameters": [
          {
            "in": "path",
            "name": "access_review_template_id",
            "required": true,
            "schema": {
              "description": "The ID of the access review template to configure.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewSetTemplateScopeAndExcludedEntitlementsRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewSetTemplateScopeAndExcludedEntitlementsResponse"
                }
              }
            },
            "description": "AccessReviewSetTemplateScopeAndExcludedEntitlementsResponse contains the resulting excluded entitlements and scope."
          }
        },
        "summary": "Set Scope And Excluded Entitlements",
        "tags": [
          "Access Review Templates"
        ],
        "x-speakeasy-group": "AccessReviewTemplateSetupEntitlement",
        "x-speakeasy-name-override": "SetScopeAndExcludedEntitlements",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/access_review_template/{access_review_template_id}/scope_by_excluded_resource_type": {
      "post": {
        "deprecated": true,
        "description": "SetScopeByExcludedResourceType replaces the scope configuration and the set of excluded\n resource types for a legacy campaign template. Read the current exclusions back with\n GetScopeAndEntitlements.\n\n This route is superseded and scheduled for removal. Requests that set excluded_resource_types\n are rejected with FAILED_PRECONDITION; an empty list, which clears stored resource-type\n exclusions, is still accepted. To exclude entitlements by resource type, call\n SetScopeAndExcludedEntitlements with scope.excluded_app_selection_criteria and list the\n resource types in resource_type_refs.",
        "operationId": "c1.api.accessreview.v1.AccessReviewTemplateSetupEntitlementService.SetScopeByExcludedResourceType",
        "parameters": [
          {
            "in": "path",
            "name": "access_review_template_id",
            "required": true,
            "schema": {
              "description": "The ID of the user-first access review template to configure.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewSetTemplateScopeByExcludedResourceTypeRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewSetTemplateScopeByExcludedResourceTypeResponse"
                }
              }
            },
            "description": "AccessReviewSetTemplateScopeByExcludedResourceTypeResponse contains the resulting excluded resource types and scope."
          }
        },
        "summary": "Set Scope By Excluded Resource Type",
        "tags": [
          "Access Review Templates"
        ],
        "x-speakeasy-group": "AccessReviewTemplateSetupEntitlement",
        "x-speakeasy-name-override": "SetScopeByExcludedResourceType",
        "x-stability-level": "draft",
        "x-sunset": "2026-11-06"
      }
    },
    "/api/v1/access_review_template/{access_review_template_id}/scope_by_resource_type": {
      "post": {
        "description": "SetScopeByResourceType sets the template scope by selecting specific resource types to include in campaigns created from this template.",
        "operationId": "c1.api.accessreview.v1.AccessReviewTemplateSetupEntitlementService.SetScopeByResourceType",
        "parameters": [
          {
            "in": "path",
            "name": "access_review_template_id",
            "required": true,
            "schema": {
              "description": "The ID of the access review template to configure.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewTemplateSetScopeByResourceTypeRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewTemplateSetScopeByResourceTypeResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Set Scope By Resource Type",
        "tags": [
          "Access Review Templates"
        ],
        "x-speakeasy-group": "AccessReviewTemplateSetupEntitlement",
        "x-speakeasy-name-override": "SetScopeByResourceType",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/access_review_template/{id}": {
      "delete": {
        "description": "Delete an access review template. The template can no longer be used to create campaigns.",
        "operationId": "c1.api.accessreview.v1.AccessReviewTemplateService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the access review template to delete.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewTemplateServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewTemplateServiceDeleteResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete",
        "tags": [
          "Access Review Template"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Access Review Template#delete"
        },
        "x-speakeasy-group": "AccessReviewTemplate",
        "x-speakeasy-name-override": "Delete",
        "x-stability-level": "draft"
      },
      "get": {
        "description": "Get retrieves a single access review template by ID.",
        "operationId": "c1.api.accessreview.v1.AccessReviewTemplateService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the access review template to retrieve.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewTemplateServiceGetResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "Access Review Template"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "Access Review Template#read",
          "terraform-resource": "Access Review Template#read"
        },
        "x-speakeasy-group": "AccessReviewTemplate",
        "x-speakeasy-name-override": "Get",
        "x-stability-level": "draft"
      },
      "post": {
        "description": "Update modifies an existing access review template. Use the update_mask to specify which fields to change.",
        "operationId": "c1.api.accessreview.v1.AccessReviewTemplateService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The unique identifier of this template.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewTemplateServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewTemplateServiceUpdateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update",
        "tags": [
          "Access Review Template"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Access Review Template#update"
        },
        "x-speakeasy-group": "AccessReviewTemplate",
        "x-speakeasy-name-override": "Update",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/access_reviews": {
      "get": {
        "description": "List returns a paginated list of access review campaigns.",
        "operationId": "c1.api.accessreview.v1.AccessReviewService.List",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The maximum number of results to return per page. Maximum 100.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Pagination token from a previous List response to fetch the next page.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.accessreview.v1.AccessReviewServiceListResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List",
        "tags": [
          "Access Review"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "Access Reviews#read",
          "terraform-resource": "Access Reviews#read"
        },
        "x-speakeasy-group": "AccessReview",
        "x-speakeasy-name-override": "List",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/accessconflict": {
      "post": {
        "description": "Create a new conflict monitor for defining a Separation of Duty rule. Entitlement sets are bound separately via AppEntitlementMonitorBindingService.",
        "operationId": "c1.api.accessconflict.v1.AccessConflictService.CreateMonitor",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.accessconflict.v1.ConflictMonitorCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.accessconflict.v1.ConflictMonitor"
                }
              }
            },
            "description": "A conflict monitor defines a Separation of Duty rule between two entitlement sets.\n It detects when any user holds entitlements from both set A and set B simultaneously."
          }
        },
        "summary": "Create Monitor",
        "tags": [
          "Access Conflict"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Access_Conflict#create"
        },
        "x-speakeasy-group": "AccessConflict",
        "x-speakeasy-name-override": "CreateMonitor"
      }
    },
    "/api/v1/accessconflict/{id}": {
      "delete": {
        "description": "Delete a conflict monitor and its associated entitlement set bindings.",
        "operationId": "c1.api.accessconflict.v1.AccessConflictService.DeleteMonitor",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The unique identifier of the conflict monitor to delete.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.accessconflict.v1.ConflictMonitorDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.accessconflict.v1.ConflictMonitorDeleteResponse"
                }
              }
            },
            "description": "The response message for deleting a conflict monitor."
          }
        },
        "summary": "Delete Monitor",
        "tags": [
          "Access Conflict"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Access_Conflict#delete"
        },
        "x-speakeasy-group": "AccessConflict",
        "x-speakeasy-name-override": "DeleteMonitor"
      },
      "get": {
        "description": "Retrieve a single conflict monitor by ID.",
        "operationId": "c1.api.accessconflict.v1.AccessConflictService.GetMonitor",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The unique identifier of the conflict monitor to retrieve.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.accessconflict.v1.ConflictMonitor"
                }
              }
            },
            "description": "A conflict monitor defines a Separation of Duty rule between two entitlement sets.\n It detects when any user holds entitlements from both set A and set B simultaneously."
          }
        },
        "summary": "Get Monitor",
        "tags": [
          "Access Conflict"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": null,
          "terraform-resource": "Access_Conflict#read"
        },
        "x-speakeasy-group": "AccessConflict",
        "x-speakeasy-name-override": "GetMonitor"
      },
      "post": {
        "description": "Update the display name, description, or notification settings of a conflict monitor.",
        "operationId": "c1.api.accessconflict.v1.AccessConflictService.UpdateMonitor",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The unique identifier of the conflict monitor to update.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.accessconflict.v1.ConflictMonitorUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.accessconflict.v1.ConflictMonitor"
                }
              }
            },
            "description": "A conflict monitor defines a Separation of Duty rule between two entitlement sets.\n It detects when any user holds entitlements from both set A and set B simultaneously."
          }
        },
        "summary": "Update Monitor",
        "tags": [
          "Access Conflict"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Access_Conflict#update"
        },
        "x-speakeasy-group": "AccessConflict",
        "x-speakeasy-name-override": "UpdateMonitor"
      }
    },
    "/api/v1/app-secrets-admin/revoke": {
      "post": {
        "description": "Revoke queues one provider-side revoke for one vended credential.",
        "operationId": "c1.api.app.v1.AppSecretAdminService.Revoke",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.AppSecretAdminServiceRevokeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.AppSecretAdminServiceRevokeResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Revoke",
        "tags": [
          "App Secrets Admin"
        ],
        "x-speakeasy-group": "AppSecretAdmin",
        "x-speakeasy-name-override": "Revoke",
        "x-stability-level": "beta"
      }
    },
    "/api/v1/app_users/owned_service_accounts": {
      "post": {
        "description": "ListOwnedServiceAccounts returns the service accounts owned by the calling\n user. The owner is the authenticated caller; it is not accepted as an input.",
        "operationId": "c1.api.app.v1.AppUserService.ListOwnedServiceAccounts",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.ListOwnedServiceAccountsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.ListOwnedServiceAccountsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Owned Service Accounts",
        "tags": [
          "AppUsers"
        ],
        "x-speakeasy-group": "AppUser",
        "x-speakeasy-name-override": "ListOwnedServiceAccounts",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/appentitlementmonitorbinding": {
      "delete": {
        "description": "Remove an app entitlement from a conflict monitor's entitlement set.",
        "operationId": "c1.api.accessconflict.v1.AppEntitlementMonitorBindingService.DeleteAppEntitlementMonitorBinding",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.accessconflict.v1.DeleteAppEntitlementMonitorBindingRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.accessconflict.v1.DeleteAppEntitlementMonitorBindingResponse"
                }
              }
            },
            "description": "The response message for deleting an app entitlement monitor binding."
          }
        },
        "summary": "Delete App Entitlement Monitor Binding",
        "tags": [
          "App Entitlement Monitor Binding"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "App_Entitlement_Monitor_Binding#delete"
        },
        "x-speakeasy-group": "AppEntitlementMonitorBinding",
        "x-speakeasy-name-override": "DeleteAppEntitlementMonitorBinding"
      },
      "post": {
        "description": "Bind an app entitlement to one side (A or B) of a conflict monitor.",
        "operationId": "c1.api.accessconflict.v1.AppEntitlementMonitorBindingService.CreateAppEntitlementMonitorBinding",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.accessconflict.v1.CreateAppEntitlementMonitorBindingRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.accessconflict.v1.AppEntitlementMonitorBinding"
                }
              }
            },
            "description": "Represents the association of an app entitlement with one side (A or B) of a conflict monitor."
          }
        },
        "summary": "Create App Entitlement Monitor Binding",
        "tags": [
          "App Entitlement Monitor Binding"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "App_Entitlement_Monitor_Binding#create"
        },
        "x-speakeasy-group": "AppEntitlementMonitorBinding",
        "x-speakeasy-name-override": "CreateAppEntitlementMonitorBinding"
      }
    },
    "/api/v1/appentitlementmonitorbinding/get": {
      "post": {
        "description": "Retrieve a single binding that associates an app entitlement with one side of a conflict monitor.",
        "operationId": "c1.api.accessconflict.v1.AppEntitlementMonitorBindingService.GetAppEntitlementMonitorBinding",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.accessconflict.v1.GetAppEntitlementMonitorBindingRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.accessconflict.v1.AppEntitlementMonitorBinding"
                }
              }
            },
            "description": "Represents the association of an app entitlement with one side (A or B) of a conflict monitor."
          }
        },
        "summary": "Get App Entitlement Monitor Binding",
        "tags": [
          "App Entitlement Monitor Binding"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "App_Entitlement_Monitor_Binding#read",
          "terraform-resource": "App_Entitlement_Monitor_Binding#read"
        },
        "x-speakeasy-group": "AppEntitlementMonitorBinding",
        "x-speakeasy-name-override": "GetAppEntitlementMonitorBinding"
      }
    },
    "/api/v1/apps": {
      "get": {
        "description": "List all apps.",
        "operationId": "c1.api.app.v1.Apps.List",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.ListAppsResponse"
                }
              }
            },
            "description": "The ListAppsResponse message contains a list of results and a nextPageToken if applicable."
          }
        },
        "summary": "List",
        "tags": [
          "App"
        ],
        "x-speakeasy-group": "Apps",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Create a new manual app without a connector.",
        "operationId": "c1.api.app.v1.Apps.Create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.CreateAppRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.CreateAppResponse"
                }
              }
            },
            "description": "CreateAppResponse contains the newly created application."
          }
        },
        "summary": "Create",
        "tags": [
          "App"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "App#create"
        },
        "x-speakeasy-group": "Apps",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/apps/connectors/credentials": {
      "post": {
        "description": "Rotate credentials for a connector.",
        "operationId": "c1.api.app.v1.ConnectorService.RotateCredential",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.ConnectorServiceRotateCredentialRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.ConnectorServiceRotateCredentialResponse"
                }
              }
            },
            "description": "ConnectorServiceRotateCredentialResponse is the response returned by the rotate method."
          }
        },
        "summary": "Rotate Credential",
        "tags": [
          "Connector"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "ConnectorCredential#create"
        },
        "x-speakeasy-group": "Connector",
        "x-speakeasy-name-override": "RotateCredential"
      }
    },
    "/api/v1/apps/connectors/validate_config/http": {
      "post": {
        "description": "Validate an HTTP connector configuration and return any diagnostics or errors found.",
        "operationId": "c1.api.app.v1.ConnectorService.ValidateHTTPConnectorConfig",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.EditorValidateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.EditorValidateResponse"
                }
              }
            },
            "description": "The EditorValidateResponse message contains validation results."
          }
        },
        "summary": "Validate Http Connector Config",
        "tags": [
          "Connector"
        ],
        "x-speakeasy-group": "Connector",
        "x-speakeasy-name-override": "ValidateHTTPConnectorConfig"
      }
    },
    "/api/v1/apps/{app_id}/access_request_defaults": {
      "get": {
        "description": "Retrieve the current access request default settings for an app.",
        "operationId": "c1.api.app.v1.AppAccessRequestsDefaultsService.GetAppAccessRequestsDefaults",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app to retrieve access request defaults for.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.AppAccessRequestDefaults"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get App Access Requests Defaults",
        "tags": [
          "AppAccessRequestDefaults"
        ],
        "x-speakeasy-group": "AppAccessRequestsDefaults",
        "x-speakeasy-name-override": "GetAppAccessRequestsDefaults"
      },
      "post": {
        "description": "Create or replace the access request default settings for an app.",
        "operationId": "c1.api.app.v1.AppAccessRequestsDefaultsService.CreateAppAccessRequestsDefaults",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The app id for the app access request rule",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.AppAccessRequestDefaultsInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.AppAccessRequestDefaults"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create App Access Requests Defaults",
        "tags": [
          "AppAccessRequestDefaults"
        ],
        "x-speakeasy-group": "AppAccessRequestsDefaults",
        "x-speakeasy-name-override": "CreateAppAccessRequestsDefaults"
      }
    },
    "/api/v1/apps/{app_id}/access_request_defaults/cancel": {
      "post": {
        "description": "Cancel an in-progress apply operation for the app's access request defaults.",
        "operationId": "c1.api.app.v1.AppAccessRequestsDefaultsService.CancelAppAccessRequestsDefaults",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app whose access request defaults apply operation should be cancelled.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.CancelAccessRequestDefaultsRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.AppAccessRequestDefaults"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Cancel App Access Requests Defaults",
        "tags": [
          "AppAccessRequestDefaults"
        ],
        "x-speakeasy-group": "AppAccessRequestsDefaults",
        "x-speakeasy-name-override": "CancelAppAccessRequestsDefaults"
      }
    },
    "/api/v1/apps/{app_id}/app_users": {
      "get": {
        "description": "List app user accounts within a specific app, with pagination support.",
        "operationId": "c1.api.app.v1.AppUserService.List",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app to list users for.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The maximum number of results to return per page.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The token for fetching the next page of results.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.AppUserServiceListResponse"
                }
              }
            },
            "description": "The response message for listing app users."
          }
        },
        "summary": "List",
        "tags": [
          "AppUsers"
        ],
        "x-speakeasy-group": "AppUser",
        "x-speakeasy-name-override": "List"
      }
    },
    "/api/v1/apps/{app_id}/app_users/{app_user_id}/credentials": {
      "get": {
        "description": "List credentials associated with a specific app user account.",
        "operationId": "c1.api.app.v1.AppUserService.ListAppUserCredentials",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app that the user belongs to.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_user_id",
            "required": true,
            "schema": {
              "description": "The ID of the app user whose credentials to list.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The maximum number of results to return per page.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The token for fetching the next page of results.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.AppUserServiceListCredentialsResponse"
                }
              }
            },
            "description": "The response message for listing credentials of an app user."
          }
        },
        "summary": "List App User Credentials",
        "tags": [
          "AppUsers"
        ],
        "x-speakeasy-group": "AppUser",
        "x-speakeasy-name-override": "ListAppUserCredentials"
      }
    },
    "/api/v1/apps/{app_id}/authzen_policies": {
      "get": {
        "description": "ListAuthzenPolicies returns an app's CEL policy revisions, newest\n first.",
        "operationId": "c1.api.authzen.v1.AuthzenServerService.ListAuthzenPolicies",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Page size (max 100).",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Page token for pagination.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.authzen.v1.AuthzenServerServiceListAuthzenPoliciesResponse"
                }
              }
            },
            "description": "AuthzenServerServiceListAuthzenPoliciesResponse lists an app's CEL policy\n revisions, newest first."
          }
        },
        "summary": "List Authzen Policies",
        "tags": [
          "AuthZEN Policies"
        ],
        "x-speakeasy-group": "AuthzenServer",
        "x-speakeasy-name-override": "ListAuthzenPolicies"
      },
      "post": {
        "description": "CreateAuthzenPolicy validates the CEL syntax (requiring a bool result)\n and stores a new, immutable policy revision for the app. The revision\n has no effect until a server's active_policy_id is set to it via\n Update.",
        "operationId": "c1.api.authzen.v1.AuthzenServerService.CreateAuthzenPolicy",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.authzen.v1.AuthzenServerServiceCreateAuthzenPolicyRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.authzen.v1.AuthzenServerServiceCreateAuthzenPolicyResponse"
                }
              }
            },
            "description": "AuthzenServerServiceCreateAuthzenPolicyResponse returns the newly created\n policy revision."
          }
        },
        "summary": "Create Authzen Policy",
        "tags": [
          "AuthZEN Policies"
        ],
        "x-speakeasy-group": "AuthzenServer",
        "x-speakeasy-name-override": "CreateAuthzenPolicy"
      }
    },
    "/api/v1/apps/{app_id}/authzen_policies/{id}": {
      "delete": {
        "description": "DeleteAuthzenPolicy deletes a CEL policy revision. Refused while any\n of the app's AuthZEN servers has the policy active.",
        "operationId": "c1.api.authzen.v1.AuthzenServerService.DeleteAuthzenPolicy",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Policy identifier.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.authzen.v1.AuthzenServerServiceDeleteAuthzenPolicyRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.authzen.v1.AuthzenServerServiceDeleteAuthzenPolicyResponse"
                }
              }
            },
            "description": "AuthzenServerServiceDeleteAuthzenPolicyResponse confirms deletion."
          }
        },
        "summary": "Delete Authzen Policy",
        "tags": [
          "AuthZEN Policies"
        ],
        "x-speakeasy-group": "AuthzenServer",
        "x-speakeasy-name-override": "DeleteAuthzenPolicy"
      },
      "get": {
        "description": "GetAuthzenPolicy retrieves one CEL policy revision by ID.",
        "operationId": "c1.api.authzen.v1.AuthzenServerService.GetAuthzenPolicy",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Policy identifier.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.authzen.v1.AuthzenServerServiceGetAuthzenPolicyResponse"
                }
              }
            },
            "description": "AuthzenServerServiceGetAuthzenPolicyResponse returns the requested policy\n revision."
          }
        },
        "summary": "Get Authzen Policy",
        "tags": [
          "AuthZEN Policies"
        ],
        "x-speakeasy-group": "AuthzenServer",
        "x-speakeasy-name-override": "GetAuthzenPolicy"
      }
    },
    "/api/v1/apps/{app_id}/authzen_servers": {
      "get": {
        "description": "List retrieves AuthZEN servers for an app.",
        "operationId": "c1.api.authzen.v1.AuthzenServerService.List",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Page size (max 100).",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Page token for pagination.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.authzen.v1.AuthzenServerServiceListResponse"
                }
              }
            },
            "description": "AuthzenServerServiceListResponse lists AuthZEN servers for an app."
          }
        },
        "summary": "List",
        "tags": [
          "AuthZEN Servers"
        ],
        "x-speakeasy-group": "AuthzenServer",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Create mints an AuthZEN server (and its evaluate/search entitlements)\n for an app. The server starts disabled.",
        "operationId": "c1.api.authzen.v1.AuthzenServerService.Create",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.authzen.v1.AuthzenServerServiceCreateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.authzen.v1.AuthzenServerServiceCreateResponse"
                }
              }
            },
            "description": "AuthzenServerServiceCreateResponse returns the newly minted server,\n including its capability entitlement ids."
          }
        },
        "summary": "Create",
        "tags": [
          "AuthZEN Servers"
        ],
        "x-speakeasy-group": "AuthzenServer",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/apps/{app_id}/authzen_servers/{authzen_server_id}/test_policy": {
      "post": {
        "description": "TestAuthzenPolicy evaluates a stored or inline CEL policy against a\n live request tuple and returns the decision and the variables it saw,\n without requiring the policy to be activated on any server.",
        "operationId": "c1.api.authzen.v1.AuthzenServerService.TestAuthzenPolicy",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "authzen_server_id",
            "required": true,
            "schema": {
              "description": "AuthZEN server identifier.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.authzen.v1.AuthzenServerServiceTestAuthzenPolicyRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.authzen.v1.AuthzenServerServiceTestAuthzenPolicyResponse"
                }
              }
            },
            "description": "AuthzenServerServiceTestAuthzenPolicyResponse returns the evaluation\n outcome for authoring feedback."
          }
        },
        "summary": "Test Authzen Policy",
        "tags": [
          "AuthZEN Policies"
        ],
        "x-speakeasy-group": "AuthzenServer",
        "x-speakeasy-name-override": "TestAuthzenPolicy"
      }
    },
    "/api/v1/apps/{app_id}/authzen_servers/{id}": {
      "delete": {
        "description": "Delete soft-deletes an AuthZEN server and cascades its minted\n entitlement stack. Evaluation and search 404 immediately; discovery is\n static URL templating and deliberately never reads the database, so it\n keeps answering for any well-formed path.",
        "operationId": "c1.api.authzen.v1.AuthzenServerService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Server identifier.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.authzen.v1.AuthzenServerServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.authzen.v1.AuthzenServerServiceDeleteResponse"
                }
              }
            },
            "description": "AuthzenServerServiceDeleteResponse confirms deletion. The server's\n entitlement stack cascade-deletes; a replacement server mints an all-new\n stack."
          }
        },
        "summary": "Delete",
        "tags": [
          "AuthZEN Servers"
        ],
        "x-speakeasy-group": "AuthzenServer",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get retrieves one AuthZEN server.",
        "operationId": "c1.api.authzen.v1.AuthzenServerService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Server identifier.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.authzen.v1.AuthzenServerServiceGetResponse"
                }
              }
            },
            "description": "AuthzenServerServiceGetResponse returns the requested AuthZEN server."
          }
        },
        "summary": "Get",
        "tags": [
          "AuthZEN Servers"
        ],
        "x-speakeasy-group": "AuthzenServer",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update edits a server's mode via update_mask.",
        "operationId": "c1.api.authzen.v1.AuthzenServerService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.authzen.v1.AuthzenServerServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.authzen.v1.AuthzenServerServiceUpdateResponse"
                }
              }
            },
            "description": "AuthzenServerServiceUpdateResponse returns the updated server."
          }
        },
        "summary": "Update",
        "tags": [
          "AuthZEN Servers"
        ],
        "x-speakeasy-group": "AuthzenServer",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/apps/{app_id}/connectors": {
      "get": {
        "description": "List connectors for an app.",
        "operationId": "c1.api.app.v1.ConnectorService.List",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.ConnectorServiceListResponse"
                }
              }
            },
            "description": "The ConnectorServiceListResponse message contains a list of results and a nextPageToken if applicable"
          }
        },
        "summary": "List",
        "tags": [
          "Connector"
        ],
        "x-speakeasy-group": "Connector",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Create a connector that is pending a connector config.",
        "operationId": "c1.api.app.v1.ConnectorService.CreateDelegated",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId of the app the connector is attached to.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.ConnectorServiceCreateDelegatedRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.ConnectorServiceCreateResponse"
                }
              }
            },
            "description": "The ConnectorServiceCreateResponse is the response returned from creating a connector."
          }
        },
        "summary": "Create Delegated",
        "tags": [
          "Connector"
        ],
        "x-speakeasy-group": "Connector",
        "x-speakeasy-name-override": "CreateDelegated"
      }
    },
    "/api/v1/apps/{app_id}/connectors/create": {
      "post": {
        "description": "Create a configured connector.",
        "operationId": "c1.api.app.v1.ConnectorService.Create",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.ConnectorServiceCreateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.ConnectorServiceCreateResponse"
                }
              }
            },
            "description": "The ConnectorServiceCreateResponse is the response returned from creating a connector."
          }
        },
        "summary": "Create",
        "tags": [
          "Connector"
        ],
        "x-speakeasy-group": "Connector",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/apps/{app_id}/connectors/{connector_id}/confirm_sync_valid/{sync_lifecycle_id}": {
      "post": {
        "description": "Confirm that a sync which errored due to a data drop is valid, overriding the error and triggering a new sync. Only applicable when the sync status is ERRORED_NO_DATA.",
        "operationId": "c1.api.app.v1.ConnectorService.ConfirmSyncValid",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The AppID of the app the connector is attached to.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "The ConnectorID of the connector that we are confirming the sync for.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "sync_lifecycle_id",
            "required": true,
            "schema": {
              "description": "The completed lifecycle id of the most recent sync we want to validate",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.ConfirmSyncValidRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.ConfirmSyncValidResponse"
                }
              }
            },
            "description": "Empty response body. Status code indicates success."
          }
        },
        "summary": "Confirm Sync Valid",
        "tags": [
          "Connector"
        ],
        "x-speakeasy-group": "Connector",
        "x-speakeasy-name-override": "ConfirmSyncValid"
      }
    },
    "/api/v1/apps/{app_id}/connectors/{connector_id}/credentials/{id}": {
      "get": {
        "description": "Get credentials for a connector.",
        "operationId": "c1.api.app.v1.ConnectorService.GetCredentials",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId of the app the connector is attached to.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "The connectorId of the connector that we are getting the credentials for.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id of the ConnectorCredential.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.ConnectorServiceGetCredentialsResponse"
                }
              }
            },
            "description": "ConnectorServiceGetCredentialsResponse is the response returned by the get method."
          }
        },
        "summary": "Get Credentials",
        "tags": [
          "Connector"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "ConnectorCredential#read",
          "terraform-resource": "ConnectorCredential#read"
        },
        "x-speakeasy-group": "Connector",
        "x-speakeasy-name-override": "GetCredentials"
      },
      "post": {
        "description": "Revoke credentials for a connector.",
        "operationId": "c1.api.app.v1.ConnectorService.RevokeCredential",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId of the app the connector is attached to.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "The connectorId of the connector that we are revoking the credentials for.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id of the ConnectorCredential.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.ConnectorServiceRevokeCredentialRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.ConnectorServiceRevokeCredentialResponse"
                }
              }
            },
            "description": "Empty response body. Status code indicates success."
          }
        },
        "summary": "Revoke Credential",
        "tags": [
          "Connector"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "ConnectorCredential#delete"
        },
        "x-speakeasy-group": "Connector",
        "x-speakeasy-name-override": "RevokeCredential"
      }
    },
    "/api/v1/apps/{app_id}/connectors/{connector_id}/force_sync": {
      "post": {
        "description": "Trigger an immediate sync for a connector. The sync is queued and may not start\n instantly. Poll the connector's sync_status (or GetConnector) for progress; an empty\n success response means the sync was accepted onto the queue, not that it has finished.",
        "operationId": "c1.api.app.v1.ConnectorService.ForceSync",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The AppID of the app the connector is attached to.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "The ConnectorID of the connector that we are forcing to sync.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.ForceSyncRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.ForceSyncResponse"
                }
              }
            },
            "description": "Empty response body. Status code indicates success. Poll the connector sync status\n for progress after ForceSync accepts the request."
          }
        },
        "summary": "Force Sync",
        "tags": [
          "Connector"
        ],
        "x-speakeasy-group": "Connector",
        "x-speakeasy-name-override": "ForceSync"
      }
    },
    "/api/v1/apps/{app_id}/connectors/{connector_id}/mcp_resources": {
      "get": {
        "description": "List returns the MCP resources discovered for a single (app_id,\n connector_id), paginated. To filter by kind or state, use Search.",
        "operationId": "c1.api.ai_governance.v1.MCPResourceService.List",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier (required).",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "Connector ID (required).",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Page size (max 100).",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Page token for pagination.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPResourceServiceListResponse"
                }
              }
            },
            "description": "MCPResourceServiceListResponse returns a list of MCP resources."
          }
        },
        "summary": "List",
        "tags": [
          "MCP Resources"
        ],
        "x-speakeasy-group": "MCPResource",
        "x-speakeasy-name-override": "List"
      }
    },
    "/api/v1/apps/{app_id}/connectors/{connector_id}/mcp_resources/search": {
      "post": {
        "description": "Search returns a connector's MCP resources filtered by kind, state, or\n text query. Filter on MCP_RESOURCE_STATE_PENDING_REVIEW to find resources\n awaiting approval, then approve them with Update.",
        "operationId": "c1.api.ai_governance.v1.MCPResourceService.Search",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier (required).",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "Connector ID (required).",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPResourceServiceSearchRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPResourceServiceSearchResponse"
                }
              }
            },
            "description": "MCPResourceServiceSearchResponse returns matching MCP resources."
          }
        },
        "summary": "Search",
        "tags": [
          "MCP Resources"
        ],
        "x-speakeasy-group": "MCPResource",
        "x-speakeasy-name-override": "Search"
      }
    },
    "/api/v1/apps/{app_id}/connectors/{connector_id}/mcp_resources/{id}": {
      "get": {
        "description": "Get retrieves a single discovered MCP resource by app_id + connector_id +\n id, including its approval state, kind, URI or URI template, and bound\n app_entitlement_id.",
        "operationId": "c1.api.ai_governance.v1.MCPResourceService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "Connector identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Unique identifier for the MCP resource.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPResourceServiceGetResponse"
                }
              }
            },
            "description": "MCPResourceServiceGetResponse returns a single MCP resource."
          }
        },
        "summary": "Get",
        "tags": [
          "MCP Resources"
        ],
        "x-speakeasy-group": "MCPResource",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update modifies a resource's lifecycle state via update_mask. Set\n resource.state = MCP_RESOURCE_STATE_APPROVED with update_mask \"state\" to\n move it out of PENDING_REVIEW (or DISABLED to block it). Resource metadata\n is discovery-owned and read-only. resource must include id, app_id, and\n connector_id.",
        "operationId": "c1.api.ai_governance.v1.MCPResourceService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier (app that owns the connector).",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "Connector identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Unique identifier for this MCP resource record.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPResourceServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPResourceServiceUpdateResponse"
                }
              }
            },
            "description": "MCPResourceServiceUpdateResponse returns the updated MCP resource."
          }
        },
        "summary": "Update",
        "tags": [
          "MCP Resources"
        ],
        "x-speakeasy-group": "MCPResource",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/apps/{app_id}/connectors/{connector_id}/mcp_resources/{id}/history": {
      "get": {
        "description": "ListHistory returns the change history (newest first) for a single MCP\n resource — each entry is a snapshot plus who/when metadata.",
        "operationId": "c1.api.ai_governance.v1.MCPResourceService.ListHistory",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "Connector identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Unique identifier for the MCP resource.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Page size (max 200).",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Page token for pagination.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPResourceServiceListHistoryResponse"
                }
              }
            },
            "description": "MCPResourceServiceListHistoryResponse returns MCP resource history entries."
          }
        },
        "summary": "List History",
        "tags": [
          "MCP Resources"
        ],
        "x-speakeasy-group": "MCPResource",
        "x-speakeasy-name-override": "ListHistory"
      }
    },
    "/api/v1/apps/{app_id}/connectors/{connector_id}/mcp_tools": {
      "get": {
        "description": "List returns the MCP tools discovered for a single (app_id, connector_id),\n paginated. To filter by state, classification, or visibility, use Search.",
        "operationId": "c1.api.ai_governance.v1.MCPToolService.List",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier (required).",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "Connector ID (required).",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Page size (max 100).",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Page token for pagination.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPToolServiceListResponse"
                }
              }
            },
            "description": "MCPToolServiceListResponse returns a list of MCP tools."
          }
        },
        "summary": "List",
        "tags": [
          "MCP Tools"
        ],
        "x-speakeasy-group": "MCPTool",
        "x-speakeasy-name-override": "List"
      }
    },
    "/api/v1/apps/{app_id}/connectors/{connector_id}/mcp_tools/search": {
      "post": {
        "description": "Search returns a connector's MCP tools filtered by state, classification,\n visibility, access-profile binding, or text query. Filter on\n MCP_TOOL_STATE_PENDING_REVIEW to find tools awaiting approval, then approve\n them with Update.",
        "operationId": "c1.api.ai_governance.v1.MCPToolService.Search",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier (required).",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "Connector ID (required).",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPToolServiceSearchRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPToolServiceSearchResponse"
                }
              }
            },
            "description": "MCPToolServiceSearchResponse returns matching MCP tools."
          }
        },
        "summary": "Search",
        "tags": [
          "MCP Tools"
        ],
        "x-speakeasy-group": "MCPTool",
        "x-speakeasy-name-override": "Search"
      }
    },
    "/api/v1/apps/{app_id}/connectors/{connector_id}/mcp_tools/{id}": {
      "delete": {
        "description": "Delete soft-deletes an MCP tool. It reappears as PENDING_REVIEW if the\n connector rediscovers it on the next sync.",
        "operationId": "c1.api.ai_governance.v1.MCPToolService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "Connector identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Unique identifier for the MCP tool.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPToolServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPToolServiceDeleteResponse"
                }
              }
            },
            "description": "MCPToolServiceDeleteResponse confirms deletion."
          }
        },
        "summary": "Delete",
        "tags": [
          "MCP Tools"
        ],
        "x-speakeasy-group": "MCPTool",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get retrieves a single discovered MCP tool by app_id + connector_id + id,\n including its approval state, classification, visibility, input schema, and\n bound app_entitlement_id.",
        "operationId": "c1.api.ai_governance.v1.MCPToolService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "Connector identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Unique identifier for the MCP tool.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPToolServiceGetResponse"
                }
              }
            },
            "description": "MCPToolServiceGetResponse returns a single MCP tool."
          }
        },
        "summary": "Get",
        "tags": [
          "MCP Tools"
        ],
        "x-speakeasy-group": "MCPTool",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update modifies an MCP tool's admin-editable fields via update_mask. This\n is how a tool is approved: set tool.state = MCP_TOOL_STATE_APPROVED with\n update_mask \"state\" to move it out of PENDING_REVIEW (or DISABLED to block\n it). Editable paths: display_name, description, classification, state,\n allowed_client_types, visibility. tool must include id, app_id, connector_id.",
        "operationId": "c1.api.ai_governance.v1.MCPToolService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier (app that owns the connector).",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "Connector identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Unique identifier for this MCP tool record.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPToolServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPToolServiceUpdateResponse"
                }
              }
            },
            "description": "MCPToolServiceUpdateResponse returns the updated MCP tool."
          }
        },
        "summary": "Update",
        "tags": [
          "MCP Tools"
        ],
        "x-speakeasy-group": "MCPTool",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/apps/{app_id}/connectors/{connector_id}/mcp_tools/{id}/history": {
      "get": {
        "description": "ListHistory returns the change history (newest first) for a single MCP\n tool — each entry is a snapshot plus who/when metadata.",
        "operationId": "c1.api.ai_governance.v1.MCPToolService.ListHistory",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "Connector identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Unique identifier for the MCP tool.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Page size (max 200).",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Page token for pagination.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPToolServiceListHistoryResponse"
                }
              }
            },
            "description": "MCPToolServiceListHistoryResponse returns MCP tool history entries."
          }
        },
        "summary": "List History",
        "tags": [
          "MCP Tools"
        ],
        "x-speakeasy-group": "MCPTool",
        "x-speakeasy-name-override": "ListHistory"
      }
    },
    "/api/v1/apps/{app_id}/connectors/{connector_id}/mcp_toolsets": {
      "get": {
        "description": "List returns the MCP toolsets (access profiles) defined for a single\n (app_id, connector_id), paginated.",
        "operationId": "c1.api.ai_governance.v1.MCPAccessProfileService.List",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier (required).",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "Connector ID (required).",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Page size (max 100).",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Page token for pagination.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfileServiceListResponse"
                }
              }
            },
            "description": "MCPAccessProfileServiceListResponse returns a list of MCP access profiles."
          }
        },
        "summary": "List",
        "tags": [
          "MCP Toolsets"
        ],
        "x-speakeasy-group": "MCPAccessProfile",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Create creates a new MCP toolset (access profile) under a connector. The\n backend also provisions a backing AppEntitlement that users request in\n order to be granted the toolset's tools.",
        "operationId": "c1.api.ai_governance.v1.MCPAccessProfileService.Create",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "Connector identifier.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfileServiceCreateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfileServiceCreateResponse"
                }
              }
            },
            "description": "MCPAccessProfileServiceCreateResponse returns the created MCP access profile."
          }
        },
        "summary": "Create",
        "tags": [
          "MCP Toolsets"
        ],
        "x-speakeasy-group": "MCPAccessProfile",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/apps/{app_id}/connectors/{connector_id}/mcp_toolsets/{access_profile_id}/tool_bindings": {
      "get": {
        "description": "List returns the tool bindings for a single toolset (access profile) —\n i.e. which MCP tools belong to the toolset — paginated.",
        "operationId": "c1.api.ai_governance.v1.MCPAccessProfileToolBindingService.List",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "Connector identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "access_profile_id",
            "required": true,
            "schema": {
              "description": "Access profile identifier.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Page size (max 100).",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Page token for pagination.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfileToolBindingServiceListResponse"
                }
              }
            },
            "description": "MCPAccessProfileToolBindingServiceListResponse returns tool bindings."
          }
        },
        "summary": "List",
        "tags": [
          "MCP Toolsets"
        ],
        "x-speakeasy-group": "MCPAccessProfileToolBinding",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "CreateBindings adds one or more MCP tools (mcp_tool_ids) to a toolset.",
        "operationId": "c1.api.ai_governance.v1.MCPAccessProfileToolBindingService.CreateBindings",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "Connector identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "access_profile_id",
            "required": true,
            "schema": {
              "description": "Access profile identifier.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfileToolBindingServiceCreateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfileToolBindingServiceCreateResponse"
                }
              }
            },
            "description": "MCPAccessProfileToolBindingServiceCreateResponse returns created bindings."
          }
        },
        "summary": "Create Bindings",
        "tags": [
          "MCP Toolsets"
        ],
        "x-speakeasy-group": "MCPAccessProfileToolBinding",
        "x-speakeasy-name-override": "CreateBindings"
      }
    },
    "/api/v1/apps/{app_id}/connectors/{connector_id}/mcp_toolsets/{access_profile_id}/tool_bindings/delete": {
      "post": {
        "description": "DeleteBindings removes one or more MCP tools (mcp_tool_ids) from a toolset.\n Uses a POST .../delete action route because the tool IDs travel in the\n request body, which HTTP DELETE does not reliably support.",
        "operationId": "c1.api.ai_governance.v1.MCPAccessProfileToolBindingService.DeleteBindings",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "Connector identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "access_profile_id",
            "required": true,
            "schema": {
              "description": "Access profile identifier.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfileToolBindingServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfileToolBindingServiceDeleteResponse"
                }
              }
            },
            "description": "MCPAccessProfileToolBindingServiceDeleteResponse confirms deletion."
          }
        },
        "summary": "Delete Bindings",
        "tags": [
          "MCP Toolsets"
        ],
        "x-speakeasy-group": "MCPAccessProfileToolBinding",
        "x-speakeasy-name-override": "DeleteBindings"
      }
    },
    "/api/v1/apps/{app_id}/connectors/{connector_id}/mcp_toolsets/{access_profile_id}/tool_bindings/history": {
      "get": {
        "description": "ListToolsByProfileHistory returns the transactional history of\n tools bound to (app, connector, access_profile). Newest first.",
        "operationId": "c1.api.ai_governance.v1.MCPAccessProfileToolBindingService.ListToolsByProfileHistory",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "Connector identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "access_profile_id",
            "required": true,
            "schema": {
              "description": "Toolset (access profile) identifier.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Page size (max 200).",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Page token for pagination.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfileToolBindingServiceListToolsByProfileHistoryResponse"
                }
              }
            },
            "description": "Contains a page of change-history entries for the tools bound to one toolset\n sorted newest first."
          }
        },
        "summary": "List Tools By Profile History",
        "tags": [
          "MCP Toolsets"
        ],
        "x-speakeasy-group": "MCPAccessProfileToolBinding",
        "x-speakeasy-name-override": "ListToolsByProfileHistory"
      }
    },
    "/api/v1/apps/{app_id}/connectors/{connector_id}/mcp_toolsets/{id}": {
      "delete": {
        "description": "Delete soft-deletes a toolset (access profile) and cascades to its tool\n bindings and backing entitlement.",
        "operationId": "c1.api.ai_governance.v1.MCPAccessProfileService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "Connector identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Unique identifier for the MCP access profile.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfileServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfileServiceDeleteResponse"
                }
              }
            },
            "description": "MCPAccessProfileServiceDeleteResponse confirms deletion."
          }
        },
        "summary": "Delete",
        "tags": [
          "MCP Toolsets"
        ],
        "x-speakeasy-group": "MCPAccessProfile",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get retrieves a single MCP toolset (access profile) by app_id +\n connector_id + id, including its display name, description, linked\n app_entitlement_id, and bound tool count.",
        "operationId": "c1.api.ai_governance.v1.MCPAccessProfileService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "Connector identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Unique identifier for the MCP access profile.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfileServiceGetResponse"
                }
              }
            },
            "description": "MCPAccessProfileServiceGetResponse returns a single MCP access profile."
          }
        },
        "summary": "Get",
        "tags": [
          "MCP Toolsets"
        ],
        "x-speakeasy-group": "MCPAccessProfile",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update modifies a toolset's admin-editable fields via update_mask.\n Editable paths: display_name, description. profile must include id,\n app_id, and connector_id.",
        "operationId": "c1.api.ai_governance.v1.MCPAccessProfileService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier (app that owns the connector).",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "Connector identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Unique identifier for this access profile.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfileServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfileServiceUpdateResponse"
                }
              }
            },
            "description": "MCPAccessProfileServiceUpdateResponse returns the updated MCP access profile."
          }
        },
        "summary": "Update",
        "tags": [
          "MCP Toolsets"
        ],
        "x-speakeasy-group": "MCPAccessProfile",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/apps/{app_id}/connectors/{connector_id}/pause": {
      "post": {
        "description": "Pause syncing and provisioning for a connector. No new syncs or grant/revoke operations will run until the connector is resumed.",
        "operationId": "c1.api.app.v1.ConnectorService.PauseSync",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The AppID of the app the connector is attached to.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "The ConnectorID of the connector that we are pausing the sync for.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.PauseSyncRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.PauseSyncResponse"
                }
              }
            },
            "description": "Empty response body. Status code indicates success."
          }
        },
        "summary": "Pause Sync",
        "tags": [
          "Connector"
        ],
        "x-speakeasy-group": "Connector",
        "x-speakeasy-name-override": "PauseSync"
      }
    },
    "/api/v1/apps/{app_id}/connectors/{connector_id}/resume": {
      "post": {
        "description": "Resume syncing and provisioning for a connector that was previously paused. Clears the paused state and triggers a new sync.",
        "operationId": "c1.api.app.v1.ConnectorService.ResumeSync",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The AppID of the app the connector is attached to.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "The ConnectorID of the connector that we are resuming the sync for.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.ResumeSyncRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.ResumeSyncResponse"
                }
              }
            },
            "description": "Empty response body. Status code indicates success."
          }
        },
        "summary": "Resume Sync",
        "tags": [
          "Connector"
        ],
        "x-speakeasy-group": "Connector",
        "x-speakeasy-name-override": "ResumeSync"
      }
    },
    "/api/v1/apps/{app_id}/connectors/{connector_id}/schedule": {
      "post": {
        "description": "Update the sync schedule for a connector.",
        "operationId": "c1.api.app.v1.ConnectorService.UpdateConnectorSchedule",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId of the app the connector is attached to.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "The connectorId of the connector whose schedule is being updated.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.UpdateConnectorScheduleRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.UpdateConnectorScheduleResponse"
                }
              }
            },
            "description": "Empty response body. Status code indicates success."
          }
        },
        "summary": "Update Connector Schedule",
        "tags": [
          "Connector"
        ],
        "x-speakeasy-group": "Connector",
        "x-speakeasy-name-override": "UpdateConnectorSchedule",
        "x-stability-level": "alpha"
      }
    },
    "/api/v1/apps/{app_id}/connectors/{connector_id}/syncs/{sync_id}/download_url": {
      "get": {
        "description": "GetConnectorSyncDownloadURL generates a short-lived download URL for a completed connector sync artifact.",
        "operationId": "c1.api.app.v1.ConnectorService.GetConnectorSyncDownloadURL",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "The connectorId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "sync_id",
            "required": true,
            "schema": {
              "description": "The syncId field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.GetConnectorSyncDownloadURLResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Connector Sync Download Url",
        "tags": [
          "Connector"
        ],
        "x-speakeasy-group": "Connector",
        "x-speakeasy-name-override": "GetConnectorSyncDownloadURL"
      }
    },
    "/api/v1/apps/{app_id}/connectors/{connector_id}/tool_bindings/by_tool/{mcp_tool_id}/history": {
      "get": {
        "description": "ListProfilesByToolHistory returns the transactional history of\n profiles bound to (app, connector, mcp_tool). Newest first.",
        "operationId": "c1.api.ai_governance.v1.MCPAccessProfileToolBindingService.ListProfilesByToolHistory",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "Connector identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "mcp_tool_id",
            "required": true,
            "schema": {
              "description": "MCP tool identifier.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Page size (max 200).",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Page token for pagination.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfileToolBindingServiceListProfilesByToolHistoryResponse"
                }
              }
            },
            "description": "Contains a page of change-history entries for the toolsets one tool has belonged to,\n sorted newest first."
          }
        },
        "summary": "List Profiles By Tool History",
        "tags": [
          "MCP Toolsets"
        ],
        "x-speakeasy-group": "MCPAccessProfileToolBinding",
        "x-speakeasy-name-override": "ListProfilesByToolHistory"
      }
    },
    "/api/v1/apps/{app_id}/connectors/{connector_id}/tool_bindings/by_tools": {
      "post": {
        "description": "GetAccessProfilesForTools returns the access profiles bound to each\n of the given MCP tools, hydrated with display_name. Used by the tools\n list to render the \"toolset\" column for visible rows.",
        "operationId": "c1.api.ai_governance.v1.MCPAccessProfileToolBindingService.GetAccessProfilesForTools",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "Connector identifier.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfileToolBindingServiceGetAccessProfilesForToolsRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfileToolBindingServiceGetAccessProfilesForToolsResponse"
                }
              }
            },
            "description": "MCPAccessProfileToolBindingServiceGetAccessProfilesForToolsResponse returns\n access profiles grouped by MCP tool."
          }
        },
        "summary": "Get Access Profiles For Tools",
        "tags": [
          "MCP Toolsets"
        ],
        "x-speakeasy-group": "MCPAccessProfileToolBinding",
        "x-speakeasy-name-override": "GetAccessProfilesForTools"
      }
    },
    "/api/v1/apps/{app_id}/connectors/{id}": {
      "delete": {
        "description": "Delete a connector.",
        "operationId": "c1.api.app.v1.ConnectorService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId of the app the connector is attached to.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id of the connector.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.ConnectorServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.ConnectorServiceDeleteResponse"
                }
              }
            },
            "description": "Empty response body. Status code indicates success."
          }
        },
        "summary": "Delete",
        "tags": [
          "Connector"
        ],
        "x-speakeasy-group": "Connector",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get a connector.",
        "operationId": "c1.api.app.v1.ConnectorService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId of the app the connector is attached to.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id of the connector.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.ConnectorServiceGetResponse"
                }
              }
            },
            "description": "The ConnectorServiceGetResponse message contains the connectorView, and an expand mask."
          }
        },
        "summary": "Get",
        "tags": [
          "Connector"
        ],
        "x-speakeasy-group": "Connector",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update a connector.",
        "operationId": "c1.api.app.v1.ConnectorService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The id of the app the connector is associated with.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id of the connector.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.ConnectorServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.ConnectorServiceUpdateResponse"
                }
              }
            },
            "description": "ConnectorServiceUpdateResponse is the response returned by the update method."
          }
        },
        "summary": "Update",
        "tags": [
          "Connector"
        ],
        "x-speakeasy-group": "Connector",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/apps/{app_id}/edges": {
      "get": {
        "description": "List retrieves Edges for an app.",
        "operationId": "c1.api.edge.v1.EdgeService.List",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Page size (max 100).",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Page token for pagination.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServiceListResponse"
                }
              }
            },
            "description": "EdgeServiceListResponse lists Edges for an app."
          }
        },
        "summary": "List",
        "tags": [
          "Edge"
        ],
        "x-speakeasy-group": "Edge",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Create mints an Edge (and one entitlement per enabled_kinds entry) for an\n app. The Edge starts disabled.",
        "operationId": "c1.api.edge.v1.EdgeService.Create",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServiceCreateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServiceCreateResponse"
                }
              }
            },
            "description": "EdgeServiceCreateResponse returns the newly minted Edge,\n including its capability entitlement IDs."
          }
        },
        "summary": "Create",
        "tags": [
          "Edge"
        ],
        "x-speakeasy-group": "Edge",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/apps/{app_id}/edges/{id}": {
      "delete": {
        "description": "Delete an Edge and its associated entitlements. New egress requests are\n rejected, and inference tokens can no longer be issued for this Edge.",
        "operationId": "c1.api.edge.v1.EdgeService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Edge identifier.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServiceDeleteResponse"
                }
              }
            },
            "description": "EdgeServiceDeleteResponse confirms deletion. The Edge's entitlement\n stack cascade-deletes; a replacement Edge mints an all-new stack."
          }
        },
        "summary": "Delete",
        "tags": [
          "Edge"
        ],
        "x-speakeasy-group": "Edge",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get retrieves one Edge.",
        "operationId": "c1.api.edge.v1.EdgeService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Edge identifier.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServiceGetResponse"
                }
              }
            },
            "description": "EdgeServiceGetResponse returns the requested Edge."
          }
        },
        "summary": "Get",
        "tags": [
          "Edge"
        ],
        "x-speakeasy-group": "Edge",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update edits an Edge's mode, credential injections, or inference route via update_mask.",
        "operationId": "c1.api.edge.v1.EdgeService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServiceUpdateResponse"
                }
              }
            },
            "description": "EdgeServiceUpdateResponse returns the updated Edge."
          }
        },
        "summary": "Update",
        "tags": [
          "Edge"
        ],
        "x-speakeasy-group": "Edge",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/apps/{app_id}/edges/{id}/egress-rules/entitlement-issues": {
      "get": {
        "description": "ListEgressRuleEntitlementIssues reports each saved egress rule whose\n entitlement does not resolve, and what the Edge does with it instead.\n Nothing is saved.",
        "operationId": "c1.api.edge.v1.EdgeService.ListEgressRuleEntitlementIssues",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServiceListEgressRuleEntitlementIssuesResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Egress Rule Entitlement Issues",
        "tags": [
          "Edge"
        ],
        "x-speakeasy-group": "Edge",
        "x-speakeasy-name-override": "ListEgressRuleEntitlementIssues"
      }
    },
    "/api/v1/apps/{app_id}/edges/{id}/egress-rules/preview-host-decision": {
      "post": {
        "description": "PreviewEgressHostDecision reports what blocking or allowing one host for\n every user would do, and the rule list that results. Nothing is saved.",
        "operationId": "c1.api.edge.v1.EdgeService.PreviewEgressHostDecision",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServicePreviewEgressHostDecisionRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServicePreviewEgressHostDecisionResponse"
                }
              }
            },
            "description": "EdgeServicePreviewEgressHostDecisionResponse reports what the decision\n would do and the rule list that results."
          }
        },
        "summary": "Preview Egress Host Decision",
        "tags": [
          "Edge"
        ],
        "x-speakeasy-group": "Edge",
        "x-speakeasy-name-override": "PreviewEgressHostDecision"
      }
    },
    "/api/v1/apps/{app_id}/edges/{id}/egress-rules/preview-update": {
      "post": {
        "description": "PreviewEgressRulesUpdate checks a proposed egress rule list as Update\n would and compares each host's verdict under the saved rules with its\n verdict under the proposed rules. Nothing is saved.",
        "operationId": "c1.api.edge.v1.EdgeService.PreviewEgressRulesUpdate",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServicePreviewEgressRulesUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServicePreviewEgressRulesUpdateResponse"
                }
              }
            },
            "description": "EdgeServicePreviewEgressRulesUpdateResponse reports the save check and each\n host's verdict before and after the change."
          }
        },
        "summary": "Preview Egress Rules Update",
        "tags": [
          "Edge"
        ],
        "x-speakeasy-group": "Edge",
        "x-speakeasy-name-override": "PreviewEgressRulesUpdate"
      }
    },
    "/api/v1/apps/{app_id}/edges/{id}/egress/denial-summary": {
      "get": {
        "description": "Groups denied and would-deny egress flows for this Edge by destination, caller, outcome and reason.",
        "operationId": "c1.api.edge.v1.EdgeService.ListEgressDenialSummary",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dest_host",
            "schema": {
              "description": "The destHost field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dest_host_suffix",
            "schema": {
              "description": "The destHostSuffix field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "egress_enforcement_mode",
            "schema": {
              "description": "The egressEnforcementMode field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "egress_policy_verdict",
            "schema": {
              "description": "Same filters as EdgeServiceListEgressTrafficEventsRequest.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "description": "Maximum groups returned, largest count first. 0 defaults to 50.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "principal_user_id",
            "schema": {
              "description": "The principalUserId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "since",
            "schema": {
              "description": "The since field.",
              "format": "int64",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "until",
            "schema": {
              "description": "The until field.",
              "format": "int64",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServiceListEgressDenialSummaryResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Egress Denial Summary",
        "tags": [
          "Edge"
        ],
        "x-speakeasy-group": "Edge",
        "x-speakeasy-name-override": "ListEgressDenialSummary"
      }
    },
    "/api/v1/apps/{app_id}/edges/{id}/egress/top-agents": {
      "get": {
        "description": "Lists agents ranked by egress request count for this Edge in the requested time window.",
        "operationId": "c1.api.edge.v1.EdgeService.ListEgressTopAgents",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "bucket",
            "schema": {
              "description": "The bucket field.",
              "enum": [
                "TB_TIME_BUCKET_UNSPECIFIED",
                "TB_TIME_BUCKET_HOUR",
                "TB_TIME_BUCKET_DAY"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            }
          },
          {
            "in": "query",
            "name": "dimension",
            "schema": {
              "description": "The dimension field.",
              "enum": [
                "TB_USAGE_ATTRIBUTION_DIMENSION_UNSPECIFIED",
                "TB_USAGE_ATTRIBUTION_DIMENSION_TEAM",
                "TB_USAGE_ATTRIBUTION_DIMENSION_APPLICATION",
                "TB_USAGE_ATTRIBUTION_DIMENSION_AGENT",
                "TB_USAGE_ATTRIBUTION_DIMENSION_COST_CENTER",
                "TB_USAGE_ATTRIBUTION_DIMENSION_USER",
                "TB_USAGE_ATTRIBUTION_DIMENSION_PROVIDER",
                "TB_USAGE_ATTRIBUTION_DIMENSION_MODEL",
                "TB_USAGE_ATTRIBUTION_DIMENSION_ROUTE",
                "TB_USAGE_ATTRIBUTION_DIMENSION_CALL_ROLE"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "since",
            "schema": {
              "description": "The since field.",
              "format": "int64",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "until",
            "schema": {
              "description": "The until field.",
              "format": "int64",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServiceListEgressTopAgentsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Egress Top Agents",
        "tags": [
          "Edge"
        ],
        "x-speakeasy-group": "Edge",
        "x-speakeasy-name-override": "ListEgressTopAgents"
      }
    },
    "/api/v1/apps/{app_id}/edges/{id}/egress/top-destinations": {
      "get": {
        "description": "Lists destinations ranked by egress request count for this Edge in the requested time window.",
        "operationId": "c1.api.edge.v1.EdgeService.ListEgressTopDestinations",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "blocked_only",
            "schema": {
              "description": "Restricts results to destinations with at least one denied row --\n equivalent to verdict = TB_TRAFFIC_OUTCOME_DENIED, offered separately\n so the UI can drive it from a standalone toggle.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "host_contains",
            "schema": {
              "description": "Case-insensitive substring match against dest_host. Empty means \"every\n destination\".",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "include_trend",
            "schema": {
              "description": "When set, each returned TBTopDestination carries a call_count trend\n bucketed across trend_buckets equal-width buckets over [since, until).",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "description": "The limit field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "description": "The offset field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "principal_kind",
            "schema": {
              "description": "Exact match against source_principal_kind. Empty means \"every kind\".",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "since",
            "schema": {
              "description": "The since field.",
              "format": "int64",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "trend_buckets",
            "schema": {
              "description": "Bucket count for include_trend. 0 defaults to 14; capped at 60.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "until",
            "schema": {
              "description": "The until field.",
              "format": "int64",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "verdict",
            "schema": {
              "description": "Restricts results to destinations with at least one row of this\n outcome. TB_TRAFFIC_OUTCOME_UNSPECIFIED applies no verdict filter.",
              "enum": [
                "TB_TRAFFIC_OUTCOME_UNSPECIFIED",
                "TB_TRAFFIC_OUTCOME_ALLOWED",
                "TB_TRAFFIC_OUTCOME_DENIED",
                "TB_TRAFFIC_OUTCOME_AUTH_REJECTED"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServiceListEgressTopDestinationsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Egress Top Destinations",
        "tags": [
          "Edge"
        ],
        "x-speakeasy-group": "Edge",
        "x-speakeasy-name-override": "ListEgressTopDestinations"
      }
    },
    "/api/v1/apps/{app_id}/edges/{id}/egress/traffic": {
      "get": {
        "description": "Lists egress traffic events for this Edge in the requested time window.",
        "operationId": "c1.api.edge.v1.EdgeService.ListEgressTrafficEvents",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "bucket",
            "schema": {
              "description": "The bucket field.",
              "enum": [
                "TB_TIME_BUCKET_UNSPECIFIED",
                "TB_TIME_BUCKET_HOUR",
                "TB_TIME_BUCKET_DAY"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            }
          },
          {
            "in": "query",
            "name": "dimension",
            "schema": {
              "description": "The dimension field.",
              "enum": [
                "TB_USAGE_ATTRIBUTION_DIMENSION_UNSPECIFIED",
                "TB_USAGE_ATTRIBUTION_DIMENSION_TEAM",
                "TB_USAGE_ATTRIBUTION_DIMENSION_APPLICATION",
                "TB_USAGE_ATTRIBUTION_DIMENSION_AGENT",
                "TB_USAGE_ATTRIBUTION_DIMENSION_COST_CENTER",
                "TB_USAGE_ATTRIBUTION_DIMENSION_USER",
                "TB_USAGE_ATTRIBUTION_DIMENSION_PROVIDER",
                "TB_USAGE_ATTRIBUTION_DIMENSION_MODEL",
                "TB_USAGE_ATTRIBUTION_DIMENSION_ROUTE",
                "TB_USAGE_ATTRIBUTION_DIMENSION_CALL_ROLE"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "since",
            "schema": {
              "description": "The since field.",
              "format": "int64",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "until",
            "schema": {
              "description": "The until field.",
              "format": "int64",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServiceListEgressTrafficEventsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Egress Traffic Events",
        "tags": [
          "Edge"
        ],
        "x-speakeasy-group": "Edge",
        "x-speakeasy-name-override": "ListEgressTrafficEvents"
      }
    },
    "/api/v1/apps/{app_id}/edges/{id}/egress/traffic-summary": {
      "get": {
        "description": "Returns egress traffic counts, verdicts and transferred bytes for this Edge in the requested time window.",
        "operationId": "c1.api.edge.v1.EdgeService.GetEgressTrafficSummary",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "bucket",
            "schema": {
              "description": "The bucket field.",
              "enum": [
                "TB_TIME_BUCKET_UNSPECIFIED",
                "TB_TIME_BUCKET_HOUR",
                "TB_TIME_BUCKET_DAY"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            }
          },
          {
            "in": "query",
            "name": "dimension",
            "schema": {
              "description": "The dimension field.",
              "enum": [
                "TB_USAGE_ATTRIBUTION_DIMENSION_UNSPECIFIED",
                "TB_USAGE_ATTRIBUTION_DIMENSION_TEAM",
                "TB_USAGE_ATTRIBUTION_DIMENSION_APPLICATION",
                "TB_USAGE_ATTRIBUTION_DIMENSION_AGENT",
                "TB_USAGE_ATTRIBUTION_DIMENSION_COST_CENTER",
                "TB_USAGE_ATTRIBUTION_DIMENSION_USER",
                "TB_USAGE_ATTRIBUTION_DIMENSION_PROVIDER",
                "TB_USAGE_ATTRIBUTION_DIMENSION_MODEL",
                "TB_USAGE_ATTRIBUTION_DIMENSION_ROUTE",
                "TB_USAGE_ATTRIBUTION_DIMENSION_CALL_ROLE"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "since",
            "schema": {
              "description": "The since field.",
              "format": "int64",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "until",
            "schema": {
              "description": "The until field.",
              "format": "int64",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServiceGetEgressTrafficSummaryResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Egress Traffic Summary",
        "tags": [
          "Edge"
        ],
        "x-speakeasy-group": "Edge",
        "x-speakeasy-name-override": "GetEgressTrafficSummary"
      }
    },
    "/api/v1/apps/{app_id}/edges/{id}/egress/traffic/{event_id}": {
      "get": {
        "description": "Returns one egress traffic event for this Edge by event_id, read from a narrow window around its event_time.",
        "operationId": "c1.api.edge.v1.EdgeService.GetEgressTrafficEvent",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "event_id",
            "required": true,
            "schema": {
              "description": "The eventId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "event_time",
            "schema": {
              "description": "The flow's event_time in Unix seconds. The lookup reads five minutes\n either side of it.",
              "format": "int64",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "include_parsed_verdict_reasons",
            "schema": {
              "description": "Fills TBTrafficEvent.parsed_verdict_reasons.",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServiceGetEgressTrafficEventResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Egress Traffic Event",
        "tags": [
          "Edge"
        ],
        "x-speakeasy-group": "Edge",
        "x-speakeasy-name-override": "GetEgressTrafficEvent"
      }
    },
    "/api/v1/apps/{app_id}/edges/{id}/inference/top-agents": {
      "get": {
        "description": "Lists agents ranked by inference request count for this Edge in the requested time window.",
        "operationId": "c1.api.edge.v1.EdgeService.ListInferenceTopAgents",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "bucket",
            "schema": {
              "description": "The bucket field.",
              "enum": [
                "TB_TIME_BUCKET_UNSPECIFIED",
                "TB_TIME_BUCKET_HOUR",
                "TB_TIME_BUCKET_DAY"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            }
          },
          {
            "in": "query",
            "name": "dimension",
            "schema": {
              "description": "The dimension field.",
              "enum": [
                "TB_USAGE_ATTRIBUTION_DIMENSION_UNSPECIFIED",
                "TB_USAGE_ATTRIBUTION_DIMENSION_TEAM",
                "TB_USAGE_ATTRIBUTION_DIMENSION_APPLICATION",
                "TB_USAGE_ATTRIBUTION_DIMENSION_AGENT",
                "TB_USAGE_ATTRIBUTION_DIMENSION_COST_CENTER",
                "TB_USAGE_ATTRIBUTION_DIMENSION_USER",
                "TB_USAGE_ATTRIBUTION_DIMENSION_PROVIDER",
                "TB_USAGE_ATTRIBUTION_DIMENSION_MODEL",
                "TB_USAGE_ATTRIBUTION_DIMENSION_ROUTE",
                "TB_USAGE_ATTRIBUTION_DIMENSION_CALL_ROLE"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "since",
            "schema": {
              "description": "The since field.",
              "format": "int64",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "until",
            "schema": {
              "description": "The until field.",
              "format": "int64",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServiceListInferenceTopAgentsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Inference Top Agents",
        "tags": [
          "Edge"
        ],
        "x-speakeasy-group": "Edge",
        "x-speakeasy-name-override": "ListInferenceTopAgents"
      }
    },
    "/api/v1/apps/{app_id}/edges/{id}/inference/top-tools": {
      "get": {
        "description": "Lists the most frequently used inference operations for this Edge in the requested time window.",
        "operationId": "c1.api.edge.v1.EdgeService.ListInferenceTopTools",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "bucket",
            "schema": {
              "description": "The bucket field.",
              "enum": [
                "TB_TIME_BUCKET_UNSPECIFIED",
                "TB_TIME_BUCKET_HOUR",
                "TB_TIME_BUCKET_DAY"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            }
          },
          {
            "in": "query",
            "name": "dimension",
            "schema": {
              "description": "The dimension field.",
              "enum": [
                "TB_USAGE_ATTRIBUTION_DIMENSION_UNSPECIFIED",
                "TB_USAGE_ATTRIBUTION_DIMENSION_TEAM",
                "TB_USAGE_ATTRIBUTION_DIMENSION_APPLICATION",
                "TB_USAGE_ATTRIBUTION_DIMENSION_AGENT",
                "TB_USAGE_ATTRIBUTION_DIMENSION_COST_CENTER",
                "TB_USAGE_ATTRIBUTION_DIMENSION_USER",
                "TB_USAGE_ATTRIBUTION_DIMENSION_PROVIDER",
                "TB_USAGE_ATTRIBUTION_DIMENSION_MODEL",
                "TB_USAGE_ATTRIBUTION_DIMENSION_ROUTE",
                "TB_USAGE_ATTRIBUTION_DIMENSION_CALL_ROLE"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "since",
            "schema": {
              "description": "The since field.",
              "format": "int64",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "until",
            "schema": {
              "description": "The until field.",
              "format": "int64",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServiceListInferenceTopToolsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Inference Top Tools",
        "tags": [
          "Edge"
        ],
        "x-speakeasy-group": "Edge",
        "x-speakeasy-name-override": "ListInferenceTopTools"
      }
    },
    "/api/v1/apps/{app_id}/edges/{id}/inference/traffic": {
      "get": {
        "description": "Lists inference traffic events for this Edge in the requested time window.",
        "operationId": "c1.api.edge.v1.EdgeService.ListInferenceTrafficEvents",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "bucket",
            "schema": {
              "description": "The bucket field.",
              "enum": [
                "TB_TIME_BUCKET_UNSPECIFIED",
                "TB_TIME_BUCKET_HOUR",
                "TB_TIME_BUCKET_DAY"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            }
          },
          {
            "in": "query",
            "name": "dimension",
            "schema": {
              "description": "The dimension field.",
              "enum": [
                "TB_USAGE_ATTRIBUTION_DIMENSION_UNSPECIFIED",
                "TB_USAGE_ATTRIBUTION_DIMENSION_TEAM",
                "TB_USAGE_ATTRIBUTION_DIMENSION_APPLICATION",
                "TB_USAGE_ATTRIBUTION_DIMENSION_AGENT",
                "TB_USAGE_ATTRIBUTION_DIMENSION_COST_CENTER",
                "TB_USAGE_ATTRIBUTION_DIMENSION_USER",
                "TB_USAGE_ATTRIBUTION_DIMENSION_PROVIDER",
                "TB_USAGE_ATTRIBUTION_DIMENSION_MODEL",
                "TB_USAGE_ATTRIBUTION_DIMENSION_ROUTE",
                "TB_USAGE_ATTRIBUTION_DIMENSION_CALL_ROLE"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "since",
            "schema": {
              "description": "The since field.",
              "format": "int64",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "until",
            "schema": {
              "description": "The until field.",
              "format": "int64",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServiceListInferenceTrafficEventsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Inference Traffic Events",
        "tags": [
          "Edge"
        ],
        "x-speakeasy-group": "Edge",
        "x-speakeasy-name-override": "ListInferenceTrafficEvents"
      }
    },
    "/api/v1/apps/{app_id}/edges/{id}/inference/usage": {
      "get": {
        "description": "Returns inference request and token totals for this Edge, with time series and model breakdowns.",
        "operationId": "c1.api.edge.v1.EdgeService.GetInferenceUsageSummary",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "bucket",
            "schema": {
              "description": "The bucket field.",
              "enum": [
                "TB_TIME_BUCKET_UNSPECIFIED",
                "TB_TIME_BUCKET_HOUR",
                "TB_TIME_BUCKET_DAY"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            }
          },
          {
            "in": "query",
            "name": "dimension",
            "schema": {
              "description": "The dimension field.",
              "enum": [
                "TB_USAGE_ATTRIBUTION_DIMENSION_UNSPECIFIED",
                "TB_USAGE_ATTRIBUTION_DIMENSION_TEAM",
                "TB_USAGE_ATTRIBUTION_DIMENSION_APPLICATION",
                "TB_USAGE_ATTRIBUTION_DIMENSION_AGENT",
                "TB_USAGE_ATTRIBUTION_DIMENSION_COST_CENTER",
                "TB_USAGE_ATTRIBUTION_DIMENSION_USER",
                "TB_USAGE_ATTRIBUTION_DIMENSION_PROVIDER",
                "TB_USAGE_ATTRIBUTION_DIMENSION_MODEL",
                "TB_USAGE_ATTRIBUTION_DIMENSION_ROUTE",
                "TB_USAGE_ATTRIBUTION_DIMENSION_CALL_ROLE"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "since",
            "schema": {
              "description": "The since field.",
              "format": "int64",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "until",
            "schema": {
              "description": "The until field.",
              "format": "int64",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServiceGetInferenceUsageSummaryResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Inference Usage Summary",
        "tags": [
          "Edge"
        ],
        "x-speakeasy-group": "Edge",
        "x-speakeasy-name-override": "GetInferenceUsageSummary"
      }
    },
    "/api/v1/apps/{app_id}/edges/{id}/inference/usage-attribution": {
      "get": {
        "description": "Returns inference request and token usage for this Edge grouped by the selected attribution dimension.",
        "operationId": "c1.api.edge.v1.EdgeService.GetInferenceUsageAttribution",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "bucket",
            "schema": {
              "description": "The bucket field.",
              "enum": [
                "TB_TIME_BUCKET_UNSPECIFIED",
                "TB_TIME_BUCKET_HOUR",
                "TB_TIME_BUCKET_DAY"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            }
          },
          {
            "in": "query",
            "name": "dimension",
            "schema": {
              "description": "The dimension field.",
              "enum": [
                "TB_USAGE_ATTRIBUTION_DIMENSION_UNSPECIFIED",
                "TB_USAGE_ATTRIBUTION_DIMENSION_TEAM",
                "TB_USAGE_ATTRIBUTION_DIMENSION_APPLICATION",
                "TB_USAGE_ATTRIBUTION_DIMENSION_AGENT",
                "TB_USAGE_ATTRIBUTION_DIMENSION_COST_CENTER",
                "TB_USAGE_ATTRIBUTION_DIMENSION_USER",
                "TB_USAGE_ATTRIBUTION_DIMENSION_PROVIDER",
                "TB_USAGE_ATTRIBUTION_DIMENSION_MODEL",
                "TB_USAGE_ATTRIBUTION_DIMENSION_ROUTE",
                "TB_USAGE_ATTRIBUTION_DIMENSION_CALL_ROLE"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "since",
            "schema": {
              "description": "The since field.",
              "format": "int64",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "until",
            "schema": {
              "description": "The until field.",
              "format": "int64",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServiceGetInferenceUsageAttributionResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Inference Usage Attribution",
        "tags": [
          "Edge"
        ],
        "x-speakeasy-group": "Edge",
        "x-speakeasy-name-override": "GetInferenceUsageAttribution"
      }
    },
    "/api/v1/apps/{app_id}/edges/{id}/inference/vault-access": {
      "get": {
        "description": "CheckInferenceVaultAccess reports whether the Edge's runtime service\n principal can open secrets in a Vault, using the same check Update runs\n on inference targets, and returns the entitlement that grants it.",
        "operationId": "c1.api.edge.v1.EdgeService.CheckInferenceVaultAccess",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Edge identifier.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vault_boundary_id",
            "schema": {
              "description": "The vaultBoundaryId field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServiceCheckInferenceVaultAccessResponse"
                }
              }
            },
            "description": "EdgeServiceCheckInferenceVaultAccessResponse reports the same Vault grant\n check Update runs before saving an inference route."
          }
        },
        "summary": "Check Inference Vault Access",
        "tags": [
          "Edge"
        ],
        "x-speakeasy-group": "Edge",
        "x-speakeasy-name-override": "CheckInferenceVaultAccess"
      }
    },
    "/api/v1/apps/{app_id}/edges/{id}/public-trust": {
      "get": {
        "description": "Get fresh public trust metadata for an egress Edge the signed-in person can use.\n Requires the person's own human or proof-bound device session and current egress grant.",
        "operationId": "c1.api.edge.v1.EdgeService.GetPublicTrust",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "Application owning the selected Edge.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Selected Edge identifier.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServiceGetPublicTrustResponse"
                }
              }
            },
            "description": "EdgeServiceGetPublicTrustResponse contains public metadata and no signing material."
          }
        },
        "summary": "Get Public Trust",
        "tags": [
          "Edge"
        ],
        "x-speakeasy-group": "Edge",
        "x-speakeasy-name-override": "GetPublicTrust"
      }
    },
    "/api/v1/apps/{app_id}/entitlement_configuration_rules": {
      "get": {
        "description": "ListAppEntitlementRoutingRules returns an application's entitlement\n configuration rules in evaluation order, by priority then by ID.",
        "operationId": "c1.api.app.v1.AppEntitlementRoutingRuleService.ListAppEntitlementRoutingRules",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.ListAppEntitlementRoutingRulesResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List App Entitlement Routing Rules",
        "tags": [
          "App Entitlement Configuration Rule"
        ],
        "x-speakeasy-group": "AppEntitlementRoutingRule",
        "x-speakeasy-name-override": "ListAppEntitlementRoutingRules"
      },
      "post": {
        "description": "CreateAppEntitlementRoutingRule creates an entitlement configuration rule\n for an application. Rules are evaluated in priority order and the first\n rule whose condition matches supplies the entitlement's request settings.\n An app can have at most 5 rules.",
        "operationId": "c1.api.app.v1.AppEntitlementRoutingRuleService.CreateAppEntitlementRoutingRule",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.CreateAppEntitlementRoutingRuleRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.CreateAppEntitlementRoutingRuleResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create App Entitlement Routing Rule",
        "tags": [
          "App Entitlement Configuration Rule"
        ],
        "x-speakeasy-group": "AppEntitlementRoutingRule",
        "x-speakeasy-name-override": "CreateAppEntitlementRoutingRule"
      }
    },
    "/api/v1/apps/{app_id}/entitlement_configuration_rules/reorder": {
      "post": {
        "description": "Reorder all configuration rules for an app in a single call. The caller\n supplies the full ordered list of rule IDs; the server assigns dense\n priorities (1..N) in that order. The request must be a permutation of every\n active rule in the app — missing or extra IDs are rejected.",
        "operationId": "c1.api.app.v1.AppEntitlementRoutingRuleService.ReorderAppEntitlementRoutingRules",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app whose rules should be reordered.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.ReorderAppEntitlementRoutingRulesRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.ReorderAppEntitlementRoutingRulesResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Reorder App Entitlement Routing Rules",
        "tags": [
          "App Entitlement Configuration Rule"
        ],
        "x-speakeasy-group": "AppEntitlementRoutingRule",
        "x-speakeasy-name-override": "ReorderAppEntitlementRoutingRules"
      }
    },
    "/api/v1/apps/{app_id}/entitlement_configuration_rules/{id}": {
      "delete": {
        "description": "DeleteAppEntitlementRoutingRule deletes an entitlement configuration rule\n by ID.",
        "operationId": "c1.api.app.v1.AppEntitlementRoutingRuleService.DeleteAppEntitlementRoutingRule",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.DeleteAppEntitlementRoutingRuleRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.DeleteAppEntitlementRoutingRuleResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete App Entitlement Routing Rule",
        "tags": [
          "App Entitlement Configuration Rule"
        ],
        "x-speakeasy-group": "AppEntitlementRoutingRule",
        "x-speakeasy-name-override": "DeleteAppEntitlementRoutingRule"
      },
      "get": {
        "description": "GetAppEntitlementRoutingRule returns a single entitlement configuration\n rule by ID.",
        "operationId": "c1.api.app.v1.AppEntitlementRoutingRuleService.GetAppEntitlementRoutingRule",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.GetAppEntitlementRoutingRuleResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get App Entitlement Routing Rule",
        "tags": [
          "App Entitlement Configuration Rule"
        ],
        "x-speakeasy-group": "AppEntitlementRoutingRule",
        "x-speakeasy-name-override": "GetAppEntitlementRoutingRule"
      },
      "post": {
        "description": "Update an existing app entitlement configuration rule. The app_id field is\n immutable; moving a rule between apps is modeled as delete + create.",
        "operationId": "c1.api.app.v1.AppEntitlementRoutingRuleService.UpdateAppEntitlementRoutingRule",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.UpdateAppEntitlementRoutingRuleRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.UpdateAppEntitlementRoutingRuleResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update App Entitlement Routing Rule",
        "tags": [
          "App Entitlement Configuration Rule"
        ],
        "x-speakeasy-group": "AppEntitlementRoutingRule",
        "x-speakeasy-name-override": "UpdateAppEntitlementRoutingRule"
      }
    },
    "/api/v1/apps/{app_id}/entitlements": {
      "get": {
        "description": "List app entitlements associated with an app. Query parameters are\n accepted in snake_case (page_size, page_token, app_user_id) and, as a\n compatibility shim, their camelCase equivalents (pageSize, pageToken,\n appUserId).",
        "operationId": "c1.api.app.v1.AppEntitlements.List",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "app_user_id",
            "schema": {
              "description": "Filter to entitlements granted to the given app user.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "q",
            "schema": {
              "description": "Fuzzy search on display name and description.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.ListAppEntitlementsResponse"
                }
              }
            },
            "description": "The ListAppEntitlementsResponse message contains a list of results and a nextPageToken if applicable."
          }
        },
        "summary": "List",
        "tags": [
          "App Entitlement"
        ],
        "x-speakeasy-group": "AppEntitlements",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Create a new app entitlement for an app. This is used to define a custom permission, group, or role within the app.",
        "operationId": "c1.api.app.v1.AppEntitlements.Create",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app to create the entitlement in.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.CreateAppEntitlementRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.CreateAppEntitlementResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create",
        "tags": [
          "App Entitlement"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Custom App Entitlement#create"
        },
        "x-speakeasy-group": "AppEntitlements",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/apps/{app_id}/entitlements/resource_types/{app_resource_type_id}/resources/{app_resource_id}": {
      "get": {
        "description": "List app entitlements associated with an app resource.",
        "operationId": "c1.api.app.v1.AppEntitlements.ListForAppResource",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_resource_type_id",
            "required": true,
            "schema": {
              "description": "The appResourceTypeId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_resource_id",
            "required": true,
            "schema": {
              "description": "The appResourceId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.ListAppEntitlementsResponse"
                }
              }
            },
            "description": "The ListAppEntitlementsResponse message contains a list of results and a nextPageToken if applicable."
          }
        },
        "summary": "List For App Resource",
        "tags": [
          "App Entitlement"
        ],
        "x-speakeasy-group": "AppEntitlements",
        "x-speakeasy-name-override": "ListForAppResource"
      }
    },
    "/api/v1/apps/{app_id}/entitlements/users/{app_user_id}": {
      "get": {
        "description": "List app entitlements associated with an app user.",
        "operationId": "c1.api.app.v1.AppEntitlements.ListForAppUser",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_user_id",
            "required": true,
            "schema": {
              "description": "The appUserId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.ListAppEntitlementsResponse"
                }
              }
            },
            "description": "The ListAppEntitlementsResponse message contains a list of results and a nextPageToken if applicable."
          }
        },
        "summary": "List For App User",
        "tags": [
          "App Entitlement"
        ],
        "x-speakeasy-group": "AppEntitlements",
        "x-speakeasy-name-override": "ListForAppUser"
      }
    },
    "/api/v1/apps/{app_id}/entitlements/{app_entitlement_id}/add-manual-user": {
      "post": {
        "description": "Add users as manually managed members of an app entitlement. These memberships are tracked directly by ConductorOne rather than synced from the app.\n Adding members to an access profile's enrollment entitlement requires the JML feature; without it the request fails with a failed-precondition error.",
        "operationId": "c1.api.app.v1.AppEntitlements.AddManuallyManagedMembers",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app that contains the entitlement.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_id",
            "required": true,
            "schema": {
              "description": "The ID of the app entitlement to add manually managed members to.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.AddManuallyManagedUsersRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.ManuallyManagedUsersResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Add Manually Managed Members",
        "tags": [
          "App Entitlement"
        ],
        "x-speakeasy-group": "AppEntitlements",
        "x-speakeasy-name-override": "AddManuallyManagedMembers"
      }
    },
    "/api/v1/apps/{app_id}/entitlements/{app_entitlement_id}/automation": {
      "delete": {
        "description": "Delete the automation rule for an app entitlement.",
        "operationId": "c1.api.app.v1.AppEntitlements.DeleteAutomation",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app that contains the entitlement.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_id",
            "required": true,
            "schema": {
              "description": "The ID of the app entitlement whose automation to delete.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.DeleteAutomationRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.DeleteAutomationResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete Automation",
        "tags": [
          "App Entitlement Automation"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "App Entitlement Automation#delete"
        },
        "x-speakeasy-group": "AppEntitlements",
        "x-speakeasy-name-override": "DeleteAutomation"
      },
      "get": {
        "description": "Get the automation rule for an app entitlement.",
        "operationId": "c1.api.app.v1.AppEntitlements.GetAutomation",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app that is associated with the app entitlement.",
              "readOnly": true,
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_id",
            "required": true,
            "schema": {
              "description": "The unique ID for the App Entitlement.",
              "readOnly": true,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementServiceGetAutomationResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Automation",
        "tags": [
          "App Entitlement Automation"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "App Entitlement Automation#read",
          "terraform-resource": "App Entitlement Automation#read"
        },
        "x-speakeasy-group": "AppEntitlements",
        "x-speakeasy-name-override": "GetAutomation"
      }
    },
    "/api/v1/apps/{app_id}/entitlements/{app_entitlement_id}/automation/create": {
      "post": {
        "description": "Create an automation rule for an app entitlement. Automations automatically provision or revoke access based on defined conditions.",
        "operationId": "c1.api.app.v1.AppEntitlements.CreateAutomation",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app that contains the entitlement.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_id",
            "required": true,
            "schema": {
              "description": "The ID of the app entitlement to create an automation for.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.CreateAutomationRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.CreateAutomationResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create Automation",
        "tags": [
          "App Entitlement Automation"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "App Entitlement Automation#create"
        },
        "x-speakeasy-group": "AppEntitlements",
        "x-speakeasy-name-override": "CreateAutomation"
      }
    },
    "/api/v1/apps/{app_id}/entitlements/{app_entitlement_id}/automation/exclusions": {
      "delete": {
        "description": "Remove users from the automation exclusion list for an app entitlement.",
        "operationId": "c1.api.app.v1.AppEntitlements.RemoveAutomationExclusion",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app that contains the entitlement.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_id",
            "required": true,
            "schema": {
              "description": "The ID of the app entitlement whose automation exclusion list to update.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.RemoveAutomationExclusionRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.RemoveAutomationExclusionResponse"
                }
              }
            },
            "description": "Empty response with a status code indicating success."
          }
        },
        "summary": "Remove Automation Exclusion",
        "tags": [
          "App Entitlement Automation Exclusion"
        ],
        "x-speakeasy-group": "AppEntitlements",
        "x-speakeasy-name-override": "RemoveAutomationExclusion"
      },
      "get": {
        "description": "List users who are excluded from the automation rule for an app entitlement.",
        "operationId": "c1.api.app.v1.AppEntitlements.ListAutomationExclusions",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app that contains the entitlement.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_id",
            "required": true,
            "schema": {
              "description": "The ID of the app entitlement to list exclusions for.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.ListAutomationExclusionsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Automation Exclusions",
        "tags": [
          "App Entitlement Automation Exclusion"
        ],
        "x-speakeasy-group": "AppEntitlements",
        "x-speakeasy-name-override": "ListAutomationExclusions"
      },
      "post": {
        "description": "Add users to the automation exclusion list for an app entitlement. Excluded users are not affected by the automation rule.",
        "operationId": "c1.api.app.v1.AppEntitlements.AddAutomationExclusion",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app that contains the entitlement.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_id",
            "required": true,
            "schema": {
              "description": "The ID of the app entitlement whose automation exclusion list to update.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.AddAutomationExclusionRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.AddAutomationExclusionResponse"
                }
              }
            },
            "description": "Empty response with a status code indicating success."
          }
        },
        "summary": "Add Automation Exclusion",
        "tags": [
          "App Entitlement Automation Exclusion"
        ],
        "x-speakeasy-group": "AppEntitlements",
        "x-speakeasy-name-override": "AddAutomationExclusion"
      }
    },
    "/api/v1/apps/{app_id}/entitlements/{app_entitlement_id}/automation/update": {
      "post": {
        "description": "Update the automation rule for an app entitlement, including its display name, description, and conditions.",
        "operationId": "c1.api.app.v1.AppEntitlements.UpdateAutomation",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app that is associated with the app entitlement.",
              "readOnly": true,
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_id",
            "required": true,
            "schema": {
              "description": "The unique ID for the App Entitlement.",
              "readOnly": true,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementServiceUpdateAutomationRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementServiceUpdateAutomationResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update Automation",
        "tags": [
          "App Entitlement Automation"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "App Entitlement Automation#update"
        },
        "x-speakeasy-group": "AppEntitlements",
        "x-speakeasy-name-override": "UpdateAutomation"
      }
    },
    "/api/v1/apps/{app_id}/entitlements/{app_entitlement_id}/grants": {
      "get": {
        "description": "Search app entitlements, include app users, users, expires, discovered.\n Response rows are large — request a small page_size (≤10) to keep responses small.",
        "operationId": "c1.api.app.v1.AppEntitlementSearchService.SearchAppEntitlementsWithExpired",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_id",
            "required": true,
            "schema": {
              "description": "The appEntitlementId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.SearchAppEntitlementsWithExpiredResponse"
                }
              }
            },
            "description": "The SearchAppEntitlementsWithExpiredResponse message contains a list of results and a nextPageToken if applicable."
          }
        },
        "summary": "Search App Entitlements With Expired",
        "tags": [
          "App Entitlement"
        ],
        "x-speakeasy-group": "AppEntitlementSearch",
        "x-speakeasy-name-override": "SearchAppEntitlementsWithExpired"
      }
    },
    "/api/v1/apps/{app_id}/entitlements/{app_entitlement_id}/remove-membership": {
      "delete": {
        "description": "Remove a user from a manually managed entitlement. For ConductorOne\n catalogs, groups, and profile types, the existing resource-specific\n removal behavior applies. When the SSO provider feature is enabled, an SSO\n application's sign-in entitlement removes only direct manual access and\n preserves independent requested, connector, and group-derived access.\n Removing a member from an access profile requires the JML feature; without\n it the request fails with a failed-precondition error.",
        "operationId": "c1.api.app.v1.AppEntitlements.RemoveEntitlementMembership",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app that contains the entitlement.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_id",
            "required": true,
            "schema": {
              "description": "The ID of the app entitlement to remove the membership from.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.RemoveEntitlementMembershipRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.RemoveEntitlementMembershipResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Remove Entitlement Membership",
        "tags": [
          "App Entitlement"
        ],
        "x-speakeasy-group": "AppEntitlements",
        "x-speakeasy-name-override": "RemoveEntitlementMembership"
      }
    },
    "/api/v1/apps/{app_id}/entitlements/{app_entitlement_id}/session-policies/search": {
      "post": {
        "description": "Search the effective session policies for users holding this application's\n SSO sign-in entitlement. Policies are selected per user, not attached to the\n application; actual sign-in decisions are recorded in the system log.",
        "operationId": "c1.api.session_policy.v1.SessionPolicyService.SearchAppUserSessionPolicies",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The SSO application's catalog app.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_id",
            "required": true,
            "schema": {
              "description": "The sign-in entitlement on the app. Must be the entitlement named by the\n app's SSO application; any other entitlement is rejected.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.session_policy.v1.SessionPolicyServiceSearchAppUserSessionPoliciesRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.session_policy.v1.SessionPolicyServiceSearchAppUserSessionPoliciesResponse"
                }
              }
            },
            "description": "Distinct effective policies, ordered by display name and policy ID.\n A tenant default appears only if it is selected for at least one user.\n An empty list means no effective policies were found, including when no\n current users have accounts holding the sign-in entitlement."
          }
        },
        "summary": "Search App User Session Policies",
        "tags": [
          "Session Policy"
        ],
        "x-speakeasy-group": "SessionPolicy",
        "x-speakeasy-name-override": "SearchAppUserSessionPolicies",
        "x-stability-level": "alpha"
      }
    },
    "/api/v1/apps/{app_id}/entitlements/{app_entitlement_id}/users": {
      "get": {
        "deprecated": true,
        "description": "List the users, as AppEntitlementUsers objects, of an app entitlement.",
        "operationId": "c1.api.app.v1.AppEntitlements.ListUsers",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_id",
            "required": true,
            "schema": {
              "description": "The appEntitlementId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.ListAppEntitlementUsersResponse"
                }
              }
            },
            "description": "The ListAppEntitlementUsersResponse message contains a list of results and a nextPageToken if applicable."
          }
        },
        "summary": "List Users",
        "tags": [
          "App Entitlement"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "AppEntitlementUsers#read",
          "terraform-resource": null
        },
        "x-speakeasy-group": "AppEntitlements",
        "x-speakeasy-name-override": "ListUsers"
      }
    },
    "/api/v1/apps/{app_id}/entitlements/{app_entitlement_id}/users/{app_user_id}/remove-grant-duration": {
      "post": {
        "description": "Remove the expiration time from a grant, converting it to an indefinite (standing) grant.",
        "operationId": "c1.api.app.v1.AppEntitlementUserBindingService.RemoveGrantDuration",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app that owns the entitlement.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_id",
            "required": true,
            "schema": {
              "description": "The ID of the entitlement whose grant duration is being removed.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_user_id",
            "required": true,
            "schema": {
              "description": "The ID of the app user whose grant expiration is being removed.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.RemoveGrantDurationRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.RemoveGrantDurationResponse"
                }
              }
            },
            "description": "The response message for removing the expiration time from a grant."
          }
        },
        "summary": "Remove Grant Duration",
        "tags": [
          "App Entitlement User Binding"
        ],
        "x-speakeasy-group": "AppEntitlementUserBinding",
        "x-speakeasy-name-override": "RemoveGrantDuration"
      }
    },
    "/api/v1/apps/{app_id}/entitlements/{app_entitlement_id}/users/{app_user_id}/update-grant-duration": {
      "post": {
        "description": "Update the expiration time of an existing grant, changing when automatic revocation will occur.",
        "operationId": "c1.api.app.v1.AppEntitlementUserBindingService.UpdateGrantDuration",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app that owns the entitlement.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_id",
            "required": true,
            "schema": {
              "description": "The ID of the entitlement whose grant duration is being updated.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_user_id",
            "required": true,
            "schema": {
              "description": "The ID of the app user whose grant is being updated.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.UpdateGrantDurationRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.UpdateGrantDurationResponse"
                }
              }
            },
            "description": "The response message for updating the duration of a grant."
          }
        },
        "summary": "Update Grant Duration",
        "tags": [
          "App Entitlement User Binding"
        ],
        "x-speakeasy-group": "AppEntitlementUserBinding",
        "x-speakeasy-name-override": "UpdateGrantDuration"
      }
    },
    "/api/v1/apps/{app_id}/entitlements/{app_entitlement_id}/users/{identity_user_id}/grants": {
      "get": {
        "description": "Returns a list of app users for the identity in the app. If that app user also has a grant to the entitlement from the request, data about the grant is also returned. It will always return ALL app users for this identity, but only SOME may have grant data.",
        "operationId": "c1.api.app.v1.AppEntitlementUserBindingService.ListAppUsersForIdentityWithGrant",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_id",
            "required": true,
            "schema": {
              "description": "The appEntitlementId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "identity_user_id",
            "required": true,
            "schema": {
              "description": "The identityUserId field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.ListAppUsersForIdentityWithGrantResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List App Users For Identity With Grant",
        "tags": [
          "App Entitlement User Binding"
        ],
        "x-speakeasy-group": "AppEntitlementUserBinding",
        "x-speakeasy-name-override": "ListAppUsersForIdentityWithGrant"
      }
    },
    "/api/v1/apps/{app_id}/entitlements/{entitlement_id}/ownerids": {
      "get": {
        "description": "ListUserIDs lists owner IDs for a given app entitlement.",
        "operationId": "c1.api.app.v1.AppEntitlementOwners.ListOwnerIDs",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The app_id field for the app entitlement to list owners of.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "entitlement_id",
            "required": true,
            "schema": {
              "description": "The entitlement_id field for the app entitlement to list owners of.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.ListAppEntitlementOwnerIDsResponse"
                }
              }
            },
            "description": "The response message for listing app entitlement owners IDs."
          }
        },
        "summary": "List Owner I Ds",
        "tags": [
          "App Entitlement Owner"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": null,
          "terraform-resource": "App_Entitlement_Owner#read"
        },
        "x-speakeasy-group": "AppEntitlementOwners",
        "x-speakeasy-name-override": "ListOwnerIDs"
      }
    },
    "/api/v1/apps/{app_id}/entitlements/{entitlement_id}/owners": {
      "delete": {
        "description": "Delete deletes the owners from a given app entitlement.",
        "operationId": "c1.api.app.v1.AppEntitlementOwners.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The app_id field for the app entitlement to remove the owner of.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "entitlement_id",
            "required": true,
            "schema": {
              "description": "The entitlement_id field for the app entitlement to remove the owner of.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.DeleteAppEntitlementOwnersRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.DeleteAppEntitlementOwnersResponse"
                }
              }
            },
            "description": "the empty response message for deleting app entitlement owners."
          }
        },
        "summary": "Delete",
        "tags": [
          "App Entitlement Owner"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "App_Entitlement_Owner#delete"
        },
        "x-speakeasy-group": "AppEntitlementOwners",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "List owners for a given app entitlement.",
        "operationId": "c1.api.app.v1.AppEntitlementOwners.List",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The app_id field for the app entitlement to list owners of.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "entitlement_id",
            "required": true,
            "schema": {
              "description": "The entitlement_id field for the app entitlement to list owners of.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The page_size field for pagination.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The page_token field for pagination.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.ListAppEntitlementOwnersResponse"
                }
              }
            },
            "description": "The response message for listing app entitlement owners."
          }
        },
        "summary": "List",
        "tags": [
          "App Entitlement Owner"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "AppEntitlementOwners#read",
          "terraform-resource": null
        },
        "x-speakeasy-group": "AppEntitlementOwners",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Add an owner to a given app entitlement.",
        "operationId": "c1.api.app.v1.AppEntitlementOwners.Add",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The app_id field for the app entitlement to add the owner to.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "entitlement_id",
            "required": true,
            "schema": {
              "description": "The entitlement_id field for the app entitlement to add the owner to.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.AddAppEntitlementOwnerRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.AddAppEntitlementOwnerResponse"
                }
              }
            },
            "description": "The empty response message for adding an app entitlement owner."
          }
        },
        "summary": "Add",
        "tags": [
          "App Entitlement Owner"
        ],
        "x-speakeasy-group": "AppEntitlementOwners",
        "x-speakeasy-name-override": "Add"
      },
      "put": {
        "description": "Sets the owners for a given app entitlement to the specified list of users.",
        "operationId": "c1.api.app.v1.AppEntitlementOwners.Set",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The app_id field for the app entitlement to set the owners of.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "entitlement_id",
            "required": true,
            "schema": {
              "description": "The entitlement_id field for the app entitlement to set the owners of.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.SetAppEntitlementOwnersRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.SetAppEntitlementOwnersResponse"
                }
              }
            },
            "description": "The empty response message for setting the app entitlement owners."
          }
        },
        "summary": "Set",
        "tags": [
          "App Entitlement Owner"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "App_Entitlement_Owner#create"
        },
        "x-speakeasy-group": "AppEntitlementOwners",
        "x-speakeasy-name-override": "Set"
      }
    },
    "/api/v1/apps/{app_id}/entitlements/{entitlement_id}/owners/{user_id}": {
      "delete": {
        "description": "Remove an owner from a given app entitlement.",
        "operationId": "c1.api.app.v1.AppEntitlementOwners.Remove",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The app_id field for the app entitlement to remove the owner of.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "entitlement_id",
            "required": true,
            "schema": {
              "description": "The entitlement_id field for the app entitlement to remove the owner of.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The user_id field for the user to remove as an owner of the app entitlement.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.RemoveAppEntitlementOwnerRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.RemoveAppEntitlementOwnerResponse"
                }
              }
            },
            "description": "The empty response message for removing an app entitlement owner."
          }
        },
        "summary": "Remove",
        "tags": [
          "App Entitlement Owner"
        ],
        "x-speakeasy-group": "AppEntitlementOwners",
        "x-speakeasy-name-override": "Remove"
      }
    },
    "/api/v1/apps/{app_id}/entitlements/{id}": {
      "delete": {
        "description": "Delete an app entitlement by ID.",
        "operationId": "c1.api.app.v1.AppEntitlements.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app that contains the entitlement.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the app entitlement to delete.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.DeleteAppEntitlementRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.DeleteAppEntitlementResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete",
        "tags": [
          "App Entitlement"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Custom App Entitlement#delete"
        },
        "x-speakeasy-group": "AppEntitlements",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get an app entitlement by ID.",
        "operationId": "c1.api.app.v1.AppEntitlements.Get",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.GetAppEntitlementResponse"
                }
              }
            },
            "description": "The get app entitlement response returns an entitlement view containing paths in the expanded array for the objects expanded as indicated by the expand mask in the request."
          }
        },
        "summary": "Get",
        "tags": [
          "App Entitlement"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": null,
          "terraform-resource": "Custom App Entitlement#read"
        },
        "x-speakeasy-group": "AppEntitlements",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update an app entitlement by ID.",
        "operationId": "c1.api.app.v1.AppEntitlements.Update",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app that is associated with the app entitlement.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The unique ID for the App Entitlement.",
              "readOnly": true,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.UpdateAppEntitlementRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.UpdateAppEntitlementResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update",
        "tags": [
          "App Entitlement"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Custom App Entitlement#update"
        },
        "x-speakeasy-group": "AppEntitlements",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/apps/{app_id}/inference-routes": {
      "get": {
        "description": "ListInferenceRoutes returns routes already configured for this application.\n The Edge feature and application management access are required. New routes\n are authored through Update.inference_routes, not selected from a catalog.",
        "operationId": "c1.api.edge.v1.EdgeService.ListInferenceRoutes",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "Application identifier.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServiceListInferenceRoutesResponse"
                }
              }
            },
            "description": "EdgeServiceListInferenceRoutesResponse contains configured route metadata\n for an application."
          }
        },
        "summary": "List Inference Routes",
        "tags": [
          "Edge"
        ],
        "x-speakeasy-group": "Edge",
        "x-speakeasy-name-override": "ListInferenceRoutes"
      }
    },
    "/api/v1/apps/{app_id}/mcp_servers": {
      "get": {
        "description": "List retrieves MCP servers, optionally narrowed to an app.",
        "operationId": "c1.api.ai_governance.v1.MCPServerService.List",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier. When called through gRPC, leave empty to list MCP servers across accessible apps.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Page size (max 100).",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Page token for pagination.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "query",
            "schema": {
              "description": "Optional text query matched against the server or its app.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerServiceListResponse"
                }
              }
            },
            "description": "MCPServerServiceListResponse returns a paginated list of MCP servers."
          }
        },
        "summary": "List",
        "tags": [
          "MCP Servers"
        ],
        "x-speakeasy-group": "MCPServer",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Register a new MCP server under an application. Set server_type to HOSTED\n (C1 runs a catalog integration) or EXTERNAL (a third-party MCP server you\n point C1 at by URL). Auth credentials are validated and stored securely.",
        "operationId": "c1.api.ai_governance.v1.MCPServerService.Register",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App to register the MCP server under. When empty and app_managed_state_binding_ref\n is not set, a new managed app is created automatically.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerServiceRegisterRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerServiceRegisterResponse"
                }
              }
            },
            "description": "MCPServerServiceRegisterResponse returns the newly created MCP server."
          }
        },
        "summary": "Register",
        "tags": [
          "MCP Servers"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "MCP Server#create"
        },
        "x-speakeasy-group": "MCPServer",
        "x-speakeasy-name-override": "Register"
      }
    },
    "/api/v1/apps/{app_id}/mcp_servers/search": {
      "post": {
        "description": "SearchWithToolCount searches MCP servers with filtering and returns per-server tool state counts.",
        "operationId": "c1.api.ai_governance.v1.MCPServerService.SearchWithToolCount",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier (required).",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerServiceSearchWithToolCountRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerServiceSearchWithToolCountResponse"
                }
              }
            },
            "description": "MCPServerServiceSearchWithToolCountResponse returns matching MCP servers with tool counts."
          }
        },
        "summary": "Search With Tool Count",
        "tags": [
          "MCP Servers"
        ],
        "x-speakeasy-group": "MCPServer",
        "x-speakeasy-name-override": "SearchWithToolCount"
      }
    },
    "/api/v1/apps/{app_id}/mcp_servers/{connector_id}": {
      "delete": {
        "description": "Delete an MCP server. Its connector stops and it is soft-deleted from this\n tenant's MCP catalog, and any per-user credentials issued against it are\n revoked.",
        "operationId": "c1.api.ai_governance.v1.MCPServerService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "MCP server identifier (connector ID).",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerServiceDeleteResponse"
                }
              }
            },
            "description": "MCPServerServiceDeleteResponse confirms deletion."
          }
        },
        "summary": "Delete",
        "tags": [
          "MCP Servers"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "MCP Server#delete"
        },
        "x-speakeasy-group": "MCPServer",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get retrieves a single MCP server.",
        "operationId": "c1.api.ai_governance.v1.MCPServerService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "MCP server identifier (connector ID).",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerServiceGetResponse"
                }
              }
            },
            "description": "MCPServerServiceGetResponse returns a single MCP server."
          }
        },
        "summary": "Get",
        "tags": [
          "MCP Servers"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": null,
          "terraform-resource": "MCP Server#read"
        },
        "x-speakeasy-group": "MCPServer",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update modifies an existing MCP server's editable fields.",
        "operationId": "c1.api.ai_governance.v1.MCPServerService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "MCP server identifier (connector ID).",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerServiceUpdateResponse"
                }
              }
            },
            "description": "MCPServerServiceUpdateResponse returns the updated MCP server."
          }
        },
        "summary": "Update",
        "tags": [
          "MCP Servers"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "MCP Server#update"
        },
        "x-speakeasy-group": "MCPServer",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/apps/{app_id}/mcp_servers/{connector_id}/credentials": {
      "post": {
        "description": "UpdateCredentials replaces the auth config and/or config fields for an MCP server.",
        "operationId": "c1.api.ai_governance.v1.MCPServerService.UpdateCredentials",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "MCP server identifier (connector ID).",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerServiceUpdateCredentialsRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerServiceUpdateCredentialsResponse"
                }
              }
            },
            "description": "MCPServerServiceUpdateCredentialsResponse returns the updated MCP server."
          }
        },
        "summary": "Update Credentials",
        "tags": [
          "MCP Servers"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "MCP Server#update#2"
        },
        "x-speakeasy-group": "MCPServer",
        "x-speakeasy-name-override": "UpdateCredentials"
      }
    },
    "/api/v1/apps/{app_id}/mcp_servers/{connector_id}/disconnect": {
      "post": {
        "description": "Disconnect removes the calling user's stored per-user credential/connection\n for an MCP server (OAuth2, bearer token, custom header, or basic auth).\n After this call the user must reconnect before tool calls that use their\n credential can succeed.",
        "operationId": "c1.api.ai_governance.v1.MCPServerService.Disconnect",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "MCP server identifier (connector ID).",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerServiceDisconnectRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerServiceDisconnectResponse"
                }
              }
            },
            "description": "MCPServerServiceDisconnectResponse is empty on success."
          }
        },
        "summary": "Disconnect",
        "tags": [
          "MCP Servers"
        ],
        "x-speakeasy-group": "MCPServer",
        "x-speakeasy-name-override": "Disconnect"
      }
    },
    "/api/v1/apps/{app_id}/mcp_servers/{connector_id}/resync_tools": {
      "post": {
        "description": "ResyncTools requests tool discovery for an external MCP server using the\n caller's own credential for per-user servers, or the configured shared\n credential for callers with MCP management permission for the app.\n Requires external MCP discovery decoupling to be enabled for the tenant.\n Discovery runs asynchronously; accepting this request does not mean that\n tools have finished loading or grant the caller access to execute them.",
        "operationId": "c1.api.ai_governance.v1.MCPServerService.ResyncTools",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "MCP server identifier (connector ID).",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerServiceResyncToolsRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerServiceResyncToolsResponse"
                }
              }
            },
            "description": "MCPServerServiceResyncToolsResponse is empty on success."
          }
        },
        "summary": "Resync Tools",
        "tags": [
          "MCP Servers"
        ],
        "x-speakeasy-group": "MCPServer",
        "x-speakeasy-name-override": "ResyncTools"
      }
    },
    "/api/v1/apps/{app_id}/mcp_toolsets/by_app_entitlement_id/{app_entitlement_id}": {
      "get": {
        "description": "GetByAppEntitlementId looks up the toolset (access profile) linked to a\n synced role entitlement, by app_id + app_entitlement_id.",
        "operationId": "c1.api.ai_governance.v1.MCPAccessProfileService.GetByAppEntitlementId",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App identifier.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_id",
            "required": true,
            "schema": {
              "description": "AppEntitlement ID to look up.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfileServiceGetByAppEntitlementIdResponse"
                }
              }
            },
            "description": "MCPAccessProfileServiceGetByAppEntitlementIdResponse returns the matched profile."
          }
        },
        "summary": "Get By App Entitlement Id",
        "tags": [
          "MCP Toolsets"
        ],
        "x-speakeasy-group": "MCPAccessProfile",
        "x-speakeasy-name-override": "GetByAppEntitlementId"
      }
    },
    "/api/v1/apps/{app_id}/ownerids": {
      "get": {
        "description": "ListOwnerIDs lists owner IDs for a given app.",
        "operationId": "c1.api.app.v1.AppOwners.ListOwnerIDs",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The app_id field for the app to list owners of.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.ListAppOwnerIDsResponse"
                }
              }
            },
            "description": "The response message for listing app owners IDs."
          }
        },
        "summary": "List Owner I Ds",
        "tags": [
          "App Owner"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": null,
          "terraform-resource": "App_Owner#read"
        },
        "x-speakeasy-group": "AppOwners",
        "x-speakeasy-name-override": "ListOwnerIDs"
      }
    },
    "/api/v1/apps/{app_id}/owners": {
      "delete": {
        "description": "Delete deletes the owners from a given app.",
        "operationId": "c1.api.app.v1.AppOwners.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The app_id field for the app to remove the owner of.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.DeleteAppOwnersRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.DeleteAppOwnersResponse"
                }
              }
            },
            "description": "the empty response message for deleting app owners."
          }
        },
        "summary": "Delete",
        "tags": [
          "App Owner"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "App_Owner#delete"
        },
        "x-speakeasy-group": "AppOwners",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "List owners of an app.",
        "operationId": "c1.api.app.v1.AppOwners.List",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize where 0 \u003c= pageSize \u003c= 100. Values \u003c 10 will be set to 10. A value of 0 returns the default page size (currently 25)",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.ListAppOwnersResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List",
        "tags": [
          "App Owner"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "AppOwners#read",
          "terraform-resource": null
        },
        "x-speakeasy-group": "AppOwners",
        "x-speakeasy-name-override": "List"
      },
      "put": {
        "description": "Sets the owners for a given app to the specified list of users.",
        "operationId": "c1.api.app.v1.AppOwners.Set",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The app_id field for the app to set the owners of.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.SetAppOwnersRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.SetAppOwnersResponse"
                }
              }
            },
            "description": "The empty response message for setting the app owners."
          }
        },
        "summary": "Set",
        "tags": [
          "App Owner"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "App_Owner#create"
        },
        "x-speakeasy-group": "AppOwners",
        "x-speakeasy-name-override": "Set"
      }
    },
    "/api/v1/apps/{app_id}/owners/{user_id}": {
      "delete": {
        "description": "Removes an owner from an app.",
        "operationId": "c1.api.app.v1.AppOwners.Remove",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "App ID of the app to remove the owner from.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "User ID of the user to remove as an owner.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.RemoveAppOwnerRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.RemoveAppOwnerResponse"
                }
              }
            },
            "description": "Empty response with a status code indicating success."
          }
        },
        "summary": "Remove",
        "tags": [
          "App Owner"
        ],
        "x-speakeasy-group": "AppOwners",
        "x-speakeasy-name-override": "Remove"
      },
      "post": {
        "description": "Adds an owner to an app.",
        "operationId": "c1.api.app.v1.AppOwners.Add",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The userId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.AddAppOwnerRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.AddAppOwnerResponse"
                }
              }
            },
            "description": "Empty response with a status code indicating success"
          }
        },
        "summary": "Add",
        "tags": [
          "App Owner"
        ],
        "x-speakeasy-group": "AppOwners",
        "x-speakeasy-name-override": "Add"
      }
    },
    "/api/v1/apps/{app_id}/report": {
      "get": {
        "description": "Get a list of reports for the given app.",
        "operationId": "c1.api.app.v1.AppReportService.List",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.AppReportServiceListResponse"
                }
              }
            },
            "description": "The AppReportServiceListResponse message contains a list of results and a nextPageToken if applicable."
          }
        },
        "summary": "List",
        "tags": [
          "App Reports"
        ],
        "x-speakeasy-group": "AppReport",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Generate a report for the given app.",
        "operationId": "c1.api.app.v1.AppReportActionService.GenerateReport",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.AppActionsServiceGenerateReportRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.AppActionsServiceGenerateReportResponse"
                }
              }
            },
            "description": "Empty response body. Status code indicates success."
          }
        },
        "summary": "Generate Report",
        "tags": [
          "App Reports"
        ],
        "x-speakeasy-group": "AppReportAction",
        "x-speakeasy-name-override": "GenerateReport"
      }
    },
    "/api/v1/apps/{app_id}/resource_types": {
      "get": {
        "description": "List app resource types.",
        "operationId": "c1.api.app.v1.AppResourceTypeService.List",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.AppResourceTypeServiceListResponse"
                }
              }
            },
            "description": "The AppResourceTypeServiceListResponse message contains a list of results and a nextPageToken if applicable."
          }
        },
        "summary": "List",
        "tags": [
          "App Resource Type"
        ],
        "x-speakeasy-group": "AppResourceType",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Create a manually managed resource type that classifies resources within an app.",
        "operationId": "c1.api.app.v1.AppResourceTypeService.CreateManuallyManagedResourceType",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app to create the resource type under.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.CreateManuallyManagedResourceTypeRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.CreateManuallyManagedResourceTypeResponse"
                }
              }
            },
            "description": "The response message for creating a manually managed resource type."
          }
        },
        "summary": "Create Manually Managed Resource Type",
        "tags": [
          "App Resource Type"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "App Resource Type#create"
        },
        "x-speakeasy-group": "AppResourceType",
        "x-speakeasy-name-override": "CreateManuallyManagedResourceType"
      }
    },
    "/api/v1/apps/{app_id}/resource_types/{app_resource_type_id}/resources": {
      "get": {
        "description": "List app resources for a given app and optionally filter by resource type.",
        "operationId": "c1.api.app.v1.AppResourceService.List",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app to list resources for.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_resource_type_id",
            "required": true,
            "schema": {
              "description": "Optional resource type ID to filter results by. If empty, resources of all types are returned.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The maximum number of results to return per page.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The token for fetching the next page of results.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.AppResourceServiceListResponse"
                }
              }
            },
            "description": "The AppResourceServiceListResponse message contains a list of results and a nextPageToken if applicable."
          }
        },
        "summary": "List",
        "tags": [
          "App Resource"
        ],
        "x-speakeasy-group": "AppResource",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Create a manually managed app resource tracked directly by ConductorOne under an existing resource type.",
        "operationId": "c1.api.app.v1.AppResourceService.CreateManuallyManagedAppResource",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app to create the resource under.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_resource_type_id",
            "required": true,
            "schema": {
              "description": "The resource type ID that classifies this resource.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.CreateManuallyManagedAppResourceRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.CreateManuallyManagedAppResourceResponse"
                }
              }
            },
            "description": "The response message for creating a manually managed app resource."
          }
        },
        "summary": "Create Manually Managed App Resource",
        "tags": [
          "App Resource"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "App Resource#create"
        },
        "x-speakeasy-group": "AppResource",
        "x-speakeasy-name-override": "CreateManuallyManagedAppResource"
      }
    },
    "/api/v1/apps/{app_id}/resource_types/{app_resource_type_id}/resources/{id}": {
      "delete": {
        "description": "Delete a manually managed app resource and its associated entitlements from an app.",
        "operationId": "c1.api.app.v1.AppResourceService.DeleteManuallyManagedAppResource",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app that owns the resource.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_resource_type_id",
            "required": true,
            "schema": {
              "description": "The ID of the resource type that classifies the resource.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the app resource to delete.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.DeleteManuallyManagedAppResourceRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.DeleteManuallyManagedAppResourceResponse"
                }
              }
            },
            "description": "The empty response message for deleting a manually managed app resource."
          }
        },
        "summary": "Delete Manually Managed App Resource",
        "tags": [
          "App Resource"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "App Resource#delete"
        },
        "x-speakeasy-group": "AppResource",
        "x-speakeasy-name-override": "DeleteManuallyManagedAppResource"
      },
      "get": {
        "description": "Retrieve a single app resource by its app, resource type, and resource ID.",
        "operationId": "c1.api.app.v1.AppResourceService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app that owns the resource.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_resource_type_id",
            "required": true,
            "schema": {
              "description": "The ID of the resource type that classifies this resource.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The unique ID of the app resource to retrieve.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.AppResourceServiceGetResponse"
                }
              }
            },
            "description": "The app resource service get response contains the app resource view and array of expanded items indicated by the request's expand mask."
          }
        },
        "summary": "Get",
        "tags": [
          "App Resource"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "App Resource#read",
          "terraform-resource": "App Resource#read"
        },
        "x-speakeasy-group": "AppResource",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update an app resource's fields. Only the fields specified in the update mask are modified.",
        "operationId": "c1.api.app.v1.AppResourceService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The app that this resource belongs to.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_resource_type_id",
            "required": true,
            "schema": {
              "description": "The resource type that this resource is.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id of the resource.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.AppResourceServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.AppResourceServiceUpdateResponse"
                }
              }
            },
            "description": "The response message for updating an app resource."
          }
        },
        "summary": "Update",
        "tags": [
          "App Resource"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "App Resource#update"
        },
        "x-speakeasy-group": "AppResource",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/apps/{app_id}/resource_types/{id}": {
      "delete": {
        "description": "Delete a manually managed resource type and all its associated resources from an app.",
        "operationId": "c1.api.app.v1.AppResourceTypeService.DeleteManuallyManagedResourceType",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app that owns the resource type.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the resource type to delete.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.DeleteManuallyManagedResourceTypeRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.DeleteManuallyManagedResourceTypeResponse"
                }
              }
            },
            "description": "The empty response message for deleting a manually managed resource type."
          }
        },
        "summary": "Delete Manually Managed Resource Type",
        "tags": [
          "App Resource Type"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "App Resource Type#delete"
        },
        "x-speakeasy-group": "AppResourceType",
        "x-speakeasy-name-override": "DeleteManuallyManagedResourceType"
      },
      "get": {
        "description": "Get an app resource type.",
        "operationId": "c1.api.app.v1.AppResourceTypeService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.AppResourceTypeServiceGetResponse"
                }
              }
            },
            "description": "The AppResourceTypeServiceGetResponse contains an expanded array containing the expanded values indicated by the expand mask\n in the request and an app resource type view containing the resource type and JSONPATHs indicating which objects are where in the expand mask."
          }
        },
        "summary": "Get",
        "tags": [
          "App Resource Type"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": null,
          "terraform-resource": "App Resource Type#read"
        },
        "x-speakeasy-group": "AppResourceType",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update a manually managed resource type's fields. Only the fields specified in the update mask are modified.",
        "operationId": "c1.api.app.v1.AppResourceTypeService.UpdateManuallyManagedResourceType",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app that is associated with the app resource type",
              "readOnly": true,
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The unique ID for the app resource type.",
              "readOnly": true,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.UpdateManuallyManagedResourceTypeRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.UpdateManuallyManagedResourceTypeResponse"
                }
              }
            },
            "description": "The response message for updating a manually managed resource type."
          }
        },
        "summary": "Update Manually Managed Resource Type",
        "tags": [
          "App Resource Type"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "App Resource Type#update"
        },
        "x-speakeasy-group": "AppResourceType",
        "x-speakeasy-name-override": "UpdateManuallyManagedResourceType"
      }
    },
    "/api/v1/apps/{app_id}/resource_types/{resource_type_id}/managed_state_bindings": {
      "get": {
        "description": "List the managed states of applications discovered by a connector.",
        "operationId": "c1.api.app.v1.AppManagedStateService.List",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "ID of the application that owns the connector.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource_type_id",
            "required": true,
            "schema": {
              "description": "ID of the resource type used for discovered applications.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Maximum number of results to return. The maximum is 100.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Pagination token from a previous response.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.ListAppManagedStateBindingsResponse"
                }
              }
            },
            "description": "ListAppManagedStateBindingsResponse contains one page of discovered application managed states."
          }
        },
        "summary": "List",
        "tags": [
          "Application Managed State"
        ],
        "x-speakeasy-group": "AppManagedState",
        "x-speakeasy-name-override": "List"
      }
    },
    "/api/v1/apps/{app_id}/resource_types/{resource_type_id}/managed_state_bindings/{resource_id}": {
      "get": {
        "description": "Get the managed state of a discovered application.",
        "operationId": "c1.api.app.v1.AppManagedStateService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "ID of the application that owns the connector.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource_type_id",
            "required": true,
            "schema": {
              "description": "ID of the resource type used for discovered applications.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource_id",
            "required": true,
            "schema": {
              "description": "Resource ID of the discovered application.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.GetAppManagedStateBindingResponse"
                }
              }
            },
            "description": "GetAppManagedStateBindingResponse contains the managed state of a discovered application."
          }
        },
        "summary": "Get",
        "tags": [
          "Application Managed State"
        ],
        "x-speakeasy-group": "AppManagedState",
        "x-speakeasy-name-override": "Get"
      }
    },
    "/api/v1/apps/{app_id}/resource_types/{resource_type_id}/managed_state_bindings/{resource_id}/promote": {
      "post": {
        "description": "Promote an unmanaged application into a managed application.\n Returns AlreadyExists when the application is already managed. The new application inherits source owners when user_ids is omitted.\n Concurrent promotion requests are not supported.",
        "operationId": "c1.api.app.v1.AppManagedStateService.Promote",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "ID of the application that owns the connector.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource_type_id",
            "required": true,
            "schema": {
              "description": "ID of the resource type used for discovered applications.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource_id",
            "required": true,
            "schema": {
              "description": "Resource ID of the unmanaged application.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.PromoteAppManagedStateBindingRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.GetAppManagedStateBindingResponse"
                }
              }
            },
            "description": "GetAppManagedStateBindingResponse contains the managed state of a discovered application."
          }
        },
        "summary": "Promote",
        "tags": [
          "Application Managed State"
        ],
        "x-speakeasy-group": "AppManagedState",
        "x-speakeasy-name-override": "Promote"
      }
    },
    "/api/v1/apps/{app_id}/resource_types/{resource_type_id}/resource/{resource_id}/ownerids": {
      "delete": {
        "description": "Delete deletes the owners from a given app resource.",
        "operationId": "c1.api.app.v1.AppResourceOwners.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource_type_id",
            "required": true,
            "schema": {
              "description": "The resourceTypeId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource_id",
            "required": true,
            "schema": {
              "description": "The resourceId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.DeleteAppResourceOwnersRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.DeleteAppResourceOwnersResponse"
                }
              }
            },
            "description": "the empty response message for deleting app resource owners."
          }
        },
        "summary": "Delete",
        "tags": [
          "App Resource Owner"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "App_Resource_Owner#delete"
        },
        "x-speakeasy-group": "AppResourceOwners",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "ListOwnerIDs lists owner IDs for a given app resource.",
        "operationId": "c1.api.app.v1.AppResourceOwners.ListOwnerIDs",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource_type_id",
            "required": true,
            "schema": {
              "description": "The resourceTypeId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource_id",
            "required": true,
            "schema": {
              "description": "The resourceId field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.ListAppResourceOwnerIDsResponse"
                }
              }
            },
            "description": "The response message for listing app resource owners IDs."
          }
        },
        "summary": "List Owner I Ds",
        "tags": [
          "App Resource Owner"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": null,
          "terraform-resource": "App_Resource_Owner#read"
        },
        "x-speakeasy-group": "AppResourceOwners",
        "x-speakeasy-name-override": "ListOwnerIDs"
      }
    },
    "/api/v1/apps/{app_id}/resource_types/{resource_type_id}/resource/{resource_id}/owners": {
      "delete": {
        "description": "Remove a user from the owners of an app resource.",
        "operationId": "c1.api.app.v1.AppResourceOwners.Remove",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app that owns the resource.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource_type_id",
            "required": true,
            "schema": {
              "description": "The ID of the resource type that classifies the resource.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource_id",
            "required": true,
            "schema": {
              "description": "The ID of the app resource to remove an owner from.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.RemoveAppResourceOwnerRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.RemoveAppResourceOwnerResponse"
                }
              }
            },
            "description": "The empty response message for removing an owner from an app resource."
          }
        },
        "summary": "Remove",
        "tags": [
          "App Resource Owner"
        ],
        "x-speakeasy-group": "AppResourceOwners",
        "x-speakeasy-name-override": "Remove"
      },
      "get": {
        "description": "List all owners of an app resource.",
        "operationId": "c1.api.app.v1.AppResourceOwners.List",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource_type_id",
            "required": true,
            "schema": {
              "description": "The resourceTypeId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource_id",
            "required": true,
            "schema": {
              "description": "The resourceId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.ListAppResourceOwnersResponse"
                }
              }
            },
            "description": "The ListAppResourceOwnersResponse message contains a list of results and a nextPageToken if applicable"
          }
        },
        "summary": "List",
        "tags": [
          "App Resource Owner"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "AppResourceOwners#read",
          "terraform-resource": null
        },
        "x-speakeasy-group": "AppResourceOwners",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Add a user as an owner of an app resource.",
        "operationId": "c1.api.app.v1.AppResourceOwners.Add",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app that owns the resource.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource_type_id",
            "required": true,
            "schema": {
              "description": "The ID of the resource type that classifies the resource.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource_id",
            "required": true,
            "schema": {
              "description": "The ID of the app resource to add an owner to.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.AddAppResourceOwnerRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.AddAppResourceOwnerResponse"
                }
              }
            },
            "description": "The empty response message for adding an owner to an app resource."
          }
        },
        "summary": "Add",
        "tags": [
          "App Resource Owner"
        ],
        "x-speakeasy-group": "AppResourceOwners",
        "x-speakeasy-name-override": "Add"
      },
      "put": {
        "description": "Sets the owners for a given app resource to the specified list of users.",
        "operationId": "c1.api.app.v1.AppResourceOwners.Set",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource_type_id",
            "required": true,
            "schema": {
              "description": "The resourceTypeId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource_id",
            "required": true,
            "schema": {
              "description": "The resourceId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.SetAppResourceOwnersRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.SetAppResourceOwnersResponse"
                }
              }
            },
            "description": "The empty response message for setting the app resource owners."
          }
        },
        "summary": "Set",
        "tags": [
          "App Resource Owner"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "App_Resource_Owner#create"
        },
        "x-speakeasy-group": "AppResourceOwners",
        "x-speakeasy-name-override": "Set"
      }
    },
    "/api/v1/apps/{app_id}/sso/applications": {
      "get": {
        "description": "List returns the SSO applications configured for an application, one page\n at a time.",
        "operationId": "c1.api.sso.v1.SSOApplicationService.List",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The application in your catalog to list SSO applications for.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Maximum number of results to return per page.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Pagination token from a previous response.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationServiceListResponse"
                }
              }
            },
            "description": "SSOApplicationServiceListResponse returns a page of SSO applications."
          }
        },
        "summary": "List",
        "tags": [
          "SSO"
        ],
        "x-speakeasy-group": "SSOApplication",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Create an SSO application for an application in your catalog. The\n entitlement that governs sign-in is created alongside it. OIDC creation\n also server-mints the required initial client and returns its secret once\n when the client is confidential. SAML creation has no OAuth-client step.",
        "operationId": "c1.api.sso.v1.SSOApplicationService.Create",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The application in your catalog to attach this sign-in configuration to.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationServiceCreateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationServiceCreateResponse"
                }
              }
            },
            "description": "SSOApplicationServiceCreateResponse returns the created SSO application."
          }
        },
        "summary": "Create",
        "tags": [
          "SSO"
        ],
        "x-speakeasy-group": "SSOApplication",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/apps/{app_id}/sso/applications/{id}": {
      "delete": {
        "description": "Delete retires an SSO application and its sign-in entitlement, stopping\n OIDC and SAML sign-in through it. OAuth clients and locator bindings remain\n so administrators can list and delete retained clients; the bindings are\n inert while their parent application is deleted.",
        "operationId": "c1.api.sso.v1.SSOApplicationService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The application in your catalog that owns the SSO application.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Unique identifier for the SSO application.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationServiceDeleteResponse"
                }
              }
            },
            "description": "SSOApplicationServiceDeleteResponse confirms deletion."
          }
        },
        "summary": "Delete",
        "tags": [
          "SSO"
        ],
        "x-speakeasy-group": "SSOApplication",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get returns a single SSO application by app_id + id.",
        "operationId": "c1.api.sso.v1.SSOApplicationService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The application in your catalog that owns the SSO application.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Unique identifier for the SSO application.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationServiceGetResponse"
                }
              }
            },
            "description": "SSOApplicationServiceGetResponse returns a single SSO application."
          }
        },
        "summary": "Get",
        "tags": [
          "SSO"
        ],
        "x-speakeasy-group": "SSOApplication",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update changes an SSO application's mutable display, lifetime, enablement,\n OIDC claim/signing settings, or SAML endpoint/signing/encryption settings.\n Protocol, subject type, sector, SAML entity ID, and NameID format remain\n immutable; requests that would change them are rejected.",
        "operationId": "c1.api.sso.v1.SSOApplicationService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The application in your catalog that owns this sign-in configuration. Its\n owners, entitlements, and access reviews govern who may sign in.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Unique identifier for this SSO application.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationServiceUpdateResponse"
                }
              }
            },
            "description": "SSOApplicationServiceUpdateResponse returns the updated SSO application."
          }
        },
        "summary": "Update",
        "tags": [
          "SSO"
        ],
        "x-speakeasy-group": "SSOApplication",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/apps/{app_id}/sso/applications/{id}/clients": {
      "get": {
        "description": "ListClients returns the App-owned OAuth clients minted for an OIDC\n application, one page at a time. Results hydrate from the PostgreSQL\n projection, so a newly created client may appear after a brief delay.",
        "operationId": "c1.api.sso.v1.SSOApplicationService.ListClients",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "Application that owns the SSO application.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "SSO application whose clients to list.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Maximum number of clients to return.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Pagination token from a previous response.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationServiceListClientsResponse"
                }
              }
            },
            "description": "SSOApplicationServiceListClientsResponse contains a page of App-owned OAuth\n clients."
          }
        },
        "summary": "List Clients",
        "tags": [
          "SSO"
        ],
        "x-speakeasy-group": "SSOApplication",
        "x-speakeasy-name-override": "ListClients"
      },
      "post": {
        "description": "CreateClient mints an additional App-owned OAuth client for an OIDC\n application. C1 generates the client ID and any confidential-client secret.",
        "operationId": "c1.api.sso.v1.SSOApplicationService.CreateClient",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "Application that owns the SSO application.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "SSO application that will govern this client.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationServiceCreateClientRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationServiceCreateClientResponse"
                }
              }
            },
            "description": "SSOApplicationServiceCreateClientResponse contains the generated client and\n its one-time secret, when applicable."
          }
        },
        "summary": "Create Client",
        "tags": [
          "SSO"
        ],
        "x-speakeasy-group": "SSOApplication",
        "x-speakeasy-name-override": "CreateClient"
      }
    },
    "/api/v1/apps/{app_id}/sso/applications/{id}/clients/delete": {
      "post": {
        "description": "DeleteClient deletes one App-owned OAuth client and its sign-in binding.",
        "operationId": "c1.api.sso.v1.SSOApplicationService.DeleteClient",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "Application that owns the client.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "SSO application that governs the client.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationServiceDeleteClientRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationServiceDeleteClientResponse"
                }
              }
            },
            "description": "SSOApplicationServiceDeleteClientResponse confirms deletion."
          }
        },
        "summary": "Delete Client",
        "tags": [
          "SSO"
        ],
        "x-speakeasy-group": "SSOApplication",
        "x-speakeasy-name-override": "DeleteClient"
      }
    },
    "/api/v1/apps/{app_id}/sso/applications/{id}/clients/rotate-secret": {
      "post": {
        "description": "RotateClientSecret replaces a confidential App-owned client's secret and\n returns the new value once. The old secret stops working immediately; for\n an overlap window, create a second client, migrate, then delete the first.\n Public clients have no secret to rotate.",
        "operationId": "c1.api.sso.v1.SSOApplicationService.RotateClientSecret",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "Application that owns the client.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "SSO application that governs the client.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationServiceRotateClientSecretRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationServiceRotateClientSecretResponse"
                }
              }
            },
            "description": "SSOApplicationServiceRotateClientSecretResponse contains the replacement\n secret. The value cannot be retrieved again."
          }
        },
        "summary": "Rotate Client Secret",
        "tags": [
          "SSO"
        ],
        "x-speakeasy-group": "SSOApplication",
        "x-speakeasy-name-override": "RotateClientSecret"
      }
    },
    "/api/v1/apps/{app_id}/sso/applications/{id}/clients/update": {
      "post": {
        "description": "UpdateClient replaces mutable client configuration. The authentication\n method and generated ID are immutable; private-key JWKS may rotate and a\n legacy PKCE policy may tighten to required.",
        "operationId": "c1.api.sso.v1.SSOApplicationService.UpdateClient",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "Application that owns the client.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "SSO application that governs the client.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationServiceUpdateClientRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationServiceUpdateClientResponse"
                }
              }
            },
            "description": "SSOApplicationServiceUpdateClientResponse contains the updated client."
          }
        },
        "summary": "Update Client",
        "tags": [
          "SSO"
        ],
        "x-speakeasy-group": "SSOApplication",
        "x-speakeasy-name-override": "UpdateClient"
      }
    },
    "/api/v1/apps/{app_id}/sso/applications/{id}/history": {
      "get": {
        "description": "ListHistory returns the change history (newest first) for a single SSO\n application — each entry is a snapshot plus who/when metadata.",
        "operationId": "c1.api.sso.v1.SSOApplicationService.ListHistory",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The application in your catalog that owns the SSO application.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Unique identifier for the SSO application.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Page size (max 200).",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Page token for pagination.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationServiceListHistoryResponse"
                }
              }
            },
            "description": "SSOApplicationServiceListHistoryResponse returns SSO application history\n entries."
          }
        },
        "summary": "List History",
        "tags": [
          "SSO"
        ],
        "x-speakeasy-group": "SSOApplication",
        "x-speakeasy-name-override": "ListHistory"
      }
    },
    "/api/v1/apps/{app_id}/sso/applications/{id}/subjects/delete": {
      "post": {
        "description": "Deletes one bounded batch of compatibility bindings. Imported and\n user-attribute-derived bindings are recoverable so corrected source data\n can be applied on the next import or sign-in. Correct attribute source data\n before deleting its binding so a concurrent sign-in cannot recreate the\n stale value.",
        "operationId": "c1.api.sso.v1.SSOApplicationService.BatchDeleteSubjectCompatibility",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationServiceBatchDeleteSubjectCompatibilityRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationServiceBatchDeleteSubjectCompatibilityResponse"
                }
              }
            },
            "description": "SSOApplicationServiceBatchDeleteSubjectCompatibilityResponse reports bounded\n recovery progress."
          }
        },
        "summary": "Batch Delete Subject Compatibility",
        "tags": [
          "SSO"
        ],
        "x-speakeasy-group": "SSOApplication",
        "x-speakeasy-name-override": "BatchDeleteSubjectCompatibility"
      }
    },
    "/api/v1/apps/{app_id}/sso/applications/{id}/subjects/import": {
      "post": {
        "description": "Validates or imports one bounded batch of compatibility-subject bindings.\n Clients parse source files and submit at most 50 rows per request so they\n can expose progress and retry from a known boundary.",
        "operationId": "c1.api.sso.v1.SSOApplicationService.BatchImportSubjectCompatibility",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The application in your catalog that owns the SSO application.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Unique identifier for the SSO application.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationServiceBatchImportSubjectCompatibilityRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationServiceBatchImportSubjectCompatibilityResponse"
                }
              }
            },
            "description": "SSOApplicationServiceBatchImportSubjectCompatibilityResponse summarizes one\n bounded validation or apply batch."
          }
        },
        "summary": "Batch Import Subject Compatibility",
        "tags": [
          "SSO"
        ],
        "x-speakeasy-group": "SSOApplication",
        "x-speakeasy-name-override": "BatchImportSubjectCompatibility"
      }
    },
    "/api/v1/apps/{app_id}/usage_controls": {
      "get": {
        "description": "Get usage controls, as an AppUsageControls object which describes some peripheral configuration, for an app.",
        "operationId": "c1.api.app.v1.AppUsageControlsService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.GetAppUsageControlsResponse"
                }
              }
            },
            "description": "The GetAppUsageControlsResponse message contains the retrieved AppUsageControls object."
          }
        },
        "summary": "Get",
        "tags": [
          "App Usage Controls"
        ],
        "x-speakeasy-group": "AppUsageControls",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update usage controls for an app.",
        "operationId": "c1.api.app.v1.AppUsageControlsService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The app that this object belongs to.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.UpdateAppUsageControlsRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.UpdateAppUsageControlsResponse"
                }
              }
            },
            "description": "The UpdateAppUsageControlsResponse message contains the updated AppUsageControls object."
          }
        },
        "summary": "Update",
        "tags": [
          "App Usage Controls"
        ],
        "x-speakeasy-group": "AppUsageControls",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/apps/{app_id}/users/{user_id}/app_users": {
      "get": {
        "description": "List app user accounts within a specific app that are correlated to a given C1 user.",
        "operationId": "c1.api.app.v1.AppUserService.ListAppUsersForUser",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app to list users for.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The C1 user ID to filter app users by identity correlation.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The maximum number of results to return per page.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The token for fetching the next page of results.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.AppUsersForUserServiceListResponse"
                }
              }
            },
            "description": "The response message for listing app users correlated to a specific C1 user."
          }
        },
        "summary": "List App Users For User",
        "tags": [
          "AppUsers"
        ],
        "x-speakeasy-group": "AppUser",
        "x-speakeasy-name-override": "ListAppUsersForUser"
      }
    },
    "/api/v1/apps/{app_id}/xaa/access_profiles": {
      "get": {
        "description": "List the access profiles defined for an application, one page at a time.",
        "operationId": "c1.api.cross_app_access.v1.XAAAccessProfileService.List",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The application to list access profiles for.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Page size (max 100).",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Page token for pagination.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAAccessProfileServiceListResponse"
                }
              }
            },
            "description": "XAAAccessProfileServiceListResponse returns a page of access profiles."
          }
        },
        "summary": "List",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAAAccessProfile",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Create an access profile under a resource server. The backend also\n provisions a backing AppEntitlement that users request to be granted the\n profile's scopes.",
        "operationId": "c1.api.cross_app_access.v1.XAAAccessProfileService.Create",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The application that owns the resource server.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAAccessProfileServiceCreateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAAccessProfileServiceCreateResponse"
                }
              }
            },
            "description": "XAAAccessProfileServiceCreateResponse returns the created access profile."
          }
        },
        "summary": "Create",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAAAccessProfile",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/apps/{app_id}/xaa/access_profiles/by_app_entitlement_id/{app_entitlement_id}": {
      "get": {
        "description": "GetByAppEntitlementId looks up the access profile linked to an\n entitlement, by app_id + app_entitlement_id. Used by the request catalog.",
        "operationId": "c1.api.cross_app_access.v1.XAAAccessProfileService.GetByAppEntitlementId",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The application that owns the resource server.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_id",
            "required": true,
            "schema": {
              "description": "AppEntitlement ID to look up.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAAccessProfileServiceGetByAppEntitlementIdResponse"
                }
              }
            },
            "description": "XAAAccessProfileServiceGetByAppEntitlementIdResponse returns the matched\n profile."
          }
        },
        "summary": "Get By App Entitlement Id",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAAAccessProfile",
        "x-speakeasy-name-override": "GetByAppEntitlementId"
      }
    },
    "/api/v1/apps/{app_id}/xaa/access_profiles/{access_profile_id}/scope_bindings": {
      "get": {
        "description": "List the scopes bound to an access profile, one page at a time.",
        "operationId": "c1.api.cross_app_access.v1.XAAAccessProfileScopeBindingService.List",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The application that owns the resource server.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "access_profile_id",
            "required": true,
            "schema": {
              "description": "The access profile to list bindings for.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Page size (max 100).",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Page token for pagination.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAAccessProfileScopeBindingServiceListResponse"
                }
              }
            },
            "description": "XAAAccessProfileScopeBindingServiceListResponse returns scope bindings."
          }
        },
        "summary": "List",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAAAccessProfileScopeBinding",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "CreateBindings binds one or more scopes (xaa_scope_ids) to an access\n profile. Every scope must belong to the profile's resource server.",
        "operationId": "c1.api.cross_app_access.v1.XAAAccessProfileScopeBindingService.CreateBindings",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The application that owns the resource server.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "access_profile_id",
            "required": true,
            "schema": {
              "description": "The access profile to bind scopes to.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAAccessProfileScopeBindingServiceCreateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAAccessProfileScopeBindingServiceCreateResponse"
                }
              }
            },
            "description": "XAAAccessProfileScopeBindingServiceCreateResponse returns created bindings."
          }
        },
        "summary": "Create Bindings",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAAAccessProfileScopeBinding",
        "x-speakeasy-name-override": "CreateBindings"
      }
    },
    "/api/v1/apps/{app_id}/xaa/access_profiles/{access_profile_id}/scope_bindings/delete": {
      "post": {
        "description": "DeleteBindings unbinds one or more scopes (xaa_scope_ids) from an access\n profile. Uses a POST .../delete action route because the scope IDs travel\n in the request body, which HTTP DELETE does not reliably support.",
        "operationId": "c1.api.cross_app_access.v1.XAAAccessProfileScopeBindingService.DeleteBindings",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The application that owns the resource server.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "access_profile_id",
            "required": true,
            "schema": {
              "description": "The access profile to unbind scopes from.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAAccessProfileScopeBindingServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAAccessProfileScopeBindingServiceDeleteResponse"
                }
              }
            },
            "description": "XAAAccessProfileScopeBindingServiceDeleteResponse confirms deletion."
          }
        },
        "summary": "Delete Bindings",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAAAccessProfileScopeBinding",
        "x-speakeasy-name-override": "DeleteBindings"
      }
    },
    "/api/v1/apps/{app_id}/xaa/access_profiles/{id}": {
      "delete": {
        "description": "Delete an access profile (soft delete). Cascades to its scope bindings and\n backing entitlement; outstanding grants end with the entitlement.",
        "operationId": "c1.api.cross_app_access.v1.XAAAccessProfileService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The application that owns the resource server.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Unique identifier for the access profile.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAAccessProfileServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAAccessProfileServiceDeleteResponse"
                }
              }
            },
            "description": "XAAAccessProfileServiceDeleteResponse confirms deletion."
          }
        },
        "summary": "Delete",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAAAccessProfile",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get an access profile by app_id + id.",
        "operationId": "c1.api.cross_app_access.v1.XAAAccessProfileService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The application that owns the resource server.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Unique identifier for the access profile.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAAccessProfileServiceGetResponse"
                }
              }
            },
            "description": "XAAAccessProfileServiceGetResponse returns a single access profile."
          }
        },
        "summary": "Get",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAAAccessProfile",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update an access profile's editable fields via update_mask. Editable\n paths: display_name, description. The profile must include id and app_id.",
        "operationId": "c1.api.cross_app_access.v1.XAAAccessProfileService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The application that owns the resource server.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Unique identifier for this access profile.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAAccessProfileServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAAccessProfileServiceUpdateResponse"
                }
              }
            },
            "description": "XAAAccessProfileServiceUpdateResponse returns the updated access profile."
          }
        },
        "summary": "Update",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAAAccessProfile",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/apps/{app_id}/xaa/access_profiles/{id}/history": {
      "get": {
        "description": "ListHistory returns the change history (newest first) for a single access\n profile — each entry is a snapshot plus who/when metadata.",
        "operationId": "c1.api.cross_app_access.v1.XAAAccessProfileService.ListHistory",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The application that owns the resource server.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Unique identifier for the access profile.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Page size (max 200).",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Page token for pagination.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAAccessProfileServiceListHistoryResponse"
                }
              }
            },
            "description": "XAAAccessProfileServiceListHistoryResponse returns access profile history\n entries."
          }
        },
        "summary": "List History",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAAAccessProfile",
        "x-speakeasy-name-override": "ListHistory"
      }
    },
    "/api/v1/apps/{app_id}/xaa/resource_servers": {
      "get": {
        "description": "List the resource servers registered for an application, one page at a time.",
        "operationId": "c1.api.cross_app_access.v1.XAAResourceServerService.List",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The application to list resource servers for.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Page size (max 100).",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Page token for pagination.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAResourceServerServiceListResponse"
                }
              }
            },
            "description": "XAAResourceServerServiceListResponse returns a page of resource servers."
          }
        },
        "summary": "List",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAAResourceServer",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Register a resource server (a third-party authorization server) as a\n permitted cross-app-access audience for an application. The audience must\n be unique within the application and must not equal your own tenant's\n issuer — C1 cannot be both the granting IdP and the resource server in the\n same flow.",
        "operationId": "c1.api.cross_app_access.v1.XAAResourceServerService.Create",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The application this resource server fronts.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAResourceServerServiceCreateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAResourceServerServiceCreateResponse"
                }
              }
            },
            "description": "XAAResourceServerServiceCreateResponse returns the registered resource server."
          }
        },
        "summary": "Create",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAAResourceServer",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/apps/{app_id}/xaa/resource_servers/{id}": {
      "delete": {
        "description": "Delete a resource server (soft delete). Cascades to its scopes, access\n profiles, and client audience mappings.",
        "operationId": "c1.api.cross_app_access.v1.XAAResourceServerService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The application this resource server fronts.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Unique identifier for the resource server.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAResourceServerServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAResourceServerServiceDeleteResponse"
                }
              }
            },
            "description": "XAAResourceServerServiceDeleteResponse confirms deletion."
          }
        },
        "summary": "Delete",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAAResourceServer",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get a registered resource server by app_id + id.",
        "operationId": "c1.api.cross_app_access.v1.XAAResourceServerService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The application this resource server fronts.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Unique identifier for the resource server.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAResourceServerServiceGetResponse"
                }
              }
            },
            "description": "XAAResourceServerServiceGetResponse returns a single resource server."
          }
        },
        "summary": "Get",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAAResourceServer",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update a resource server's editable fields via update_mask. The audience\n is immutable (delete and recreate to change it); supplying a different\n audience is rejected. Editable paths: display_name, description,\n resource_uris, max_grant_lifetime, signing_algorithm,\n require_proof_of_possession, modify_claims_hook, disabled. sector_id is\n immutable once set (delete and recreate to change it).",
        "operationId": "c1.api.cross_app_access.v1.XAAResourceServerService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The application this resource server fronts.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Unique identifier for this resource server.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAResourceServerServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAResourceServerServiceUpdateResponse"
                }
              }
            },
            "description": "XAAResourceServerServiceUpdateResponse returns the updated resource server."
          }
        },
        "summary": "Update",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAAResourceServer",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/apps/{app_id}/xaa/resource_servers/{id}/history": {
      "get": {
        "description": "ListHistory returns the change history (newest first) for a single\n resource server — each entry is a snapshot plus who/when metadata.",
        "operationId": "c1.api.cross_app_access.v1.XAAResourceServerService.ListHistory",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The application this resource server fronts.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Unique identifier for the resource server.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Page size (max 200).",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Page token for pagination.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAResourceServerServiceListHistoryResponse"
                }
              }
            },
            "description": "XAAResourceServerServiceListHistoryResponse returns resource server history\n entries."
          }
        },
        "summary": "List History",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAAResourceServer",
        "x-speakeasy-name-override": "ListHistory"
      }
    },
    "/api/v1/apps/{app_id}/xaa/resource_servers/{id}/resync_scopes": {
      "post": {
        "description": "Start another scope discovery run for a resource server. The run imports\n newly advertised scopes as PENDING_REVIEW; its outcome appears in Get's\n scope_discovery_status. A request while a run is in progress queues one\n more run.",
        "operationId": "c1.api.cross_app_access.v1.XAAResourceServerService.ResyncScopes",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The application this resource server fronts.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Unique identifier for the resource server.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAResourceServerServiceResyncScopesRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAResourceServerServiceResyncScopesResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Resync Scopes",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAAResourceServer",
        "x-speakeasy-name-override": "ResyncScopes"
      }
    },
    "/api/v1/apps/{app_id}/xaa/scopes": {
      "get": {
        "description": "List the scopes defined for an application, one page at a time. To filter\n by resource server, state, or classification, use Search.",
        "operationId": "c1.api.cross_app_access.v1.XAAScopeService.List",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The application to list scopes for.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Page size (max 100).",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Page token for pagination.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAScopeServiceListResponse"
                }
              }
            },
            "description": "XAAScopeServiceListResponse returns a page of scopes."
          }
        },
        "summary": "List",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAAScope",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Declare a scope under a resource server. The scope value is the literal\n OAuth scope string and is immutable after creation.",
        "operationId": "c1.api.cross_app_access.v1.XAAScopeService.Create",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The application that owns the resource server.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAScopeServiceCreateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAScopeServiceCreateResponse"
                }
              }
            },
            "description": "XAAScopeServiceCreateResponse returns the created scope."
          }
        },
        "summary": "Create",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAAScope",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/apps/{app_id}/xaa/scopes/{id}": {
      "delete": {
        "description": "Delete a scope (soft delete). Cascades to its backing entitlement and to\n any access-profile bindings that reference it.",
        "operationId": "c1.api.cross_app_access.v1.XAAScopeService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The application that owns the resource server.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Unique identifier for the scope.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAScopeServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAScopeServiceDeleteResponse"
                }
              }
            },
            "description": "XAAScopeServiceDeleteResponse confirms deletion."
          }
        },
        "summary": "Delete",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAAScope",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get a scope by app_id + id.",
        "operationId": "c1.api.cross_app_access.v1.XAAScopeService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The application that owns the resource server.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Unique identifier for the scope.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAScopeServiceGetResponse"
                }
              }
            },
            "description": "XAAScopeServiceGetResponse returns a single scope."
          }
        },
        "summary": "Get",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAAScope",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update a scope's editable fields via update_mask. This is how a scope is\n approved: set state to ENABLED to make it mintable, or DISABLED to block\n it. The scope value is immutable. Editable paths: display_name,\n description, state, classification.",
        "operationId": "c1.api.cross_app_access.v1.XAAScopeService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The application that owns the resource server.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Unique identifier for this scope.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAScopeServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAScopeServiceUpdateResponse"
                }
              }
            },
            "description": "XAAScopeServiceUpdateResponse returns the updated scope."
          }
        },
        "summary": "Update",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAAScope",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/apps/{app_id}/xaa/scopes/{id}/history": {
      "get": {
        "description": "ListHistory returns the change history (newest first) for a single scope —\n each entry is a snapshot plus who/when metadata.",
        "operationId": "c1.api.cross_app_access.v1.XAAScopeService.ListHistory",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The application this scope belongs to.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Unique identifier for the scope.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Page size (max 200).",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Page token for pagination.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAScopeServiceListHistoryResponse"
                }
              }
            },
            "description": "XAAScopeServiceListHistoryResponse returns scope history entries."
          }
        },
        "summary": "List History",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAAScope",
        "x-speakeasy-name-override": "ListHistory"
      }
    },
    "/api/v1/apps/{app_user_app_id}/app_users/{app_user_id}": {
      "post": {
        "description": "Update an app user by ID. Only the fields specified in the update mask are updated.\n Currently, only the appUserType, and identityUserId fields can be updated.",
        "operationId": "c1.api.app.v1.AppUserService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "app_user_app_id",
            "required": true,
            "schema": {
              "description": "The ID of the application.",
              "readOnly": true,
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_user_id",
            "required": true,
            "schema": {
              "description": "A unique idenditfier of the application user.",
              "readOnly": true,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.AppUserServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.AppUserServiceUpdateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update",
        "tags": [
          "AppUsers"
        ],
        "x-speakeasy-group": "AppUser",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/apps/{connector_app_id}/connectors/{connector_id}/delegated": {
      "post": {
        "description": "Update a delegated connector.",
        "operationId": "c1.api.app.v1.ConnectorService.UpdateDelegated",
        "parameters": [
          {
            "in": "path",
            "name": "connector_app_id",
            "required": true,
            "schema": {
              "description": "The id of the app the connector is associated with.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "The id of the connector.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.ConnectorServiceUpdateDelegatedRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.ConnectorServiceUpdateResponse"
                }
              }
            },
            "description": "ConnectorServiceUpdateResponse is the response returned by the update method."
          }
        },
        "summary": "Update Delegated",
        "tags": [
          "Connector"
        ],
        "x-speakeasy-group": "Connector",
        "x-speakeasy-name-override": "UpdateDelegated"
      }
    },
    "/api/v1/apps/{id}": {
      "delete": {
        "description": "Delete an app.",
        "operationId": "c1.api.app.v1.Apps.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.DeleteAppRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.DeleteAppResponse"
                }
              }
            },
            "description": "Empty response body. Status code indicates success."
          }
        },
        "summary": "Delete",
        "tags": [
          "App"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "App#delete"
        },
        "x-speakeasy-group": "Apps",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get an app by ID.",
        "operationId": "c1.api.app.v1.Apps.Get",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.GetAppResponse"
                }
              }
            },
            "description": "The GetAppResponse message contains the details of the requested app in the app field."
          }
        },
        "summary": "Get",
        "tags": [
          "App"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": null,
          "terraform-resource": "App#read"
        },
        "x-speakeasy-group": "Apps",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update an existing app.",
        "operationId": "c1.api.app.v1.Apps.Update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the app.",
              "readOnly": true,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.UpdateAppRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.UpdateAppResponse"
                }
              }
            },
            "description": "Returns the updated app's new values."
          }
        },
        "summary": "Update",
        "tags": [
          "App"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "App#update"
        },
        "x-speakeasy-group": "Apps",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/apps/{src_app_id}/{src_app_entitlement_id}/bindings/{dst_app_id}/{dst_app_entitlement_id}": {
      "delete": {
        "description": "Delete a proxy binding between a source and destination entitlement.",
        "operationId": "c1.api.app.v1.AppEntitlementsProxy.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "src_app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app that owns the source entitlement.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "src_app_entitlement_id",
            "required": true,
            "schema": {
              "description": "The ID of the source (parent) entitlement.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "dst_app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app that owns the destination entitlement.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "dst_app_entitlement_id",
            "required": true,
            "schema": {
              "description": "The ID of the destination (child) entitlement.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.DeleteAppEntitlementProxyRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.DeleteAppEntitlementProxyResponse"
                }
              }
            },
            "description": "The empty response message for deleting an entitlement proxy binding."
          }
        },
        "summary": "Delete",
        "tags": [
          "App Entitlement Proxy Binding"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "App Entitlement Proxy Binding#delete"
        },
        "x-speakeasy-group": "AppEntitlementsProxy",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Retrieve a specific proxy binding between a source and destination entitlement.",
        "operationId": "c1.api.app.v1.AppEntitlementsProxy.Get",
        "parameters": [
          {
            "in": "path",
            "name": "src_app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app that owns the source entitlement.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "src_app_entitlement_id",
            "required": true,
            "schema": {
              "description": "The ID of the source (parent) entitlement.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "dst_app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app that owns the destination entitlement.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "dst_app_entitlement_id",
            "required": true,
            "schema": {
              "description": "The ID of the destination (child) entitlement.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.GetAppEntitlementProxyResponse"
                }
              }
            },
            "description": "The response message for getting a specific entitlement proxy binding."
          }
        },
        "summary": "Get",
        "tags": [
          "App Entitlement Proxy Binding"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "App Entitlement Proxy Binding#read",
          "terraform-resource": "App Entitlement Proxy Binding#read"
        },
        "x-speakeasy-group": "AppEntitlementsProxy",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Create a proxy binding between a source and destination entitlement, establishing a hierarchical relationship.",
        "operationId": "c1.api.app.v1.AppEntitlementsProxy.Create",
        "parameters": [
          {
            "in": "path",
            "name": "src_app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app that owns the source entitlement.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "src_app_entitlement_id",
            "required": true,
            "schema": {
              "description": "The ID of the source (parent) entitlement.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "dst_app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app that owns the destination entitlement.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "dst_app_entitlement_id",
            "required": true,
            "schema": {
              "description": "The ID of the destination (child) entitlement.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.CreateAppEntitlementProxyRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.CreateAppEntitlementProxyResponse"
                }
              }
            },
            "description": "The response message for creating an entitlement proxy binding."
          }
        },
        "summary": "Create",
        "tags": [
          "App Entitlement Proxy Binding"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "App Entitlement Proxy Binding#create"
        },
        "x-speakeasy-group": "AppEntitlementsProxy",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/artifacts/{artifact_id}/versions": {
      "get": {
        "description": "ListVersions returns authorized history in descending numeric version order.\n Owners can inspect PENDING and FAILED; Readers see only eligible READY versions.",
        "operationId": "c1.api.artifact.v1.ArtifactService.ListVersions",
        "parameters": [
          {
            "in": "path",
            "name": "artifact_id",
            "required": true,
            "schema": {
              "description": "Identifier of the Artifact whose publication history is requested.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Maximum number of results per page; zero selects the service default, 20.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Sealed continuation token from a previous page for this Artifact.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.artifact.v1.ArtifactServiceListVersionsResponse"
                }
              }
            },
            "description": "ArtifactServiceListVersionsResponse contains currently authorized history.\n Discovery is eventual; use GetVersion for canonical publication status."
          }
        },
        "summary": "List Versions",
        "tags": [
          "Artifact"
        ],
        "x-speakeasy-group": "Artifact",
        "x-speakeasy-name-override": "ListVersions",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/artifacts/{artifact_id}/versions/{numeric_id}": {
      "get": {
        "description": "GetVersion returns the exact numbered version using strong canonical parent\n and version reads; Owners can inspect PENDING and FAILED, Readers only eligible READY versions.",
        "operationId": "c1.api.artifact.v1.ArtifactService.GetVersion",
        "parameters": [
          {
            "in": "path",
            "name": "artifact_id",
            "required": true,
            "schema": {
              "description": "Identifier of the Artifact that owns the requested version.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "numeric_id",
            "required": true,
            "schema": {
              "description": "Positive exact version number; zero is not a version. JS clients use strings.",
              "format": "int64",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.artifact.v1.ArtifactServiceGetVersionResponse"
                }
              }
            },
            "description": "ArtifactServiceGetVersionResponse contains the canonical publication outcome."
          }
        },
        "summary": "Get Version",
        "tags": [
          "Artifact"
        ],
        "x-speakeasy-group": "Artifact",
        "x-speakeasy-name-override": "GetVersion",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/artifacts/{id}": {
      "delete": {
        "description": "Delete deletes an Artifact for a current Owner, preventing ordinary access\n to its catalog entry and published versions.",
        "operationId": "c1.api.artifact.v1.ArtifactService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Identifier of the Artifact to delete; the caller must be a current Owner.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.artifact.v1.ArtifactServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.artifact.v1.ArtifactServiceDeleteResponse"
                }
              }
            },
            "description": "ArtifactServiceDeleteResponse confirms deletion without returning metadata."
          }
        },
        "summary": "Delete",
        "tags": [
          "Artifact"
        ],
        "x-speakeasy-group": "Artifact",
        "x-speakeasy-name-override": "Delete",
        "x-stability-level": "draft"
      },
      "get": {
        "description": "Get returns current catalog metadata by ID after a strong canonical read.\n Readers require a published version; Owners can also inspect unpublished Artifacts.",
        "operationId": "c1.api.artifact.v1.ArtifactService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Identifier of the Artifact to retrieve.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.artifact.v1.ArtifactServiceGetResponse"
                }
              }
            },
            "description": "ArtifactServiceGetResponse contains current-authorized catalog metadata."
          }
        },
        "summary": "Get",
        "tags": [
          "Artifact"
        ],
        "x-speakeasy-group": "Artifact",
        "x-speakeasy-name-override": "Get",
        "x-stability-level": "draft"
      },
      "patch": {
        "description": "Update changes selected catalog name, description or tags for a current Owner.\n It does not publish content or change the current publication pointer.",
        "operationId": "c1.api.artifact.v1.ArtifactService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Unique opaque identifier for this Artifact.",
              "readOnly": true,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.artifact.v1.ArtifactServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.artifact.v1.ArtifactServiceUpdateResponse"
                }
              }
            },
            "description": "ArtifactServiceUpdateResponse contains the updated catalog metadata."
          }
        },
        "summary": "Update",
        "tags": [
          "Artifact"
        ],
        "x-speakeasy-group": "Artifact",
        "x-speakeasy-name-override": "Update",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/attribute/{id}": {
      "delete": {
        "description": "Delete an attribute value by id.",
        "operationId": "c1.api.attribute.v1.Attributes.DeleteAttributeValue",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.attribute.v1.DeleteAttributeValueRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.attribute.v1.DeleteAttributeValueResponse"
                }
              }
            },
            "description": "DeleteAttributeValueResponse is the empty response for deleting an attribute value."
          }
        },
        "summary": "Delete Attribute Value",
        "tags": [
          "Attribute"
        ],
        "x-speakeasy-group": "Attributes",
        "x-speakeasy-name-override": "DeleteAttributeValue"
      }
    },
    "/api/v1/attributes": {
      "post": {
        "description": "Create a new attribute value.",
        "operationId": "c1.api.attribute.v1.Attributes.CreateAttributeValue",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.attribute.v1.CreateAttributeValueRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.attribute.v1.CreateAttributeValueResponse"
                }
              }
            },
            "description": "CreateAttributeValueResponse is the response for creating an attribute value."
          }
        },
        "summary": "Create Attribute Value",
        "tags": [
          "Attribute"
        ],
        "x-speakeasy-group": "Attributes",
        "x-speakeasy-name-override": "CreateAttributeValue"
      }
    },
    "/api/v1/attributes/compliance_frameworks": {
      "get": {
        "description": "List all compliance framework attribute values (e.g., SOC 2, HIPAA) with pagination.",
        "operationId": "c1.api.attribute.v1.Attributes.ListComplianceFrameworks",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.attribute.v1.ListComplianceFrameworksResponse"
                }
              }
            },
            "description": "ListComplianceFrameworksResponse is the response for listing compliance framework attribute values."
          }
        },
        "summary": "List Compliance Frameworks",
        "tags": [
          "Compliance Framework"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "Compliance Frameworks#read",
          "terraform-resource": null
        },
        "x-speakeasy-group": "Attributes",
        "x-speakeasy-name-override": "ListComplianceFrameworks"
      },
      "post": {
        "description": "Create a compliance framework value.",
        "operationId": "c1.api.attribute.v1.Attributes.CreateComplianceFrameworkAttributeValue",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.attribute.v1.CreateComplianceFrameworkAttributeValueRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.attribute.v1.CreateComplianceFrameworkAttributeValueResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create Compliance Framework Attribute Value",
        "tags": [
          "Compliance Framework"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Compliance Framework#create"
        },
        "x-speakeasy-group": "Attributes",
        "x-speakeasy-name-override": "CreateComplianceFrameworkAttributeValue"
      }
    },
    "/api/v1/attributes/compliance_frameworks/{id}": {
      "delete": {
        "description": "Delete an attribute value by id.",
        "operationId": "c1.api.attribute.v1.Attributes.DeleteComplianceFrameworkAttributeValue",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.attribute.v1.DeleteComplianceFrameworkAttributeValueRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.attribute.v1.DeleteComplianceFrameworkAttributeValueResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete Compliance Framework Attribute Value",
        "tags": [
          "Compliance Framework"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Compliance Framework#delete"
        },
        "x-speakeasy-group": "Attributes",
        "x-speakeasy-name-override": "DeleteComplianceFrameworkAttributeValue"
      },
      "get": {
        "description": "Get an attribute value by id.",
        "operationId": "c1.api.attribute.v1.Attributes.GetComplianceFrameworkAttributeValue",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.attribute.v1.GetComplianceFrameworkAttributeValueResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Compliance Framework Attribute Value",
        "tags": [
          "Compliance Framework"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "Compliance Framework#read",
          "terraform-resource": "Compliance Framework#read"
        },
        "x-speakeasy-group": "Attributes",
        "x-speakeasy-name-override": "GetComplianceFrameworkAttributeValue"
      }
    },
    "/api/v1/attributes/risk_levels": {
      "get": {
        "description": "List all risk level attribute values with pagination.",
        "operationId": "c1.api.attribute.v1.Attributes.ListRiskLevels",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.attribute.v1.ListRiskLevelsResponse"
                }
              }
            },
            "description": "ListRiskLevelsResponse is the response for listing risk level attribute values."
          }
        },
        "summary": "List Risk Levels",
        "tags": [
          "Risk Level"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "Risk Levels#read",
          "terraform-resource": null
        },
        "x-speakeasy-group": "Attributes",
        "x-speakeasy-name-override": "ListRiskLevels"
      },
      "post": {
        "description": "Create a risk level attribute.",
        "operationId": "c1.api.attribute.v1.Attributes.CreateRiskLevelAttributeValue",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.attribute.v1.CreateRiskLevelAttributeValueRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.attribute.v1.CreateRiskLevelAttributeValueResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create Risk Level Attribute Value",
        "tags": [
          "Risk Level"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Risk Level#create"
        },
        "x-speakeasy-group": "Attributes",
        "x-speakeasy-name-override": "CreateRiskLevelAttributeValue"
      }
    },
    "/api/v1/attributes/risk_levels/{id}": {
      "delete": {
        "description": "Delete a risk level attribute value by id.",
        "operationId": "c1.api.attribute.v1.Attributes.DeleteRiskLevelAttributeValue",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.attribute.v1.DeleteRiskLevelAttributeValueRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.attribute.v1.DeleteRiskLevelAttributeValueResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete Risk Level Attribute Value",
        "tags": [
          "Risk Level"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Risk Level#delete"
        },
        "x-speakeasy-group": "Attributes",
        "x-speakeasy-name-override": "DeleteRiskLevelAttributeValue"
      },
      "get": {
        "description": "Get a risk level attribute value by id.",
        "operationId": "c1.api.attribute.v1.Attributes.GetRiskLevelAttributeValue",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.attribute.v1.GetRiskLevelAttributeValueResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Risk Level Attribute Value",
        "tags": [
          "Risk Level"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "Risk Level#read",
          "terraform-resource": "Risk Level#read"
        },
        "x-speakeasy-group": "Attributes",
        "x-speakeasy-name-override": "GetRiskLevelAttributeValue"
      }
    },
    "/api/v1/attributes/types": {
      "get": {
        "description": "List all attribute types.",
        "operationId": "c1.api.attribute.v1.Attributes.ListAttributeTypes",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.attribute.v1.ListAttributeTypesResponse"
                }
              }
            },
            "description": "ListAttributeTypesResponse is the response for listing attribute types."
          }
        },
        "summary": "List Attribute Types",
        "tags": [
          "Attribute"
        ],
        "x-speakeasy-group": "Attributes",
        "x-speakeasy-name-override": "ListAttributeTypes"
      }
    },
    "/api/v1/attributes/types/{attribute_type_id}/values": {
      "get": {
        "description": "List all attribute values for a given attribute type.",
        "operationId": "c1.api.attribute.v1.Attributes.ListAttributeValues",
        "parameters": [
          {
            "in": "path",
            "name": "attribute_type_id",
            "required": true,
            "schema": {
              "description": "The attributeTypeId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.attribute.v1.ListAttributeValuesResponse"
                }
              }
            },
            "description": "ListAttributeValuesResponse is the response for listing attribute values for a given AttributeType."
          }
        },
        "summary": "List Attribute Values",
        "tags": [
          "Attribute"
        ],
        "x-speakeasy-group": "Attributes",
        "x-speakeasy-name-override": "ListAttributeValues"
      }
    },
    "/api/v1/attributes/{id}": {
      "get": {
        "description": "Get an attribute value by id.",
        "operationId": "c1.api.attribute.v1.Attributes.GetAttributeValue",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.attribute.v1.GetAttributeValueResponse"
                }
              }
            },
            "description": "GetAttributeValueResponse is the response for getting an attribute value by id."
          }
        },
        "summary": "Get Attribute Value",
        "tags": [
          "Attribute"
        ],
        "x-speakeasy-group": "Attributes",
        "x-speakeasy-name-override": "GetAttributeValue"
      }
    },
    "/api/v1/auth-configs": {
      "get": {
        "description": "List returns all authentication provider configurations for the tenant.",
        "operationId": "c1.api.auth_config.v1.TenantAuthConfigService.List",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The maximum number of results to return per page.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "A pagination token returned from a previous List call.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.auth_config.v1.TenantAuthConfigServiceListResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List",
        "tags": [
          "Auth Config"
        ],
        "x-speakeasy-group": "TenantAuthConfig",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Create registers a new authentication provider configuration for the tenant.",
        "operationId": "c1.api.auth_config.v1.TenantAuthConfigService.Create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.auth_config.v1.TenantAuthConfigServiceCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.auth_config.v1.TenantAuthConfigServiceCreateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create",
        "tags": [
          "Auth Config"
        ],
        "x-speakeasy-group": "TenantAuthConfig",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/auth-configs/{id}": {
      "delete": {
        "description": "Delete removes an authentication provider configuration from the tenant.",
        "operationId": "c1.api.auth_config.v1.TenantAuthConfigService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The unique identifier of the authentication provider configuration to delete.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.auth_config.v1.TenantAuthConfigServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.auth_config.v1.TenantAuthConfigServiceDeleteResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete",
        "tags": [
          "Auth Config"
        ],
        "x-speakeasy-group": "TenantAuthConfig",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get retrieves a single authentication provider configuration by its ID.",
        "operationId": "c1.api.auth_config.v1.TenantAuthConfigService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The unique identifier of the authentication provider configuration to retrieve.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.auth_config.v1.TenantAuthConfigServiceGetResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "Auth Config"
        ],
        "x-speakeasy-group": "TenantAuthConfig",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update modifies an existing authentication provider configuration. Use the update mask to specify which fields to change.",
        "operationId": "c1.api.auth_config.v1.TenantAuthConfigService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.auth_config.v1.TenantAuthConfigServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.auth_config.v1.TenantAuthConfigServiceUpdateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update",
        "tags": [
          "Auth Config"
        ],
        "x-speakeasy-group": "TenantAuthConfig",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/auth/introspect": {
      "get": {
        "description": "Introspect returns the current user's principle_id, user_id and a list of roles, permissions, and enabled features.",
        "operationId": "c1.api.auth.v1.Auth.Introspect",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.auth.v1.IntrospectResponse"
                }
              }
            },
            "description": "IntrospectResponse contains information about the current user who is authenticated."
          }
        },
        "summary": "Introspect",
        "tags": [
          "Auth"
        ],
        "x-speakeasy-group": "Auth",
        "x-speakeasy-name-override": "Introspect"
      }
    },
    "/api/v1/automation_executions": {
      "get": {
        "description": "List all automation executions in the tenant with pagination support.",
        "operationId": "c1.api.automations.v1.AutomationExecutionService.ListAutomationExecutions",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.automations.v1.ListAutomationExecutionsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Automation Executions",
        "tags": [
          "Automations"
        ],
        "x-speakeasy-group": "AutomationExecution",
        "x-speakeasy-name-override": "ListAutomationExecutions"
      }
    },
    "/api/v1/automation_executions/{id}": {
      "get": {
        "description": "Retrieve a single automation execution by its unique identifier, with optional expanded related objects.",
        "operationId": "c1.api.automations.v1.AutomationExecutionService.GetAutomationExecution",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The unique identifier of the automation execution to retrieve.",
              "format": "int64",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.automations.v1.GetAutomationExecutionResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Automation Execution",
        "tags": [
          "Automations"
        ],
        "x-speakeasy-group": "AutomationExecution",
        "x-speakeasy-name-override": "GetAutomationExecution"
      }
    },
    "/api/v1/automation_executions/{id}/actions/terminate": {
      "post": {
        "description": "Terminate a running automation execution asynchronously, stopping it and marking it as terminated.",
        "operationId": "c1.api.automations.v1.AutomationExecutionActionsService.TerminateAutomation",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The unique identifier of the automation execution to terminate.",
              "format": "int64",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.automations.v1.TerminateAutomationRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.automations.v1.TerminateAutomationResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Terminate Automation",
        "tags": [
          "Automations"
        ],
        "x-speakeasy-group": "AutomationExecutionActions",
        "x-speakeasy-name-override": "TerminateAutomation"
      }
    },
    "/api/v1/automations": {
      "get": {
        "description": "List all automations in the tenant with pagination support.",
        "operationId": "c1.api.automations.v1.AutomationService.ListAutomations",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.automations.v1.ListAutomationsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Automations",
        "tags": [
          "Automations"
        ],
        "x-speakeasy-group": "Automation",
        "x-speakeasy-name-override": "ListAutomations"
      },
      "post": {
        "description": "Create a new automation with the specified steps, triggers, and\n configuration. See get_authoring_guide for the AutomationStep contract\n (step kinds and their required fields, CEL identifier scope).\n\n At create time, draft_automation_steps and draft_triggers default to\n their published counterparts when omitted — callers writing a single\n working version don't need to populate both. The draft/publish\n distinction matters only on subsequent edits.",
        "operationId": "c1.api.automations.v1.AutomationService.CreateAutomation",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.automations.v1.CreateAutomationRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.automations.v1.CreateAutomationResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create Automation",
        "tags": [
          "Automations"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Automation#create"
        },
        "x-speakeasy-group": "Automation",
        "x-speakeasy-name-override": "CreateAutomation"
      }
    },
    "/api/v1/automations/{id}": {
      "delete": {
        "description": "Delete an automation by its unique identifier, removing it and its associated triggers.",
        "operationId": "c1.api.automations.v1.AutomationService.DeleteAutomation",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The unique identifier of the automation to delete.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.automations.v1.DeleteAutomationRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.automations.v1.DeleteAutomationResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete Automation",
        "tags": [
          "Automations"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Automation#delete"
        },
        "x-speakeasy-group": "Automation",
        "x-speakeasy-name-override": "DeleteAutomation"
      },
      "get": {
        "description": "Retrieve a single automation by its unique identifier.",
        "operationId": "c1.api.automations.v1.AutomationService.GetAutomation",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The unique identifier of the automation to retrieve.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.automations.v1.GetAutomationResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Automation",
        "tags": [
          "Automations"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": null,
          "terraform-resource": "Automation#read"
        },
        "x-speakeasy-group": "Automation",
        "x-speakeasy-name-override": "GetAutomation"
      },
      "post": {
        "description": "Update an existing automation's properties, steps, or triggers using a field mask.",
        "operationId": "c1.api.automations.v1.AutomationService.UpdateAutomation",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "readOnly": true,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.automations.v1.UpdateAutomationRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.automations.v1.UpdateAutomationResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update Automation",
        "tags": [
          "Automations"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Automation#update"
        },
        "x-speakeasy-group": "Automation",
        "x-speakeasy-name-override": "UpdateAutomation"
      }
    },
    "/api/v1/automations/{id}/circuit_breaker/clear": {
      "post": {
        "description": "Clear the circuit breaker on an automation that was auto-disabled by the\n rate cap. Future events flow normally; existing paused executions are not\n affected (use ResolvePausedAutomationExecutions to run or cancel them).",
        "operationId": "c1.api.automations.v1.AutomationService.ClearAutomationCircuitBreaker",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The unique identifier of the automation whose circuit breaker should\n be cleared.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.automations.v1.ClearAutomationCircuitBreakerRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.automations.v1.ClearAutomationCircuitBreakerResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Clear Automation Circuit Breaker",
        "tags": [
          "Automations"
        ],
        "x-speakeasy-group": "Automation",
        "x-speakeasy-name-override": "ClearAutomationCircuitBreaker"
      }
    },
    "/api/v1/automations/{id}/circuit_breaker/resolve_paused": {
      "post": {
        "description": "Decide what to do with the executions that were paused while the\n automation's circuit breaker was tripped. Idempotent.",
        "operationId": "c1.api.automations.v1.AutomationService.ResolvePausedAutomationExecutions",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The unique identifier of the automation whose paused executions should\n be resolved.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.automations.v1.ResolvePausedAutomationExecutionsRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.automations.v1.ResolvePausedAutomationExecutionsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Resolve Paused Automation Executions",
        "tags": [
          "Automations"
        ],
        "x-speakeasy-group": "Automation",
        "x-speakeasy-name-override": "ResolvePausedAutomationExecutions"
      }
    },
    "/api/v1/automations/{id}/execute": {
      "post": {
        "description": "Trigger an on-demand execution of an automation, returning the new execution's identifier.",
        "operationId": "c1.api.automations.v1.AutomationService.ExecuteAutomation",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The unique identifier of the automation to execute.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.automations.v1.ExecuteAutomationRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.automations.v1.ExecuteAutomationResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Execute Automation",
        "tags": [
          "Automations"
        ],
        "x-speakeasy-group": "Automation",
        "x-speakeasy-name-override": "ExecuteAutomation"
      }
    },
    "/api/v1/catalogs": {
      "get": {
        "description": "Get a list of request catalogs.",
        "operationId": "c1.api.requestcatalog.v1.RequestCatalogManagementService.List",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize where 0 \u003c= pageSize \u003c= 100. Values \u003c 10 will be set to 10. A value of 0 returns the default page size (currently 25)",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The page_token field for pagination.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogManagementServiceListResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List",
        "tags": [
          "Request Catalog"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "Request Catalogs#read",
          "terraform-resource": null
        },
        "x-speakeasy-group": "RequestCatalogManagement",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Creates a new request catalog.",
        "operationId": "c1.api.requestcatalog.v1.RequestCatalogManagementService.Create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogManagementServiceCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogManagementServiceGetResponse"
                }
              }
            },
            "description": "The request catalog management service get response returns a request catalog view with the expanded items in the expanded array indicated by the expand mask in the request."
          }
        },
        "summary": "Create",
        "tags": [
          "Request Catalog"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Access_Profile#create"
        },
        "x-speakeasy-group": "RequestCatalogManagement",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/catalogs/{catalog_id}/requestable_entitlementIDs": {
      "get": {
        "description": "List all requestable entitlement IDs in a catalog without pagination.",
        "operationId": "c1.api.requestcatalog.v1.RequestCatalogManagementService.ListAllEntitlementIdsPerApp",
        "parameters": [
          {
            "in": "path",
            "name": "catalog_id",
            "required": true,
            "schema": {
              "description": "The unique identifier of the access profile.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogManagementServiceListAllEntitlementIdsPerCatalogResponse"
                }
              }
            },
            "description": "The response message containing all requestable entitlement references in the catalog."
          }
        },
        "summary": "List All Entitlement Ids Per App",
        "tags": [
          "Request Catalog"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": null,
          "terraform-resource": "Access_Profile_Requestable_Entries#read"
        },
        "x-speakeasy-group": "RequestCatalogManagement",
        "x-speakeasy-name-override": "ListAllEntitlementIdsPerApp"
      }
    },
    "/api/v1/catalogs/{catalog_id}/requestable_entitlements": {
      "get": {
        "description": "List entitlements in a catalog that are requestable.",
        "operationId": "c1.api.requestcatalog.v1.RequestCatalogManagementService.ListEntitlementsPerCatalog",
        "parameters": [
          {
            "in": "path",
            "name": "catalog_id",
            "required": true,
            "schema": {
              "description": "The catalogId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogManagementServiceListEntitlementsPerCatalogResponse"
                }
              }
            },
            "description": "The RequestCatalogManagementServiceListEntitlementsPerCatalogResponse message contains a list of results and a nextPageToken if applicable."
          }
        },
        "summary": "List Entitlements Per Catalog",
        "tags": [
          "Request Catalog"
        ],
        "x-speakeasy-group": "RequestCatalogManagement",
        "x-speakeasy-name-override": "ListEntitlementsPerCatalog"
      }
    },
    "/api/v1/catalogs/{catalog_id}/requestable_entitlements/update": {
      "post": {
        "description": "Replace the full set of requestable entitlements in a catalog with the provided list.",
        "operationId": "c1.api.requestcatalog.v1.RequestCatalogManagementService.UpdateAppEntitlements",
        "parameters": [
          {
            "in": "path",
            "name": "catalog_id",
            "required": true,
            "schema": {
              "description": "The Id of the request catalog to get app entitlement to. This is a URL value.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogManagementServiceUpdateAppEntitlementsRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogManagementServiceUpdateAppEntitlementsResponse"
                }
              }
            },
            "description": "The RequestCatalogManagementServiceUpdateAppEntitlementsResponse object is is the response from UpdateAppEntitlements endpoint."
          }
        },
        "summary": "Update App Entitlements",
        "tags": [
          "Request Catalog"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Access_Profile_Requestable_Entries#update"
        },
        "x-speakeasy-group": "RequestCatalogManagement",
        "x-speakeasy-name-override": "UpdateAppEntitlements"
      }
    },
    "/api/v1/catalogs/{catalog_id}/requestable_entries": {
      "delete": {
        "description": "Remove requestable entitlements from a catalog.",
        "operationId": "c1.api.requestcatalog.v1.RequestCatalogManagementService.RemoveAppEntitlements",
        "parameters": [
          {
            "in": "path",
            "name": "catalog_id",
            "required": true,
            "schema": {
              "description": "The catalogId for the catalog to remove entitlements from.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogManagementServiceRemoveAppEntitlementsRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogManagementServiceRemoveAppEntitlementsResponse"
                }
              }
            },
            "description": "Empty response with a status code indicating success"
          }
        },
        "summary": "Remove App Entitlements",
        "tags": [
          "Request Catalog"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Access_Profile_Requestable_Entries#delete"
        },
        "x-speakeasy-group": "RequestCatalogManagement",
        "x-speakeasy-name-override": "RemoveAppEntitlements"
      },
      "post": {
        "description": "Add requestable entitlements to a catalog.",
        "operationId": "c1.api.requestcatalog.v1.RequestCatalogManagementService.AddAppEntitlements",
        "parameters": [
          {
            "in": "path",
            "name": "catalog_id",
            "required": true,
            "schema": {
              "description": "The Id of the request catalog to add app entitlements to. This is a URL value.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogManagementServiceAddAppEntitlementsRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogManagementServiceAddAppEntitlementsResponse"
                }
              }
            },
            "description": "Empty response with a status code indicating success."
          }
        },
        "summary": "Add App Entitlements",
        "tags": [
          "Request Catalog"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Access_Profile_Requestable_Entries#create"
        },
        "x-speakeasy-group": "RequestCatalogManagement",
        "x-speakeasy-name-override": "AddAppEntitlements"
      }
    },
    "/api/v1/catalogs/{catalog_id}/requestable_entries/{app_id}/{entitlement_id}": {
      "delete": {
        "description": "Delete a single requestable entry",
        "operationId": "c1.api.requestcatalog.v1.RequestCatalogManagementService.DeleteRequestableEntry",
        "parameters": [
          {
            "in": "path",
            "name": "catalog_id",
            "required": true,
            "schema": {
              "description": "The ID of the access profile (catalog)",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app that contains the entitlement",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "entitlement_id",
            "required": true,
            "schema": {
              "description": "The ID of the entitlement",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogManagementServiceDeleteRequestableEntryRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogManagementServiceDeleteRequestableEntryResponse"
                }
              }
            },
            "description": "Empty response for delete operation"
          }
        },
        "summary": "Delete Requestable Entry",
        "tags": [
          "Request Catalog"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Access_Profile_Requestable_Entry#delete"
        },
        "x-speakeasy-group": "RequestCatalogManagement",
        "x-speakeasy-name-override": "DeleteRequestableEntry"
      },
      "get": {
        "description": "Get a single requestable entry",
        "operationId": "c1.api.requestcatalog.v1.RequestCatalogManagementService.GetRequestableEntry",
        "parameters": [
          {
            "in": "path",
            "name": "catalog_id",
            "required": true,
            "schema": {
              "description": "The ID of the access profile (catalog)",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app that contains the entitlement",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "entitlement_id",
            "required": true,
            "schema": {
              "description": "The ID of the entitlement",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogManagementServiceGetRequestableEntryResponse"
                }
              }
            },
            "description": "Response containing the requested entry"
          }
        },
        "summary": "Get Requestable Entry",
        "tags": [
          "Request Catalog"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "Access_Profile_Requestable_Entry#read",
          "terraform-resource": null
        },
        "x-speakeasy-group": "RequestCatalogManagement",
        "x-speakeasy-name-override": "GetRequestableEntry"
      },
      "put": {
        "description": "Create a single requestable entry",
        "operationId": "c1.api.requestcatalog.v1.RequestCatalogManagementService.CreateRequestableEntry",
        "parameters": [
          {
            "in": "path",
            "name": "catalog_id",
            "required": true,
            "schema": {
              "description": "The ID of the access profile (catalog) to add the entitlement to",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app that contains the entitlement",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "entitlement_id",
            "required": true,
            "schema": {
              "description": "The ID of the entitlement to add to the request catalog",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogManagementServiceCreateRequestableEntryRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogManagementServiceCreateRequestableEntryResponse"
                }
              }
            },
            "description": "Response containing the created requestable entry"
          }
        },
        "summary": "Create Requestable Entry",
        "tags": [
          "Request Catalog"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Access_Profile_Requestable_Entry#create"
        },
        "x-speakeasy-group": "RequestCatalogManagement",
        "x-speakeasy-name-override": "CreateRequestableEntry"
      }
    },
    "/api/v1/catalogs/{catalog_id}/scope_role_bindings": {
      "get": {
        "description": "Search scope-role bindings in a catalog, grouped by (app, scope) (one entry per scope with\n all role IDs aggregated). When app_id is provided the result is scoped to that app; when\n omitted the result spans every app in the catalog, ordered by (app_id, scope_id) so a client\n groupBy(app_id) produces contiguous app sections across page boundaries.",
        "operationId": "c1.api.requestcatalog.v1.RequestCatalogManagementService.SearchScopeRoleBindingsPerCatalog",
        "parameters": [
          {
            "in": "path",
            "name": "catalog_id",
            "required": true,
            "schema": {
              "description": "The unique identifier of the access profile.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "app_id",
            "schema": {
              "description": "Optional: when set, restrict to a single app. When empty, span every app in the catalog.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The maximum number of results to return per page.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The token from a previous response's next_page_token, used to fetch the next page.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "query",
            "schema": {
              "description": "Optional substring search on the scope's app_resource display name (case-insensitive).",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "resource_type_id",
            "schema": {
              "description": "Optional filter on the scope's app resource type (for example, AWS Account).",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogManagementServiceSearchScopeRoleBindingsPerCatalogResponse"
                }
              }
            },
            "description": "The response message containing the scope-role bindings in an access profile, one entry per (app, scope)."
          }
        },
        "summary": "Search Scope Role Bindings Per Catalog",
        "tags": [
          "Request Catalog"
        ],
        "x-speakeasy-group": "RequestCatalogManagement",
        "x-speakeasy-name-override": "SearchScopeRoleBindingsPerCatalog"
      }
    },
    "/api/v1/catalogs/{catalog_id}/visibility_bindings": {
      "delete": {
        "description": "Remove visibility bindings (access entitlements) from a catalog.",
        "operationId": "c1.api.requestcatalog.v1.RequestCatalogManagementService.RemoveAccessEntitlements",
        "parameters": [
          {
            "in": "path",
            "name": "catalog_id",
            "required": true,
            "schema": {
              "description": "The catalogId for the catalog to remove access entitlements from.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogManagementServiceRemoveAccessEntitlementsRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogManagementServiceRemoveAccessEntitlementsResponse"
                }
              }
            },
            "description": "Empty response with a status code indicating success."
          }
        },
        "summary": "Remove Access Entitlements",
        "tags": [
          "Request Catalog"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Access_Profile_Visibility_Bindings#delete"
        },
        "x-speakeasy-group": "RequestCatalogManagement",
        "x-speakeasy-name-override": "RemoveAccessEntitlements"
      },
      "post": {
        "description": "Add visibility bindings (access entitlements) to a catalog.",
        "operationId": "c1.api.requestcatalog.v1.RequestCatalogManagementService.AddAccessEntitlements",
        "parameters": [
          {
            "in": "path",
            "name": "catalog_id",
            "required": true,
            "schema": {
              "description": "The Id of the request catalog to add access entitlements to. This is a URL value.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogManagementServiceAddAccessEntitlementsRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogManagementServiceAddAccessEntitlementsResponse"
                }
              }
            },
            "description": "Empty response with a status code indicating success."
          }
        },
        "summary": "Add Access Entitlements",
        "tags": [
          "Request Catalog"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Access_Profile_Visibility_Bindings#create"
        },
        "x-speakeasy-group": "RequestCatalogManagement",
        "x-speakeasy-name-override": "AddAccessEntitlements"
      }
    },
    "/api/v1/catalogs/{catalog_id}/visibility_entitlements": {
      "get": {
        "description": "List visibility bindings (access entitlements) for a catalog.",
        "operationId": "c1.api.requestcatalog.v1.RequestCatalogManagementService.ListEntitlementsForAccess",
        "parameters": [
          {
            "in": "path",
            "name": "catalog_id",
            "required": true,
            "schema": {
              "description": "The catalogId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogManagementServiceListEntitlementsForAccessResponse"
                }
              }
            },
            "description": "The RequestCatalogManagementServiceListEntitlementsForAccessResponse message contains a list of results and a nextPageToken if applicable."
          }
        },
        "summary": "List Entitlements For Access",
        "tags": [
          "Request Catalog"
        ],
        "x-speakeasy-group": "RequestCatalogManagement",
        "x-speakeasy-name-override": "ListEntitlementsForAccess"
      }
    },
    "/api/v1/catalogs/{id}": {
      "delete": {
        "description": "Delete a catalog.",
        "operationId": "c1.api.requestcatalog.v1.RequestCatalogManagementService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The Id of the RequestCatalog to delete.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogManagementServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogManagementServiceDeleteResponse"
                }
              }
            },
            "description": "Empty response with a status code indicating success."
          }
        },
        "summary": "Delete",
        "tags": [
          "Request Catalog"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Access_Profile#delete"
        },
        "x-speakeasy-group": "RequestCatalogManagement",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get a catalog.",
        "operationId": "c1.api.requestcatalog.v1.RequestCatalogManagementService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogManagementServiceGetResponse"
                }
              }
            },
            "description": "The request catalog management service get response returns a request catalog view with the expanded items in the expanded array indicated by the expand mask in the request."
          }
        },
        "summary": "Get",
        "tags": [
          "Request Catalog"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "Access_Profile#read",
          "terraform-resource": "Access_Profile#read"
        },
        "x-speakeasy-group": "RequestCatalogManagement",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update a catalog.",
        "operationId": "c1.api.requestcatalog.v1.RequestCatalogManagementService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id of the request catalog.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogManagementServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogManagementServiceGetResponse"
                }
              }
            },
            "description": "The request catalog management service get response returns a request catalog view with the expanded items in the expanded array indicated by the expand mask in the request."
          }
        },
        "summary": "Update",
        "tags": [
          "Request Catalog"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Access_Profile#update"
        },
        "x-speakeasy-group": "RequestCatalogManagement",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/catalogs/{request_catalog_id}/bundle_automation": {
      "delete": {
        "description": "Delete the bundle automation rule for a catalog, stopping automatic membership syncing.",
        "operationId": "c1.api.requestcatalog.v1.RequestCatalogManagementService.DeleteBundleAutomation",
        "parameters": [
          {
            "in": "path",
            "name": "request_catalog_id",
            "required": true,
            "schema": {
              "description": "The unique identifier of the access profile whose automation should be deleted.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.DeleteBundleAutomationRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.requestcatalog.v1.DeleteBundleAutomationResponse"
                }
              }
            },
            "description": "The response message for deleting a bundle automation."
          }
        },
        "summary": "Delete Bundle Automation",
        "tags": [
          "Request Catalog"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "BundleAutomation#delete"
        },
        "x-speakeasy-group": "RequestCatalogManagement",
        "x-speakeasy-name-override": "DeleteBundleAutomation"
      },
      "get": {
        "description": "Get bundle automation",
        "operationId": "c1.api.requestcatalog.v1.RequestCatalogManagementService.GetBundleAutomation",
        "parameters": [
          {
            "in": "path",
            "name": "request_catalog_id",
            "required": true,
            "schema": {
              "description": "The requestCatalogId field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.requestcatalog.v1.BundleAutomation"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Bundle Automation",
        "tags": [
          "Request Catalog"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "BundleAutomation#read",
          "terraform-resource": "BundleAutomation#read"
        },
        "x-speakeasy-group": "RequestCatalogManagement",
        "x-speakeasy-name-override": "GetBundleAutomation"
      },
      "post": {
        "description": "Create or update the bundle automation rule for a catalog that automatically syncs catalog membership.",
        "operationId": "c1.api.requestcatalog.v1.RequestCatalogManagementService.SetBundleAutomation",
        "parameters": [
          {
            "in": "path",
            "name": "request_catalog_id",
            "required": true,
            "schema": {
              "description": "The unique identifier of the access profile to set the automation on.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.SetBundleAutomationRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.requestcatalog.v1.BundleAutomation"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Set Bundle Automation",
        "tags": [
          "Request Catalog"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "BundleAutomation#update"
        },
        "x-speakeasy-group": "RequestCatalogManagement",
        "x-speakeasy-name-override": "SetBundleAutomation"
      }
    },
    "/api/v1/catalogs/{request_catalog_id}/bundle_automation/create": {
      "post": {
        "description": "Create a new bundle automation rule for a catalog that automatically syncs catalog membership from a query.",
        "operationId": "c1.api.requestcatalog.v1.RequestCatalogManagementService.CreateBundleAutomation",
        "parameters": [
          {
            "in": "path",
            "name": "request_catalog_id",
            "required": true,
            "schema": {
              "description": "The unique identifier of the access profile to create the automation for.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.CreateBundleAutomationRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.requestcatalog.v1.BundleAutomation"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create Bundle Automation",
        "tags": [
          "Request Catalog"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "BundleAutomation#create"
        },
        "x-speakeasy-group": "RequestCatalogManagement",
        "x-speakeasy-name-override": "CreateBundleAutomation"
      }
    },
    "/api/v1/catalogs/{request_catalog_id}/bundle_automation/resume": {
      "post": {
        "description": "Resume a bundle automation that was paused by the circuit breaker after detecting excessive membership changes.",
        "operationId": "c1.api.requestcatalog.v1.RequestCatalogManagementService.ResumePausedBundleAutomation",
        "parameters": [
          {
            "in": "path",
            "name": "request_catalog_id",
            "required": true,
            "schema": {
              "description": "The unique identifier of the access profile whose automation should be resumed.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.ResumePausedBundleAutomationRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.requestcatalog.v1.ResumePausedBundleAutomationResponse"
                }
              }
            },
            "description": "The response message for resuming a paused bundle automation."
          }
        },
        "summary": "Resume Paused Bundle Automation",
        "tags": [
          "Request Catalog"
        ],
        "x-speakeasy-group": "RequestCatalogManagement",
        "x-speakeasy-name-override": "ResumePausedBundleAutomation"
      }
    },
    "/api/v1/catalogs/{request_catalog_id}/bundle_automation/run": {
      "post": {
        "description": "Trigger an immediate execution of a catalog's bundle automation, bypassing the normal schedule.",
        "operationId": "c1.api.requestcatalog.v1.RequestCatalogManagementService.ForceRunBundleAutomation",
        "parameters": [
          {
            "in": "path",
            "name": "request_catalog_id",
            "required": true,
            "schema": {
              "description": "The unique identifier of the access profile whose automation should be run.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.ForceRunBundleAutomationRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.requestcatalog.v1.ForceRunBundleAutomationResponse"
                }
              }
            },
            "description": "The response message for triggering a bundle automation run."
          }
        },
        "summary": "Force Run Bundle Automation",
        "tags": [
          "Request Catalog"
        ],
        "x-speakeasy-group": "RequestCatalogManagement",
        "x-speakeasy-name-override": "ForceRunBundleAutomation"
      }
    },
    "/api/v1/catalogs/{request_catalog_id}/type-change/plan": {
      "post": {
        "description": "PlanTypeChange reports settings that must be turned off before Update can\n change an access profile to the requested type. It does not modify the\n profile or any associated state.",
        "operationId": "c1.api.requestcatalog.v1.RequestCatalogManagementService.PlanTypeChange",
        "parameters": [
          {
            "in": "path",
            "name": "request_catalog_id",
            "required": true,
            "schema": {
              "description": "Access profile to inspect.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogManagementServicePlanTypeChangeRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogManagementServicePlanTypeChangeResponse"
                }
              }
            },
            "description": "Describes behavior affected by an access profile type change."
          }
        },
        "summary": "Plan Type Change",
        "tags": [
          "Request Catalog"
        ],
        "x-speakeasy-group": "RequestCatalogManagement",
        "x-speakeasy-name-override": "PlanTypeChange"
      }
    },
    "/api/v1/classifier_bindings": {
      "get": {
        "description": "List returns classifier bindings for the tenant, paginated.",
        "operationId": "c1.api.ai_governance.v1.ClassifierService.ListClassifierBindings",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.ListClassifierBindingsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Classifier Bindings",
        "tags": [
          "Classifiers"
        ],
        "x-speakeasy-group": "Classifier",
        "x-speakeasy-name-override": "ListClassifierBindings"
      },
      "post": {
        "description": "Create attaches a classifier to an enforcement target.",
        "operationId": "c1.api.ai_governance.v1.ClassifierService.CreateClassifierBinding",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.CreateClassifierBindingRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.CreateClassifierBindingResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create Classifier Binding",
        "tags": [
          "Classifiers"
        ],
        "x-speakeasy-group": "Classifier",
        "x-speakeasy-name-override": "CreateClassifierBinding"
      }
    },
    "/api/v1/classifier_bindings/{id}/delete": {
      "post": {
        "description": "Delete removes a classifier binding by ID.",
        "operationId": "c1.api.ai_governance.v1.ClassifierService.DeleteClassifierBinding",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.DeleteClassifierBindingRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.DeleteClassifierBindingResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete Classifier Binding",
        "tags": [
          "Classifiers"
        ],
        "x-speakeasy-group": "Classifier",
        "x-speakeasy-name-override": "DeleteClassifierBinding"
      }
    },
    "/api/v1/classifier_templates/list": {
      "post": {
        "description": "List returns classifier templates for the tenant, paginated.",
        "operationId": "c1.api.ai_governance.v1.ClassifierTemplateService.ListClassifierTemplates",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.ListClassifierTemplatesRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.ListClassifierTemplatesResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Classifier Templates",
        "tags": [
          "Classifier Templates"
        ],
        "x-speakeasy-group": "ClassifierTemplate",
        "x-speakeasy-name-override": "ListClassifierTemplates"
      }
    },
    "/api/v1/classifier_templates/{id}": {
      "get": {
        "description": "Get returns a classifier template revision. An empty template_version\n selects the latest revision.",
        "operationId": "c1.api.ai_governance.v1.ClassifierTemplateService.GetClassifierTemplate",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "template_version",
            "schema": {
              "description": "Optional; empty resolves the latest version.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.GetClassifierTemplateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Classifier Template",
        "tags": [
          "Classifier Templates"
        ],
        "x-speakeasy-group": "ClassifierTemplate",
        "x-speakeasy-name-override": "GetClassifierTemplate"
      }
    },
    "/api/v1/classifier_templates/{template_id}/instantiate": {
      "post": {
        "description": "Instantiate creates a tenant-owned, editable classifier from a template\n revision. It binds supplied tenant parameters, resolves required tool gates\n and hooks, rewrites their references, and records the source template.",
        "operationId": "c1.api.ai_governance.v1.ClassifierTemplateService.InstantiateClassifierTemplate",
        "parameters": [
          {
            "in": "path",
            "name": "template_id",
            "required": true,
            "schema": {
              "description": "The templateId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.InstantiateClassifierTemplateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.InstantiateClassifierTemplateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Instantiate Classifier Template",
        "tags": [
          "Classifier Templates"
        ],
        "x-speakeasy-group": "ClassifierTemplate",
        "x-speakeasy-name-override": "InstantiateClassifierTemplate"
      }
    },
    "/api/v1/classifiers": {
      "get": {
        "description": "List returns classifiers for the tenant, paginated.",
        "operationId": "c1.api.ai_governance.v1.ClassifierService.ListClassifiers",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.ListClassifiersResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Classifiers",
        "tags": [
          "Classifiers"
        ],
        "x-speakeasy-group": "Classifier",
        "x-speakeasy-name-override": "ListClassifiers"
      },
      "post": {
        "description": "Create creates a classifier.",
        "operationId": "c1.api.ai_governance.v1.ClassifierService.CreateClassifier",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.CreateClassifierRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.CreateClassifierResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create Classifier",
        "tags": [
          "Classifiers"
        ],
        "x-speakeasy-group": "Classifier",
        "x-speakeasy-name-override": "CreateClassifier"
      }
    },
    "/api/v1/classifiers/{classifier_id}/rules/from_template": {
      "post": {
        "description": "Add inserts a template rule into a tenant-owned classifier at insert_index.\n It resolves only that rule's required tool gates and hooks, rewrites their\n references, assigns a new rule ID, and records the source template.\n Grant-policy parameters are validated only for the added rule.",
        "operationId": "c1.api.ai_governance.v1.ClassifierTemplateService.AddClassifierRuleFromTemplate",
        "parameters": [
          {
            "in": "path",
            "name": "classifier_id",
            "required": true,
            "schema": {
              "description": "Classifier to splice the rule into.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.AddClassifierRuleFromTemplateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.AddClassifierRuleFromTemplateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Add Classifier Rule From Template",
        "tags": [
          "Classifier Templates"
        ],
        "x-speakeasy-group": "ClassifierTemplate",
        "x-speakeasy-name-override": "AddClassifierRuleFromTemplate"
      }
    },
    "/api/v1/classifiers/{id}": {
      "get": {
        "description": "Get returns a classifier by ID.",
        "operationId": "c1.api.ai_governance.v1.ClassifierService.GetClassifier",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.GetClassifierResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Classifier",
        "tags": [
          "Classifiers"
        ],
        "x-speakeasy-group": "Classifier",
        "x-speakeasy-name-override": "GetClassifier"
      },
      "post": {
        "description": "Update modifies a classifier's mutable fields.",
        "operationId": "c1.api.ai_governance.v1.ClassifierService.UpdateClassifier",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.UpdateClassifierRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.UpdateClassifierResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update Classifier",
        "tags": [
          "Classifiers"
        ],
        "x-speakeasy-group": "Classifier",
        "x-speakeasy-name-override": "UpdateClassifier"
      }
    },
    "/api/v1/classifiers/{id}/delete": {
      "post": {
        "description": "Delete removes a classifier by ID.",
        "operationId": "c1.api.ai_governance.v1.ClassifierService.DeleteClassifier",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.DeleteClassifierRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.DeleteClassifierResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete Classifier",
        "tags": [
          "Classifiers"
        ],
        "x-speakeasy-group": "Classifier",
        "x-speakeasy-name-override": "DeleteClassifier"
      }
    },
    "/api/v1/connector-authoring/activations": {
      "post": {
        "description": "ActivateRevision redeems a one-time approval token to activate a built\n connector revision onto its instance connector. It is OWNER-only.\n Double-activate protection is the single-use approval token itself: redeeming\n it is a compare-and-swap that rejects a second redemption of the same token.\n idempotency_key is optional and reserved for a future replay-result cache.",
        "operationId": "c1.api.connector_authoring.v1.ConnectorAuthoringActivationService.ActivateRevision",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.connector_authoring.v1.ConnectorAuthoringServiceActivateRevisionRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.connector_authoring.v1.ConnectorAuthoringServiceActivateRevisionResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Activate Revision",
        "tags": [
          "Connector Authoring Activation"
        ],
        "x-speakeasy-group": "ConnectorAuthoringActivation",
        "x-speakeasy-name-override": "ActivateRevision"
      }
    },
    "/api/v1/connector-authoring/rollbacks": {
      "post": {
        "description": "RollbackRevision redeems a one-time approval token (bound to the rollback\n target's integrity root) to re-point the published + instance pointers at a\n previously activated, still-servable revision under a strictly greater\n activation epoch. It is OWNER-only. The rolled-back-FROM revision's serve\n state is untouched — the pointer move alone stops it serving; permanently\n ending a revision's serve eligibility is a platform kill-switch operation,\n not a tenant API verb.",
        "operationId": "c1.api.connector_authoring.v1.ConnectorAuthoringActivationService.RollbackRevision",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.connector_authoring.v1.ConnectorAuthoringServiceRollbackRevisionRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.connector_authoring.v1.ConnectorAuthoringServiceRollbackRevisionResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Rollback Revision",
        "tags": [
          "Connector Authoring Activation"
        ],
        "x-speakeasy-group": "ConnectorAuthoringActivation",
        "x-speakeasy-name-override": "RollbackRevision"
      }
    },
    "/api/v1/connectorcatalog": {
      "post": {
        "description": "Return the configuration schema describing the fields required to set up a connector of the specified type.",
        "operationId": "c1.api.integration.connector.v1.ConnectorCatalogService.ConfigurationSchema",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.integration.connector.v1.ConnectorCatalogServiceConfigurationSchemaRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.integration.connector.v1.ConnectorCatalogServiceConfigurationSchemaResponse"
                }
              }
            },
            "description": "ConnectorCatalogServiceConfigurationSchemaResponse is the response containing the connector's configuration schema."
          }
        },
        "summary": "Configuration Schema",
        "tags": [
          "Connector Catalog"
        ],
        "x-speakeasy-group": "ConnectorCatalog",
        "x-speakeasy-name-override": "ConfigurationSchema"
      }
    },
    "/api/v1/conversations/onboarding:ensure": {
      "post": {
        "description": "EnsureOnboardingSession returns the tenant's active onboarding conversation,\n or creates and starts it once. Retries converge on the stored conversation.",
        "operationId": "c1.api.conversations.v1.UIConversationsService.EnsureOnboardingSession",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.conversations.v1.EnsureOnboardingSessionRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.conversations.v1.EnsureOnboardingSessionResponse"
                }
              }
            },
            "description": "Returns the active onboarding conversation and whether this call created it."
          }
        },
        "summary": "Ensure Onboarding Session",
        "tags": [
          "Conversations"
        ],
        "x-speakeasy-group": "UIConversations",
        "x-speakeasy-name-override": "EnsureOnboardingSession"
      }
    },
    "/api/v1/credential-inventory-policies": {
      "get": {
        "description": "List all credential inventory policies in your tenant, one page at a time.",
        "operationId": "c1.api.credential_inventory.v1.CredentialInventoryPolicyService.List",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The maximum number of results to return per page.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "A pagination token from a previous List response.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.credential_inventory.v1.CredentialInventoryPolicyServiceListResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List",
        "tags": [
          "Credential Inventory"
        ],
        "x-speakeasy-group": "CredentialInventoryPolicy",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Create a credential inventory policy.",
        "operationId": "c1.api.credential_inventory.v1.CredentialInventoryPolicyService.Create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.credential_inventory.v1.CredentialInventoryPolicyServiceCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.credential_inventory.v1.CredentialInventoryPolicyServiceCreateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create",
        "tags": [
          "Credential Inventory"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "CredentialInventoryPolicy#create"
        },
        "x-speakeasy-group": "CredentialInventoryPolicy",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/credential-inventory-policies/{id}": {
      "delete": {
        "description": "Delete a credential inventory policy by ID.",
        "operationId": "c1.api.credential_inventory.v1.CredentialInventoryPolicyService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the policy to delete.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.credential_inventory.v1.CredentialInventoryPolicyServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.credential_inventory.v1.CredentialInventoryPolicyServiceDeleteResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete",
        "tags": [
          "Credential Inventory"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "CredentialInventoryPolicy#delete"
        },
        "x-speakeasy-group": "CredentialInventoryPolicy",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get a credential inventory policy by ID.",
        "operationId": "c1.api.credential_inventory.v1.CredentialInventoryPolicyService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the policy to retrieve.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.credential_inventory.v1.CredentialInventoryPolicyServiceGetResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "Credential Inventory"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": null,
          "terraform-resource": "CredentialInventoryPolicy#read"
        },
        "x-speakeasy-group": "CredentialInventoryPolicy",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update a credential inventory policy. Supply the policy object and an\n update mask listing the fields to change; omitted fields are left as-is.",
        "operationId": "c1.api.credential_inventory.v1.CredentialInventoryPolicyService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Unique identifier for the policy.",
              "readOnly": true,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.credential_inventory.v1.CredentialInventoryPolicyServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.credential_inventory.v1.CredentialInventoryPolicyServiceUpdateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update",
        "tags": [
          "Credential Inventory"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "CredentialInventoryPolicy#update"
        },
        "x-speakeasy-group": "CredentialInventoryPolicy",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/decoys": {
      "get": {
        "description": "List returns decoys for the tenant, paginated.",
        "operationId": "c1.api.decoy.v1.DecoyService.List",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.decoy.v1.DecoyServiceListResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List",
        "tags": [
          "Decoy"
        ],
        "x-speakeasy-group": "Decoy",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Create mints a decoy credential and returns the one-time vending\n material exactly once. The Decoy id is server-set; the credential's\n secret cannot be retrieved again after this response.",
        "operationId": "c1.api.decoy.v1.DecoyService.Create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.decoy.v1.DecoyServiceCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.decoy.v1.DecoyServiceCreateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create",
        "tags": [
          "Decoy"
        ],
        "x-speakeasy-group": "Decoy",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/decoys/search": {
      "post": {
        "description": "Search decoys with free-text query and filters for kind, status,\n and annotation key.",
        "operationId": "c1.api.decoy.v1.DecoySearchService.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.decoy.v1.DecoySearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.decoy.v1.DecoySearchResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Search",
        "tags": [
          "Decoy"
        ],
        "x-speakeasy-group": "DecoySearch",
        "x-speakeasy-name-override": "Search"
      }
    },
    "/api/v1/decoys/{id}": {
      "delete": {
        "description": "Delete soft-deletes a decoy and disables the paired credential row.",
        "operationId": "c1.api.decoy.v1.DecoyService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.decoy.v1.DecoyServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.decoy.v1.DecoyServiceDeleteResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete",
        "tags": [
          "Decoy"
        ],
        "x-speakeasy-group": "Decoy",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get returns a decoy by id.",
        "operationId": "c1.api.decoy.v1.DecoyService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.decoy.v1.DecoyServiceGetResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "Decoy"
        ],
        "x-speakeasy-group": "Decoy",
        "x-speakeasy-name-override": "Get"
      },
      "patch": {
        "description": "Update modifies mutable metadata on a decoy. The decoy variant is\n fixed at Create -- rotate the secret with Rotate instead.",
        "operationId": "c1.api.decoy.v1.DecoyService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "readOnly": true,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.decoy.v1.DecoyServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.decoy.v1.DecoyServiceUpdateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update",
        "tags": [
          "Decoy"
        ],
        "x-speakeasy-group": "Decoy",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/decoys/{id}/rotate": {
      "post": {
        "description": "Rotate re-mints the paired credential's secret material, preserves\n the decoy_id binding, and returns the new one-time vending material.",
        "operationId": "c1.api.decoy.v1.DecoyService.Rotate",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.decoy.v1.DecoyServiceRotateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.decoy.v1.DecoyServiceRotateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Rotate",
        "tags": [
          "Decoy"
        ],
        "x-speakeasy-group": "Decoy",
        "x-speakeasy-name-override": "Rotate"
      }
    },
    "/api/v1/directories": {
      "get": {
        "description": "List directories.",
        "operationId": "c1.api.directory.v1.DirectoryService.List",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.directory.v1.DirectoryServiceListResponse"
                }
              }
            },
            "description": "The DirectoryServiceListResponse message contains a list of results and a nextPageToken if applicable."
          }
        },
        "summary": "List",
        "tags": [
          "Directory"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": [
            "Directory#read",
            "Directories#read"
          ],
          "terraform-resource": null
        },
        "x-speakeasy-group": "Directory",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Create a directory.",
        "operationId": "c1.api.directory.v1.DirectoryService.Create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.directory.v1.DirectoryServiceCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.directory.v1.DirectoryServiceCreateResponse"
                }
              }
            },
            "description": "The DirectoryServiceCreateResponse message."
          }
        },
        "summary": "Create",
        "tags": [
          "Directory"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Directory#create"
        },
        "x-speakeasy-group": "Directory",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/directories/{app_id}": {
      "delete": {
        "description": "Delete a directory by app_id.",
        "operationId": "c1.api.directory.v1.DirectoryService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The app_id of the directory to delete.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.directory.v1.DirectoryServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.directory.v1.DirectoryServiceDeleteResponse"
                }
              }
            },
            "description": "Empty response with a status code indicating success."
          }
        },
        "summary": "Delete",
        "tags": [
          "Directory"
        ],
        "x-speakeasy-group": "Directory",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get a directory by app_id.",
        "operationId": "c1.api.directory.v1.DirectoryService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.directory.v1.DirectoryServiceGetResponse"
                }
              }
            },
            "description": "The Directory Service Get Response returns a directory view with a directory and JSONPATHs indicating the\n location in the expanded array that items are expanded as indicated by the expand mask in the request."
          }
        },
        "summary": "Get",
        "tags": [
          "Directory"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": null,
          "terraform-resource": "Directory#read"
        },
        "x-speakeasy-group": "Directory",
        "x-speakeasy-name-override": "Get"
      },
      "put": {
        "description": "Update a directory by app_id.",
        "operationId": "c1.api.directory.v1.DirectoryService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.directory.v1.DirectoryServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.directory.v1.DirectoryServiceUpdateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update",
        "tags": [
          "Directory"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Directory#update"
        },
        "x-speakeasy-group": "Directory",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/edges/audit_attestation/keys": {
      "get": {
        "description": "Lists the public keys that sign audit manifests, for offline verification.",
        "operationId": "c1.api.edge.v1.EdgeService.ListAuditAttestationKeys",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServiceListAuditAttestationKeysResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Audit Attestation Keys",
        "tags": [
          "Edge"
        ],
        "x-speakeasy-group": "Edge",
        "x-speakeasy-name-override": "ListAuditAttestationKeys"
      }
    },
    "/api/v1/edges/audit_attestation/manifests": {
      "get": {
        "description": "Lists the signed attestation manifests of the caller's own tenant, which\n chain the audit log into a tamper-evident sequence. Tenant-level: only the\n roles that hold EdgeService:owner (Super Administrator, AI Governance\n Administrator). Fails with FAILED_PRECONDITION when the warehouse has no attestation.",
        "operationId": "c1.api.edge.v1.EdgeService.ListAuditAttestationManifests",
        "parameters": [
          {
            "in": "query",
            "name": "audit_origin_id",
            "schema": {
              "description": "The auditOriginId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "audit_origin_instance_id",
            "schema": {
              "description": "The auditOriginInstanceId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "since",
            "schema": {
              "description": "Keep manifests whose event-time span overlaps [since, until] (unix\n seconds). Zero leaves that side unbounded.",
              "format": "int64",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "until",
            "schema": {
              "description": "The until field.",
              "format": "int64",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServiceListAuditAttestationManifestsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Audit Attestation Manifests",
        "tags": [
          "Edge"
        ],
        "x-speakeasy-group": "Edge",
        "x-speakeasy-name-override": "ListAuditAttestationManifests"
      }
    },
    "/api/v1/edges/audit_attestation/proofs/{event_id}": {
      "get": {
        "description": "Returns the checked inclusion proof of one audit event of the caller's\n own tenant. An event outside the tenant is NOT_FOUND, like a missing one.",
        "operationId": "c1.api.edge.v1.EdgeService.GetAuditInclusionProof",
        "parameters": [
          {
            "in": "path",
            "name": "event_id",
            "required": true,
            "schema": {
              "description": "The eventId field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServiceGetAuditInclusionProofResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Audit Inclusion Proof",
        "tags": [
          "Edge"
        ],
        "x-speakeasy-group": "Edge",
        "x-speakeasy-name-override": "GetAuditInclusionProof"
      }
    },
    "/api/v1/edges/egress/top-agents": {
      "get": {
        "description": "Lists agents ranked by MCP request count across the Edges the caller manages.",
        "operationId": "c1.api.edge.v1.EdgeService.ListEgressTopAgentsRollup",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "since",
            "schema": {
              "description": "The since field.",
              "format": "int64",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "until",
            "schema": {
              "description": "The until field.",
              "format": "int64",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServiceListEgressTopAgentsRollupResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Egress Top Agents Rollup",
        "tags": [
          "Edge"
        ],
        "x-speakeasy-group": "Edge",
        "x-speakeasy-name-override": "ListEgressTopAgentsRollup"
      }
    },
    "/api/v1/edges/egress/top-tools": {
      "get": {
        "description": "Lists the most frequently used MCP tools across the Edges the caller manages.",
        "operationId": "c1.api.edge.v1.EdgeService.ListEgressTopToolsRollup",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "since",
            "schema": {
              "description": "The since field.",
              "format": "int64",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "until",
            "schema": {
              "description": "The until field.",
              "format": "int64",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServiceListEgressTopToolsRollupResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Egress Top Tools Rollup",
        "tags": [
          "Edge"
        ],
        "x-speakeasy-group": "Edge",
        "x-speakeasy-name-override": "ListEgressTopToolsRollup"
      }
    },
    "/api/v1/edges/egress/traffic-summary": {
      "get": {
        "description": "Returns MCP traffic counts, verdicts and transferred bytes across the Edges the caller manages.",
        "operationId": "c1.api.edge.v1.EdgeService.GetEgressTrafficSummaryRollup",
        "parameters": [
          {
            "in": "query",
            "name": "bucket",
            "schema": {
              "description": "The bucket field.",
              "enum": [
                "TB_TIME_BUCKET_UNSPECIFIED",
                "TB_TIME_BUCKET_HOUR",
                "TB_TIME_BUCKET_DAY"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            }
          },
          {
            "in": "query",
            "name": "since",
            "schema": {
              "description": "The since field.",
              "format": "int64",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "until",
            "schema": {
              "description": "The until field.",
              "format": "int64",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServiceGetEgressTrafficSummaryRollupResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Egress Traffic Summary Rollup",
        "tags": [
          "Edge"
        ],
        "x-speakeasy-group": "Edge",
        "x-speakeasy-name-override": "GetEgressTrafficSummaryRollup"
      }
    },
    "/api/v1/edges/inference/catalog": {
      "get": {
        "description": "ListInferenceCatalog returns the providers, variants and suggested models that inference routes can be built\n from, C1's registered models by family, and the model each C1 tier uses for the caller's tenant. The Edge\n feature is required.",
        "operationId": "c1.api.edge.v1.EdgeService.ListInferenceCatalog",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServiceListInferenceCatalogResponse"
                }
              }
            },
            "description": "EdgeServiceListInferenceCatalogResponse contains every catalog entry."
          }
        },
        "summary": "List Inference Catalog",
        "tags": [
          "Edge"
        ],
        "x-speakeasy-group": "Edge",
        "x-speakeasy-name-override": "ListInferenceCatalog"
      }
    },
    "/api/v1/edges/inference/usage": {
      "get": {
        "description": "Returns inference request and token totals across the Edges the caller manages, with time series and model breakdowns.",
        "operationId": "c1.api.edge.v1.EdgeService.GetInferenceUsageSummaryRollup",
        "parameters": [
          {
            "in": "query",
            "name": "bucket",
            "schema": {
              "description": "The bucket field.",
              "enum": [
                "TB_TIME_BUCKET_UNSPECIFIED",
                "TB_TIME_BUCKET_HOUR",
                "TB_TIME_BUCKET_DAY"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            }
          },
          {
            "in": "query",
            "name": "since",
            "schema": {
              "description": "The since field.",
              "format": "int64",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "until",
            "schema": {
              "description": "The until field.",
              "format": "int64",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServiceGetInferenceUsageSummaryRollupResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Inference Usage Summary Rollup",
        "tags": [
          "Edge"
        ],
        "x-speakeasy-group": "Edge",
        "x-speakeasy-name-override": "GetInferenceUsageSummaryRollup"
      }
    },
    "/api/v1/edges/inference/usage-attribution": {
      "get": {
        "description": "Returns inference request and token usage across the Edges the caller manages, grouped by the selected attribution dimension.",
        "operationId": "c1.api.edge.v1.EdgeService.GetInferenceUsageAttributionRollup",
        "parameters": [
          {
            "in": "query",
            "name": "dimension",
            "schema": {
              "description": "The dimension field.",
              "enum": [
                "TB_USAGE_ATTRIBUTION_DIMENSION_UNSPECIFIED",
                "TB_USAGE_ATTRIBUTION_DIMENSION_TEAM",
                "TB_USAGE_ATTRIBUTION_DIMENSION_APPLICATION",
                "TB_USAGE_ATTRIBUTION_DIMENSION_AGENT",
                "TB_USAGE_ATTRIBUTION_DIMENSION_COST_CENTER",
                "TB_USAGE_ATTRIBUTION_DIMENSION_USER",
                "TB_USAGE_ATTRIBUTION_DIMENSION_PROVIDER",
                "TB_USAGE_ATTRIBUTION_DIMENSION_MODEL",
                "TB_USAGE_ATTRIBUTION_DIMENSION_ROUTE",
                "TB_USAGE_ATTRIBUTION_DIMENSION_CALL_ROLE"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "since",
            "schema": {
              "description": "The since field.",
              "format": "int64",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "until",
            "schema": {
              "description": "The until field.",
              "format": "int64",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServiceGetInferenceUsageAttributionRollupResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Inference Usage Attribution Rollup",
        "tags": [
          "Edge"
        ],
        "x-speakeasy-group": "Edge",
        "x-speakeasy-name-override": "GetInferenceUsageAttributionRollup"
      }
    },
    "/api/v1/edges/inventory": {
      "get": {
        "description": "Lists the Edges the caller manages across every app, for navigating to\n each Edge's own activity. Same authorized set as the other rollups.",
        "operationId": "c1.api.edge.v1.EdgeService.ListEdgesRollup",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServiceListEdgesRollupResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Edges Rollup",
        "tags": [
          "Edge"
        ],
        "x-speakeasy-group": "Edge",
        "x-speakeasy-name-override": "ListEdgesRollup"
      }
    },
    "/api/v1/edges/unattributed_inference/traffic": {
      "get": {
        "description": "Lists auth-rejected inference requests that Time Bandit could not\n attribute to a single Edge, for the whole tenant. Rejections that resolve\n to exactly one Edge appear in that Edge's own inference traffic instead.\n Tenant-level data: restricted to the roles that hold EdgeService:owner\n (Super Administrator, AI Governance Administrator), not Edge or app owners.",
        "operationId": "c1.api.edge.v1.EdgeService.ListUnattributedInferenceTrafficEvents",
        "parameters": [
          {
            "in": "query",
            "name": "auth_rejection_reason",
            "schema": {
              "description": "Keeps only rejections with this reason. Unset keeps all.",
              "enum": [
                "TB_AUTH_REJECTION_REASON_UNSPECIFIED",
                "TB_AUTH_REJECTION_REASON_MISSING_CREDENTIAL",
                "TB_AUTH_REJECTION_REASON_INVALID_TOKEN",
                "TB_AUTH_REJECTION_REASON_EXPIRED_TOKEN",
                "TB_AUTH_REJECTION_REASON_UNKNOWN_TENANT",
                "TB_AUTH_REJECTION_REASON_AUDIENCE_MISMATCH",
                "TB_AUTH_REJECTION_REASON_INSUFFICIENT_SCOPE",
                "TB_AUTH_REJECTION_REASON_INVALID_PROOF",
                "TB_AUTH_REJECTION_REASON_CREDENTIAL_UNAVAILABLE"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "since",
            "schema": {
              "description": "The since field.",
              "format": "int64",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "until",
            "schema": {
              "description": "The until field.",
              "format": "int64",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServiceListUnattributedInferenceTrafficEventsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Unattributed Inference Traffic Events",
        "tags": [
          "Edge"
        ],
        "x-speakeasy-group": "Edge",
        "x-speakeasy-name-override": "ListUnattributedInferenceTrafficEvents"
      }
    },
    "/api/v1/edges/usable": {
      "get": {
        "description": "List connection targets the calling person can currently use, without\n administrative configuration. Supports the person's own human session\n and device DPoP session; service principals are refused.",
        "operationId": "c1.api.edge.v1.EdgeService.ListUsableEdges",
        "parameters": [
          {
            "in": "query",
            "name": "kind",
            "schema": {
              "description": "Restrict resources and scopes to this capability. UNSPECIFIED returns all\n authorized capabilities; unknown enum values are rejected.",
              "enum": [
                "EDGE_CAPABILITY_KIND_UNSPECIFIED",
                "EDGE_CAPABILITY_KIND_EGRESS",
                "EDGE_CAPABILITY_KIND_INFERENCE"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Maximum number of tenant Edge candidates evaluated per page. Zero uses\n the default of 100; maximum 100. A page may be empty with a continuation.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Opaque continuation token from the previous response.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.edge.v1.EdgeServiceListUsableEdgesResponse"
                }
              }
            },
            "description": "EdgeServiceListUsableEdgesResponse contains currently authorized connection targets."
          }
        },
        "summary": "List Usable Edges",
        "tags": [
          "Edge"
        ],
        "x-speakeasy-group": "Edge",
        "x-speakeasy-name-override": "ListUsableEdges"
      }
    },
    "/api/v1/feedback": {
      "post": {
        "description": "Create feedback with client diagnostics, Datadog correlation context, and\n up to five WebP screenshots. Gated by the feedback feature flag; the\n submitter's identity is taken from the session, not the request.",
        "operationId": "c1.api.feedback.v1.FeedbackService.CreateFeedback",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.feedback.v1.CreateFeedbackRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.feedback.v1.CreateFeedbackResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create Feedback",
        "tags": [
          "Feedback"
        ],
        "x-speakeasy-group": "Feedback",
        "x-speakeasy-name-override": "CreateFeedback"
      }
    },
    "/api/v1/findings": {
      "post": {
        "description": "Create a user-authored custom finding.",
        "operationId": "c1.api.finding.v1.FindingService.CreateFinding",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.finding.v1.CreateFindingRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.finding.v1.CreateFindingResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create Finding",
        "tags": [
          "Findings"
        ],
        "x-speakeasy-group": "Finding",
        "x-speakeasy-name-override": "CreateFinding"
      }
    },
    "/api/v1/findings/bulk/state": {
      "post": {
        "description": "Bulk update finding states.",
        "operationId": "c1.api.finding.v1.FindingService.BulkUpdateFindingState",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.finding.v1.BulkUpdateFindingStateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.finding.v1.BulkUpdateFindingStateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Bulk Update Finding State",
        "tags": [
          "Findings"
        ],
        "x-speakeasy-group": "Finding",
        "x-speakeasy-name-override": "BulkUpdateFindingState"
      }
    },
    "/api/v1/findings/bulk/tasks": {
      "post": {
        "description": "Bulk create tasks for findings.",
        "operationId": "c1.api.finding.v1.FindingService.BulkCreateFindingTasks",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.finding.v1.BulkCreateFindingTasksRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.finding.v1.BulkCreateFindingTasksResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Bulk Create Finding Tasks",
        "tags": [
          "Findings"
        ],
        "x-speakeasy-group": "Finding",
        "x-speakeasy-name-override": "BulkCreateFindingTasks"
      }
    },
    "/api/v1/findings/routing-rules": {
      "get": {
        "description": "List finding routing rules, optionally filtered to a specific app.",
        "operationId": "c1.api.finding.v1.FindingRoutingRuleService.ListFindingRoutingRules",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.finding.v1.ListFindingRoutingRulesResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Finding Routing Rules",
        "tags": [
          "Finding Routing Rules"
        ],
        "x-speakeasy-group": "FindingRoutingRule",
        "x-speakeasy-name-override": "ListFindingRoutingRules"
      },
      "post": {
        "description": "Create a new finding routing rule that defines which policy to use for auto-routing matching findings.",
        "operationId": "c1.api.finding.v1.FindingRoutingRuleService.CreateFindingRoutingRule",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.finding.v1.CreateFindingRoutingRuleRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.finding.v1.CreateFindingRoutingRuleResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create Finding Routing Rule",
        "tags": [
          "Finding Routing Rules"
        ],
        "x-speakeasy-group": "FindingRoutingRule",
        "x-speakeasy-name-override": "CreateFindingRoutingRule"
      }
    },
    "/api/v1/findings/routing-rules/{id}": {
      "delete": {
        "description": "Delete a finding routing rule. Findings already routed by this rule are not affected.",
        "operationId": "c1.api.finding.v1.FindingRoutingRuleService.DeleteFindingRoutingRule",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the finding routing rule to delete.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.finding.v1.DeleteFindingRoutingRuleRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.finding.v1.DeleteFindingRoutingRuleResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete Finding Routing Rule",
        "tags": [
          "Finding Routing Rules"
        ],
        "x-speakeasy-group": "FindingRoutingRule",
        "x-speakeasy-name-override": "DeleteFindingRoutingRule"
      },
      "get": {
        "description": "Retrieve a single finding routing rule by ID.",
        "operationId": "c1.api.finding.v1.FindingRoutingRuleService.GetFindingRoutingRule",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the finding routing rule to retrieve.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.finding.v1.GetFindingRoutingRuleResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Finding Routing Rule",
        "tags": [
          "Finding Routing Rules"
        ],
        "x-speakeasy-group": "FindingRoutingRule",
        "x-speakeasy-name-override": "GetFindingRoutingRule"
      }
    },
    "/api/v1/findings/routing-rules/{routing_rule_id}/update": {
      "post": {
        "description": "Update an existing finding routing rule's match criteria or target policy.",
        "operationId": "c1.api.finding.v1.FindingRoutingRuleService.UpdateFindingRoutingRule",
        "parameters": [
          {
            "in": "path",
            "name": "routing_rule_id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.finding.v1.UpdateFindingRoutingRuleRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.finding.v1.UpdateFindingRoutingRuleResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update Finding Routing Rule",
        "tags": [
          "Finding Routing Rules"
        ],
        "x-speakeasy-group": "FindingRoutingRule",
        "x-speakeasy-name-override": "UpdateFindingRoutingRule"
      }
    },
    "/api/v1/findings/search": {
      "post": {
        "description": "Search findings using full-text query and filters for severity, state, type, and app.\n Each Finding row is large (risk factors, evidence, target, tags) — request a small page_size (≤10) to keep responses small.",
        "operationId": "c1.api.finding.v1.FindingSearchService.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.finding.v1.FindingSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.finding.v1.FindingSearchResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Search",
        "tags": [
          "Findings"
        ],
        "x-speakeasy-group": "FindingSearch",
        "x-speakeasy-name-override": "Search"
      }
    },
    "/api/v1/findings/settings": {
      "get": {
        "description": "List every configurable finding type and whether detection is enabled.",
        "operationId": "c1.api.finding.v1.FindingSettingsService.ListFindingSettings",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.finding.v1.ListFindingSettingsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Finding Settings",
        "tags": [
          "Finding Settings"
        ],
        "x-speakeasy-group": "FindingSettings",
        "x-speakeasy-name-override": "ListFindingSettings"
      }
    },
    "/api/v1/findings/settings/edge": {
      "get": {
        "description": "Get whether each Edge finding category is detected. Categories never\n configured read back their shipped default. The Edge finding type's own\n switch (ListFindingSettings) still gates every category.",
        "operationId": "c1.api.finding.v1.FindingSettingsService.GetEdgeFindingSettings",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.finding.v1.GetEdgeFindingSettingsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Edge Finding Settings",
        "tags": [
          "Finding Settings"
        ],
        "x-speakeasy-group": "FindingSettings",
        "x-speakeasy-name-override": "GetEdgeFindingSettings",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/findings/settings/edge/update": {
      "post": {
        "description": "Enable or disable detection for one or more Edge finding categories in a\n single write.",
        "operationId": "c1.api.finding.v1.FindingSettingsService.UpdateEdgeFindingSettings",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.finding.v1.UpdateEdgeFindingSettingsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.finding.v1.UpdateEdgeFindingSettingsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update Edge Finding Settings",
        "tags": [
          "Finding Settings"
        ],
        "x-speakeasy-group": "FindingSettings",
        "x-speakeasy-name-override": "UpdateEdgeFindingSettings",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/findings/settings/update": {
      "post": {
        "description": "Enable or disable detection for one or more finding types in a single\n write. Enabling a type whose detector is a scheduled job also queues an\n immediate run.",
        "operationId": "c1.api.finding.v1.FindingSettingsService.UpdateFindingSettings",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.finding.v1.UpdateFindingSettingsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.finding.v1.UpdateFindingSettingsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update Finding Settings",
        "tags": [
          "Finding Settings"
        ],
        "x-speakeasy-group": "FindingSettings",
        "x-speakeasy-name-override": "UpdateFindingSettings"
      }
    },
    "/api/v1/findings/transformation-rules": {
      "get": {
        "description": "List finding transformation rules, optionally filtered to a specific app.",
        "operationId": "c1.api.finding.v1.FindingTransformationRuleService.ListFindingTransformationRules",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.finding.v1.ListFindingTransformationRulesResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Finding Transformation Rules",
        "tags": [
          "Finding Transformation Rules"
        ],
        "x-speakeasy-group": "FindingTransformationRule",
        "x-speakeasy-name-override": "ListFindingTransformationRules"
      },
      "post": {
        "description": "Create a new finding transformation rule.",
        "operationId": "c1.api.finding.v1.FindingTransformationRuleService.CreateFindingTransformationRule",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.finding.v1.CreateFindingTransformationRuleRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.finding.v1.CreateFindingTransformationRuleResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create Finding Transformation Rule",
        "tags": [
          "Finding Transformation Rules"
        ],
        "x-speakeasy-group": "FindingTransformationRule",
        "x-speakeasy-name-override": "CreateFindingTransformationRule"
      }
    },
    "/api/v1/findings/transformation-rules/{id}": {
      "delete": {
        "description": "Delete a finding transformation rule. Findings already transformed by this rule are not affected.",
        "operationId": "c1.api.finding.v1.FindingTransformationRuleService.DeleteFindingTransformationRule",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the finding transformation rule to delete.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.finding.v1.DeleteFindingTransformationRuleRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.finding.v1.DeleteFindingTransformationRuleResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete Finding Transformation Rule",
        "tags": [
          "Finding Transformation Rules"
        ],
        "x-speakeasy-group": "FindingTransformationRule",
        "x-speakeasy-name-override": "DeleteFindingTransformationRule"
      },
      "get": {
        "description": "Retrieve a single finding transformation rule by ID.",
        "operationId": "c1.api.finding.v1.FindingTransformationRuleService.GetFindingTransformationRule",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the finding transformation rule to retrieve.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.finding.v1.GetFindingTransformationRuleResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Finding Transformation Rule",
        "tags": [
          "Finding Transformation Rules"
        ],
        "x-speakeasy-group": "FindingTransformationRule",
        "x-speakeasy-name-override": "GetFindingTransformationRule"
      }
    },
    "/api/v1/findings/transformation-rules/{transformation_rule_id}/update": {
      "post": {
        "description": "Update an existing finding transformation rule's match criteria or transforms.",
        "operationId": "c1.api.finding.v1.FindingTransformationRuleService.UpdateFindingTransformationRule",
        "parameters": [
          {
            "in": "path",
            "name": "transformation_rule_id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.finding.v1.UpdateFindingTransformationRuleRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.finding.v1.UpdateFindingTransformationRuleResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update Finding Transformation Rule",
        "tags": [
          "Finding Transformation Rules"
        ],
        "x-speakeasy-group": "FindingTransformationRule",
        "x-speakeasy-name-override": "UpdateFindingTransformationRule"
      }
    },
    "/api/v1/findings/{finding_id}/assignee": {
      "post": {
        "description": "Assign or clear a finding's assignee.",
        "operationId": "c1.api.finding.v1.FindingService.UpdateFindingAssignee",
        "parameters": [
          {
            "in": "path",
            "name": "finding_id",
            "required": true,
            "schema": {
              "description": "The ID of the finding to assign.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.finding.v1.UpdateFindingAssigneeRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.finding.v1.UpdateFindingAssigneeResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update Finding Assignee",
        "tags": [
          "Findings"
        ],
        "x-speakeasy-group": "Finding",
        "x-speakeasy-name-override": "UpdateFindingAssignee"
      }
    },
    "/api/v1/findings/{finding_id}/state": {
      "post": {
        "description": "Update finding workflow state (snooze, accept risk, suppress, reopen, resolve).",
        "operationId": "c1.api.finding.v1.FindingService.UpdateFindingState",
        "parameters": [
          {
            "in": "path",
            "name": "finding_id",
            "required": true,
            "schema": {
              "description": "The ID of the finding whose state to update.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.finding.v1.UpdateFindingStateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.finding.v1.UpdateFindingStateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update Finding State",
        "tags": [
          "Findings"
        ],
        "x-speakeasy-group": "Finding",
        "x-speakeasy-name-override": "UpdateFindingState"
      }
    },
    "/api/v1/findings/{finding_id}/task": {
      "post": {
        "description": "Create a task for a finding.",
        "operationId": "c1.api.finding.v1.FindingService.CreateFindingTask",
        "parameters": [
          {
            "in": "path",
            "name": "finding_id",
            "required": true,
            "schema": {
              "description": "The ID of the finding to create a remediation task for.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.finding.v1.CreateFindingTaskRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.finding.v1.CreateFindingTaskResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create Finding Task",
        "tags": [
          "Findings"
        ],
        "x-speakeasy-group": "Finding",
        "x-speakeasy-name-override": "CreateFindingTask"
      }
    },
    "/api/v1/findings/{id}": {
      "get": {
        "description": "Get a single finding by ID.",
        "operationId": "c1.api.finding.v1.FindingService.GetFinding",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the finding to retrieve.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.finding.v1.GetFindingResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Finding",
        "tags": [
          "Findings"
        ],
        "x-speakeasy-group": "Finding",
        "x-speakeasy-name-override": "GetFinding"
      }
    },
    "/api/v1/functions": {
      "get": {
        "description": "List retrieves all functions with pagination",
        "operationId": "c1.api.functions.v1.FunctionsService.ListFunctions",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.functions.v1.FunctionsServiceListFunctionsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Functions",
        "tags": [
          "Function"
        ],
        "x-speakeasy-group": "Functions",
        "x-speakeasy-name-override": "ListFunctions",
        "x-stability-level": "draft"
      },
      "post": {
        "description": "CreateFunction registers a new serverless function and creates its\n initial code commit. Functions run as TypeScript modules in a sandboxed\n runtime; see initial_content for the entry-file signature and SDK import.\n\n The new function is unpublished. To make the commit the default\n runnable version (and have the function appear as runnable in the\n Functions UI), call UpdateFunction with function.published_commit_id\n set and update_mask=[\"published_commit_id\"].",
        "operationId": "c1.api.functions.v1.FunctionsService.CreateFunction",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.functions.v1.FunctionsServiceCreateFunctionRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.functions.v1.FunctionsServiceCreateFunctionResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create Function",
        "tags": [
          "Function"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Function#create"
        },
        "x-speakeasy-group": "Functions",
        "x-speakeasy-name-override": "CreateFunction"
      }
    },
    "/api/v1/functions/update": {
      "post": {
        "description": "Update an existing function's metadata, code, or both. Also the publish\n path: set function.published_commit_id and include \"published_commit_id\"\n in update_mask to make a commit the default runnable version. To push a\n new code commit, set content (and optionally commit_message); this is\n independent of update_mask, since commits are versioned separately from\n function metadata. A single request cannot publish the commit it just\n created, since published_commit_id is validated against existing commits\n before content is committed: publishing new code takes two calls, push\n then publish with the returned commit.id.",
        "operationId": "c1.api.functions.v1.FunctionsService.UpdateFunction",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.functions.v1.FunctionsServiceUpdateFunctionRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.functions.v1.FunctionsServiceUpdateFunctionResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update Function",
        "tags": [
          "Function"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Function#update"
        },
        "x-speakeasy-group": "Functions",
        "x-speakeasy-name-override": "UpdateFunction",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/functions/{function_id}/commits": {
      "get": {
        "description": "ListCommits retrieves the commit history",
        "operationId": "c1.api.functions.v1.FunctionsService.ListCommits",
        "parameters": [
          {
            "in": "path",
            "name": "function_id",
            "required": true,
            "schema": {
              "description": "The functionId field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.functions.v1.FunctionsServiceListCommitsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Commits",
        "tags": [
          "Function Commit"
        ],
        "x-speakeasy-group": "Functions",
        "x-speakeasy-name-override": "ListCommits",
        "x-stability-level": "draft"
      },
      "post": {
        "description": "CreateInitialCommit starts a new commit and returns upload URLs for files",
        "operationId": "c1.api.functions.v1.FunctionsService.CreateInitialCommit",
        "parameters": [
          {
            "in": "path",
            "name": "function_id",
            "required": true,
            "schema": {
              "description": "The functionId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.functions.v1.FunctionsServiceCreateInitialCommitRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.functions.v1.FunctionsServiceCreateInitialCommitResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create Initial Commit",
        "tags": [
          "Function Commit"
        ],
        "x-speakeasy-group": "Functions",
        "x-speakeasy-name-override": "CreateInitialCommit",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/functions/{function_id}/commits/{commit_id}/finalize": {
      "post": {
        "description": "CreateFinalCommit completes a commit after files are uploaded",
        "operationId": "c1.api.functions.v1.FunctionsService.CreateFinalCommit",
        "parameters": [
          {
            "in": "path",
            "name": "function_id",
            "required": true,
            "schema": {
              "description": "The functionId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "commit_id",
            "required": true,
            "schema": {
              "description": "The commitId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.functions.v1.FunctionsServiceCreateFinalCommitRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.functions.v1.FunctionsServiceCreateFinalCommitResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create Final Commit",
        "tags": [
          "Function Commit"
        ],
        "x-speakeasy-group": "Functions",
        "x-speakeasy-name-override": "CreateFinalCommit",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/functions/{function_id}/commits/{commit_id}/lockfile": {
      "get": {
        "description": "GetLockFile retrieves the deno lock file for a specific commit, if it exists.",
        "operationId": "c1.api.functions.v1.FunctionsService.GetLockFile",
        "parameters": [
          {
            "in": "path",
            "name": "function_id",
            "required": true,
            "schema": {
              "description": "The functionId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "commit_id",
            "required": true,
            "schema": {
              "description": "The commitId field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.functions.v1.FunctionsServiceGetLockFileResponse"
                }
              }
            },
            "description": "FunctionsServiceGetLockFileResponse returns the deno lock file content for a commit."
          }
        },
        "summary": "Get Lock File",
        "tags": [
          "Function Commit"
        ],
        "x-speakeasy-group": "Functions",
        "x-speakeasy-name-override": "GetLockFile",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/functions/{function_id}/commits/{id}": {
      "get": {
        "description": "GetCommitContent retrieves a commit and all its file contents in a single unary response.\n This is a non-streaming alternative to GetCommit for REST API consumers.",
        "operationId": "c1.api.functions.v1.FunctionsService.GetCommitContent",
        "parameters": [
          {
            "in": "path",
            "name": "function_id",
            "required": true,
            "schema": {
              "description": "The function ID (KSUID).",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The commit reference to retrieve. Accepts a KSUID, \"HEAD\", or a tag reference like \"refs/tags/v1.0\".",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.functions.v1.FunctionsServiceGetCommitContentResponse"
                }
              }
            },
            "description": "FunctionsServiceGetCommitContentResponse contains a commit and all its file contents."
          }
        },
        "summary": "Get Commit Content",
        "tags": [
          "Function Commit"
        ],
        "x-speakeasy-group": "Functions",
        "x-speakeasy-name-override": "GetCommitContent",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/functions/{function_id}/invocations": {
      "get": {
        "description": "List retrieves the invocation history for a function",
        "operationId": "c1.api.functions.v1.FunctionsInvocationService.List",
        "parameters": [
          {
            "in": "path",
            "name": "function_id",
            "required": true,
            "schema": {
              "description": "The functionId field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.functions.v1.FunctionsInvocationServiceListResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List",
        "tags": [
          "Function Invocation"
        ],
        "x-speakeasy-group": "FunctionsInvocation",
        "x-speakeasy-name-override": "List",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/functions/{function_id}/invocations/search": {
      "post": {
        "description": "Search searches for function invocations with filtering and ordering support\n Each invocation carries its input/output payloads, which can be large — request a small page_size (≤10) to keep responses small.",
        "operationId": "c1.api.functions.v1.FunctionsInvocationSearchService.Search",
        "parameters": [
          {
            "in": "path",
            "name": "function_id",
            "required": true,
            "schema": {
              "description": "The function ID to search invocations for.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.functions.v1.FunctionsInvocationSearchRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.functions.v1.FunctionsInvocationSearchResponse"
                }
              }
            },
            "description": "FunctionsInvocationSearchResponse is the response for searching function invocations."
          }
        },
        "summary": "Search",
        "tags": [
          "Function Invocation"
        ],
        "x-speakeasy-group": "FunctionsInvocationSearch",
        "x-speakeasy-name-override": "Search",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/functions/{function_id}/invocations/{id}": {
      "get": {
        "description": "Get retrieves a specific invocation by ID",
        "operationId": "c1.api.functions.v1.FunctionsInvocationService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "function_id",
            "required": true,
            "schema": {
              "description": "The functionId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.functions.v1.FunctionsInvocationServiceGetResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "Function Invocation"
        ],
        "x-speakeasy-group": "FunctionsInvocation",
        "x-speakeasy-name-override": "Get",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/functions/{function_id}/invocations/{id}/result/download-url": {
      "get": {
        "description": "GetResultDownloadURL mints a short-lived download URL for an invocation\n result held outside the invocation row. The URL is generated at request\n time and never persisted; the invocation object itself exposes only the\n result's VFS path, size, checksum, media type, and expiry.",
        "operationId": "c1.api.functions.v1.FunctionsInvocationService.GetResultDownloadURL",
        "parameters": [
          {
            "in": "path",
            "name": "function_id",
            "required": true,
            "schema": {
              "description": "The functionId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.functions.v1.FunctionsInvocationServiceGetResultDownloadURLResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Result Download Url",
        "tags": [
          "Function Invocation"
        ],
        "x-speakeasy-group": "FunctionsInvocation",
        "x-speakeasy-name-override": "GetResultDownloadURL",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/functions/{function_id}/invoke": {
      "post": {
        "description": "Invoke executes a function at a specific commit with the provided input data.",
        "operationId": "c1.api.functions.v1.FunctionsService.Invoke",
        "parameters": [
          {
            "in": "path",
            "name": "function_id",
            "required": true,
            "schema": {
              "description": "The ID of the function to invoke.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.functions.v1.FunctionsServiceInvokeRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.functions.v1.FunctionsServiceInvokeResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Invoke",
        "tags": [
          "Function"
        ],
        "x-speakeasy-group": "Functions",
        "x-speakeasy-name-override": "Invoke",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/functions/{function_id}/tags": {
      "get": {
        "description": "ListTags lists all tags for a function",
        "operationId": "c1.api.functions.v1.FunctionsService.ListTags",
        "parameters": [
          {
            "in": "path",
            "name": "function_id",
            "required": true,
            "schema": {
              "description": "The functionId field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.functions.v1.FunctionsServiceListTagsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Tags",
        "tags": [
          "Function Tag"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "Function_Tag#read",
          "terraform-resource": "Function_Tag#read"
        },
        "x-speakeasy-group": "Functions",
        "x-speakeasy-name-override": "ListTags",
        "x-stability-level": "draft"
      },
      "post": {
        "description": "CreateTag creates a named reference to a specific commit",
        "operationId": "c1.api.functions.v1.FunctionsService.CreateTag",
        "parameters": [
          {
            "in": "path",
            "name": "function_id",
            "required": true,
            "schema": {
              "description": "The functionId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.functions.v1.FunctionsServiceCreateTagRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.functions.v1.FunctionsServiceCreateTagResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create Tag",
        "tags": [
          "Function Tag"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Function_Tag#create"
        },
        "x-speakeasy-group": "Functions",
        "x-speakeasy-name-override": "CreateTag",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/functions/{function_id}/test": {
      "post": {
        "description": "Test runs a function's test suite in a sandboxed environment and returns the results.",
        "operationId": "c1.api.functions.v1.FunctionsService.Test",
        "parameters": [
          {
            "in": "path",
            "name": "function_id",
            "required": true,
            "schema": {
              "description": "The function ID to test.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.functions.v1.FunctionsServiceTestRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.functions.v1.FunctionsServiceTestResponse"
                }
              }
            },
            "description": "FunctionsServiceTestResponse contains test execution results."
          }
        },
        "summary": "Test",
        "tags": [
          "Function"
        ],
        "x-speakeasy-group": "Functions",
        "x-speakeasy-name-override": "Test",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/functions/{id}": {
      "delete": {
        "description": "Delete removes a function",
        "operationId": "c1.api.functions.v1.FunctionsService.DeleteFunction",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.functions.v1.FunctionsServiceDeleteFunctionRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.functions.v1.FunctionsServiceDeleteFunctionResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete Function",
        "tags": [
          "Function"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Function#delete"
        },
        "x-speakeasy-group": "Functions",
        "x-speakeasy-name-override": "DeleteFunction",
        "x-stability-level": "draft"
      },
      "get": {
        "description": "Get retrieves a specific function by ID",
        "operationId": "c1.api.functions.v1.FunctionsService.GetFunction",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.functions.v1.FunctionsServiceGetFunctionResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Function",
        "tags": [
          "Function"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": null,
          "terraform-resource": "Function#read"
        },
        "x-speakeasy-group": "Functions",
        "x-speakeasy-name-override": "GetFunction",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/funds/app-caps": {
      "get": {
        "description": "List every capped app in the tenant. Cardinality is the tenant's installed\n App count, so this is one runtime-plane query.",
        "operationId": "c1.api.funds.v1.AppCapService.List",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.AppCapServiceListResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List",
        "tags": [
          "Fund App Caps"
        ],
        "x-speakeasy-group": "AppCap",
        "x-speakeasy-name-override": "List"
      }
    },
    "/api/v1/funds/app-caps/{app_id}": {
      "delete": {
        "description": "Delete the cap entirely. The app is no longer bounded tenant-wide.",
        "operationId": "c1.api.funds.v1.AppCapService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.funds.v1.AppCapServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.AppCapServiceDeleteResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete",
        "tags": [
          "Fund App Caps"
        ],
        "x-speakeasy-group": "AppCap",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get returns the tenant's ceiling for one app, together with any suspension\n acting as that app's kill switch. An app with no cap is not found, meaning\n nothing bounds it beyond the fund the spender already has.",
        "operationId": "c1.api.funds.v1.AppCapService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.AppCapServiceGetResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "Fund App Caps"
        ],
        "x-speakeasy-group": "AppCap",
        "x-speakeasy-name-override": "Get"
      }
    },
    "/api/v1/funds/app-caps/{app_id}/history": {
      "get": {
        "description": "List the change history for one app's cap, newest first. Admin-tier per the\n object-history convention. A cap cleared down to nothing is deleted, and its\n history is where the kill switch that preceded the delete is still readable.",
        "operationId": "c1.api.funds.v1.AppCapService.ListHistory",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.AppCapServiceListHistoryResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List History",
        "tags": [
          "Fund App Caps"
        ],
        "x-speakeasy-group": "AppCap",
        "x-speakeasy-name-override": "ListHistory"
      }
    },
    "/api/v1/funds/app-caps/{app_id}/limit": {
      "post": {
        "description": "Set the app's tenant-wide ceiling, creating the cap if absent. Leaves any\n suspension in place.",
        "operationId": "c1.api.funds.v1.AppCapService.SetLimit",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.funds.v1.AppCapServiceSetLimitRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.AppCapServiceSetLimitResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Set Limit",
        "tags": [
          "Fund App Caps"
        ],
        "x-speakeasy-group": "AppCap",
        "x-speakeasy-name-override": "SetLimit"
      }
    },
    "/api/v1/funds/app-caps/{app_id}/suspension": {
      "delete": {
        "description": "Bring the app back, restoring the cap it froze.",
        "operationId": "c1.api.funds.v1.AppCapService.Unsuspend",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.funds.v1.AppCapServiceUnsuspendRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.AppCapServiceUnsuspendResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Unsuspend",
        "tags": [
          "Fund App Caps"
        ],
        "x-speakeasy-group": "AppCap",
        "x-speakeasy-name-override": "Unsuspend"
      },
      "post": {
        "description": "Kill the app tenant-wide. The cap amount underneath is preserved and\n restored by Unsuspend.",
        "operationId": "c1.api.funds.v1.AppCapService.Suspend",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.funds.v1.AppCapServiceSuspendRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.AppCapServiceSuspendResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Suspend",
        "tags": [
          "Fund App Caps"
        ],
        "x-speakeasy-group": "AppCap",
        "x-speakeasy-name-override": "Suspend"
      }
    },
    "/api/v1/funds/assignments/search": {
      "post": {
        "description": "Search the tenant's assignments. Reads the Postgres mirror: the runtime\n row is keyed on (tenant, user), so there is no cross-subject query on the\n runtime plane at all.",
        "operationId": "c1.api.funds.v1.FundAssignmentService.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundAssignmentServiceSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.FundAssignmentServiceSearchResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Search",
        "tags": [
          "Fund Assignments"
        ],
        "x-speakeasy-group": "FundAssignment",
        "x-speakeasy-name-override": "Search"
      }
    },
    "/api/v1/funds/assignments/{user_id}": {
      "delete": {
        "description": "Delete the whole assignment. The subject falls back to the rules and the\n tenant default.",
        "operationId": "c1.api.funds.v1.FundAssignmentService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The userId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundAssignmentServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.FundAssignmentServiceDeleteResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete",
        "tags": [
          "Fund Assignments"
        ],
        "x-speakeasy-group": "FundAssignment",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get returns one subject's exception: their own limit, any extension\n running on top of it, and any suspension. A subject with no exception is\n not found rather than reported at the tenant default, because no row is\n what \"this subject is governed by the layers above\" looks like.",
        "operationId": "c1.api.funds.v1.FundAssignmentService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The userId field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.FundAssignmentServiceGetResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "Fund Assignments"
        ],
        "x-speakeasy-group": "FundAssignment",
        "x-speakeasy-name-override": "Get"
      }
    },
    "/api/v1/funds/assignments/{user_id}/extension": {
      "delete": {
        "description": "Revoke the extension early. The base limit underneath is untouched.",
        "operationId": "c1.api.funds.v1.FundAssignmentService.ClearExtension",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The userId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundAssignmentServiceClearExtensionRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.FundAssignmentServiceClearExtensionResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Clear Extension",
        "tags": [
          "Fund Assignments"
        ],
        "x-speakeasy-group": "FundAssignment",
        "x-speakeasy-name-override": "ClearExtension"
      },
      "post": {
        "description": "Grant a temporary total until expires_at. Never changes the period, and\n never expresses a refusal — a temporary refusal is a suspension.",
        "operationId": "c1.api.funds.v1.FundAssignmentService.GrantExtension",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The userId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundAssignmentServiceGrantExtensionRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.FundAssignmentServiceGrantExtensionResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Grant Extension",
        "tags": [
          "Fund Assignments"
        ],
        "x-speakeasy-group": "FundAssignment",
        "x-speakeasy-name-override": "GrantExtension"
      }
    },
    "/api/v1/funds/assignments/{user_id}/history": {
      "get": {
        "description": "List the change history for one subject's assignment, newest first.",
        "operationId": "c1.api.funds.v1.FundAssignmentService.ListHistory",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The userId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.FundAssignmentServiceListHistoryResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List History",
        "tags": [
          "Fund Assignments"
        ],
        "x-speakeasy-group": "FundAssignment",
        "x-speakeasy-name-override": "ListHistory"
      }
    },
    "/api/v1/funds/assignments/{user_id}/limit": {
      "post": {
        "description": "Set the subject's base limit, creating the assignment if absent. Leaves any\n extension and any suspension in place.",
        "operationId": "c1.api.funds.v1.FundAssignmentService.SetLimit",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The userId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundAssignmentServiceSetLimitRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.FundAssignmentServiceSetLimitResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Set Limit",
        "tags": [
          "Fund Assignments"
        ],
        "x-speakeasy-group": "FundAssignment",
        "x-speakeasy-name-override": "SetLimit"
      }
    },
    "/api/v1/funds/assignments/{user_id}/suspension": {
      "delete": {
        "description": "Lift the suspension, restoring the numbers it froze.",
        "operationId": "c1.api.funds.v1.FundAssignmentService.Unsuspend",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The userId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundAssignmentServiceUnsuspendRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.FundAssignmentServiceUnsuspendResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Unsuspend",
        "tags": [
          "Fund Assignments"
        ],
        "x-speakeasy-group": "FundAssignment",
        "x-speakeasy-name-override": "Unsuspend"
      },
      "post": {
        "description": "Freeze the subject's fund. The limit and any extension underneath are\n preserved and restored by Unsuspend.",
        "operationId": "c1.api.funds.v1.FundAssignmentService.Suspend",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The userId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundAssignmentServiceSuspendRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.FundAssignmentServiceSuspendResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Suspend",
        "tags": [
          "Fund Assignments"
        ],
        "x-speakeasy-group": "FundAssignment",
        "x-speakeasy-name-override": "Suspend"
      }
    },
    "/api/v1/funds/my/app-limits": {
      "get": {
        "description": "List the caller's own per-app limits.",
        "operationId": "c1.api.funds.v1.MyFundLimitsService.List",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.MyFundLimitsServiceListResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List",
        "tags": [
          "My Fund Limits"
        ],
        "x-speakeasy-group": "MyFundLimits",
        "x-speakeasy-name-override": "List"
      }
    },
    "/api/v1/funds/my/app-limits/{app_id}": {
      "delete": {
        "description": "Remove the caller's limit on this app entirely. The app is then bounded\n only by the fund and by any tenant-wide cap.",
        "operationId": "c1.api.funds.v1.MyFundLimitsService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.funds.v1.MyFundLimitsServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.MyFundLimitsServiceDeleteResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete",
        "tags": [
          "My Fund Limits"
        ],
        "x-speakeasy-group": "MyFundLimits",
        "x-speakeasy-name-override": "Delete"
      }
    },
    "/api/v1/funds/my/app-limits/{app_id}/history": {
      "get": {
        "description": "List the change history for one of the caller's own per-app limits, newest\n first. Removing the last control deletes the row, so this is where a subject\n reads back the pause they lifted and when they lifted it.\n\n VIEWER, not the OWNER the two admin-plane history RPCs use. This service\n carries no user id in any request, so it can only ever return the caller's\n own rows: gating it at OWNER would put an owner role in front of the\n caller's own data and still return nothing but that. An admin auditing\n another subject's app limits needs an admin-plane read, which this service\n is not and deliberately does not become.",
        "operationId": "c1.api.funds.v1.MyFundLimitsService.ListHistory",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.MyFundLimitsServiceListHistoryResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List History",
        "tags": [
          "My Fund Limits"
        ],
        "x-speakeasy-group": "MyFundLimits",
        "x-speakeasy-name-override": "ListHistory"
      }
    },
    "/api/v1/funds/my/app-limits/{app_id}/limit": {
      "post": {
        "description": "Cap what one app may take from the caller's own fund. Amount arm only.",
        "operationId": "c1.api.funds.v1.MyFundLimitsService.SetLimit",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.funds.v1.MyFundLimitsServiceSetLimitRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.MyFundLimitsServiceSetLimitResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Set Limit",
        "tags": [
          "My Fund Limits"
        ],
        "x-speakeasy-group": "MyFundLimits",
        "x-speakeasy-name-override": "SetLimit"
      }
    },
    "/api/v1/funds/my/app-limits/{app_id}/suspension": {
      "delete": {
        "description": "Un-pause the app, restoring the limit it froze.",
        "operationId": "c1.api.funds.v1.MyFundLimitsService.Resume",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.funds.v1.MyFundLimitsServiceResumeRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.MyFundLimitsServiceResumeResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Resume",
        "tags": [
          "My Fund Limits"
        ],
        "x-speakeasy-group": "MyFundLimits",
        "x-speakeasy-name-override": "Resume"
      },
      "post": {
        "description": "Pause one app on the caller's own fund. The limit underneath is preserved\n and restored by Resume. Denials name this as paused by you.",
        "operationId": "c1.api.funds.v1.MyFundLimitsService.Pause",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.funds.v1.MyFundLimitsServicePauseRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.MyFundLimitsServicePauseResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Pause",
        "tags": [
          "My Fund Limits"
        ],
        "x-speakeasy-group": "MyFundLimits",
        "x-speakeasy-name-override": "Pause"
      }
    },
    "/api/v1/funds/my/app-limits/{app_id}/temporary-limit": {
      "delete": {
        "description": "Remove the temporary limit, using the current base rather than an old copy.",
        "operationId": "c1.api.funds.v1.MyFundLimitsService.ClearTemporaryLimit",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.funds.v1.MyFundLimitsServiceClearTemporaryLimitRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.MyFundLimitsServiceClearTemporaryLimitResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Clear Temporary Limit",
        "tags": [
          "My Fund Limits"
        ],
        "x-speakeasy-group": "MyFundLimits",
        "x-speakeasy-name-override": "ClearTemporaryLimit"
      },
      "post": {
        "description": "Temporarily replace this app's self limit, not the fund supplying it.",
        "operationId": "c1.api.funds.v1.MyFundLimitsService.SetTemporaryLimit",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.funds.v1.MyFundLimitsServiceSetTemporaryLimitRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.MyFundLimitsServiceSetTemporaryLimitResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Set Temporary Limit",
        "tags": [
          "My Fund Limits"
        ],
        "x-speakeasy-group": "MyFundLimits",
        "x-speakeasy-name-override": "SetTemporaryLimit"
      }
    },
    "/api/v1/funds/policy": {
      "delete": {
        "description": "Delete the tenant's fund policy. Refused while spend governance is enabled\n because enabled inference requires this row. Disable governance and drain\n in-flight leases before calling Delete.",
        "operationId": "c1.api.funds.v1.FundPolicyService.Delete",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundPolicyServiceDeleteRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.FundPolicyServiceDeleteResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete",
        "tags": [
          "Fund Policy"
        ],
        "x-speakeasy-group": "FundPolicy",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get the tenant's fund policy. An absent policy is a configuration state\n that prevents enabled metered inference from serving traffic.",
        "operationId": "c1.api.funds.v1.FundPolicyService.Get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.FundPolicyServiceGetResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "Fund Policy"
        ],
        "x-speakeasy-group": "FundPolicy",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Create the tenant's fund policy. default_limit is required: a tenant\n states its posture explicitly, and there is no implicit default anywhere\n in the write path.",
        "operationId": "c1.api.funds.v1.FundPolicyService.Create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundPolicyServiceCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.FundPolicyServiceCreateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create",
        "tags": [
          "Fund Policy"
        ],
        "x-speakeasy-group": "FundPolicy",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/funds/policy/ceiling/limit": {
      "post": {
        "description": "Set the org-wide ceiling: the bound on the tenant's total regardless of\n what any principal was granted. Amount arm only. An absent limit clears\n the ceiling only after spend governance is disabled.",
        "operationId": "c1.api.funds.v1.FundPolicyService.SetOrgCeiling",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundPolicyServiceSetOrgCeilingRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.FundPolicyServiceSetOrgCeilingResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Set Org Ceiling",
        "tags": [
          "Fund Policy"
        ],
        "x-speakeasy-group": "FundPolicy",
        "x-speakeasy-name-override": "SetOrgCeiling"
      }
    },
    "/api/v1/funds/policy/ceiling/suspension": {
      "delete": {
        "description": "Lift the tenant freeze, restoring the ceiling it froze.",
        "operationId": "c1.api.funds.v1.FundPolicyService.UnfreezeTenant",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundPolicyServiceUnfreezeTenantRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.FundPolicyServiceUnfreezeTenantResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Unfreeze Tenant",
        "tags": [
          "Fund Policy"
        ],
        "x-speakeasy-group": "FundPolicy",
        "x-speakeasy-name-override": "UnfreezeTenant"
      },
      "post": {
        "description": "Freeze the whole tenant. The ceiling amount underneath is preserved and\n restored by Unfreeze.",
        "operationId": "c1.api.funds.v1.FundPolicyService.FreezeTenant",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundPolicyServiceFreezeTenantRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.FundPolicyServiceFreezeTenantResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Freeze Tenant",
        "tags": [
          "Fund Policy"
        ],
        "x-speakeasy-group": "FundPolicy",
        "x-speakeasy-name-override": "FreezeTenant"
      }
    },
    "/api/v1/funds/policy/history": {
      "get": {
        "description": "List the change history for the fund policy, newest first. Admin-tier per\n the object-history convention.",
        "operationId": "c1.api.funds.v1.FundPolicyService.ListHistory",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.FundPolicyServiceListHistoryResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List History",
        "tags": [
          "Fund Policy"
        ],
        "x-speakeasy-group": "FundPolicy",
        "x-speakeasy-name-override": "ListHistory"
      }
    },
    "/api/v1/funds/policy/update": {
      "post": {
        "description": "Update the period or the default limit. currency_code is fixed to USD at\n Create and immutable thereafter; update_mask rejects it.",
        "operationId": "c1.api.funds.v1.FundPolicyService.Update",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundPolicyServiceUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.FundPolicyServiceUpdateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update",
        "tags": [
          "Fund Policy"
        ],
        "x-speakeasy-group": "FundPolicy",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/funds/rules": {
      "get": {
        "description": "List every rule in the tenant. Reads the runtime plane: rule cardinality\n is the tenant's rule count, so this is the same one-partition read\n resolution does.",
        "operationId": "c1.api.funds.v1.FundRuleService.List",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.FundRuleServiceListResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List",
        "tags": [
          "Fund Rules"
        ],
        "x-speakeasy-group": "FundRule",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Create funds a group. The group is an AppEntitlement, so membership\n resolves through that entitlement's bindings on every acquire rather than\n being captured here. Creating the tenant's first rule is what turns group\n resolution on for that tenant.",
        "operationId": "c1.api.funds.v1.FundRuleService.Create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundRuleServiceCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.FundRuleServiceCreateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create",
        "tags": [
          "Fund Rules"
        ],
        "x-speakeasy-group": "FundRule",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/funds/rules/search": {
      "post": {
        "description": "Search rules by display name. Reads the Postgres mirror.",
        "operationId": "c1.api.funds.v1.FundRuleService.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundRuleServiceSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.FundRuleServiceSearchResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Search",
        "tags": [
          "Fund Rules"
        ],
        "x-speakeasy-group": "FundRule",
        "x-speakeasy-name-override": "Search"
      }
    },
    "/api/v1/funds/rules/{rule_id}": {
      "delete": {
        "description": "Delete withdraws a group grant. The cohort keeps whatever the tenant\n default and any other rule matching them still allow, so this narrows their\n fund rather than necessarily cutting it off. The rule's history survives.",
        "operationId": "c1.api.funds.v1.FundRuleService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "rule_id",
            "required": true,
            "schema": {
              "description": "The ruleId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundRuleServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.FundRuleServiceDeleteResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete",
        "tags": [
          "Fund Rules"
        ],
        "x-speakeasy-group": "FundRule",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get returns one rule: the group it funds, the grant it carries, and the\n label and reason an admin reads it by. A deleted rule is not found.",
        "operationId": "c1.api.funds.v1.FundRuleService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "rule_id",
            "required": true,
            "schema": {
              "description": "The ruleId field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.FundRuleServiceGetResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "Fund Rules"
        ],
        "x-speakeasy-group": "FundRule",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update replaces the group, grant, label or reason on one rule, whichever\n the field mask names. The new grant governs the next acquire; spend already\n accounted for against the old one is not revisited.",
        "operationId": "c1.api.funds.v1.FundRuleService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "rule_id",
            "required": true,
            "schema": {
              "description": "The ruleId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.funds.v1.FundRuleServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.FundRuleServiceUpdateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update",
        "tags": [
          "Fund Rules"
        ],
        "x-speakeasy-group": "FundRule",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/funds/rules/{rule_id}/history": {
      "get": {
        "description": "List the change history for one rule, newest first. Admin-tier per the\n object-history convention. A deleted rule keeps its history: the delete is\n the last entry, and the one before it is the rule as it last stood.",
        "operationId": "c1.api.funds.v1.FundRuleService.ListHistory",
        "parameters": [
          {
            "in": "path",
            "name": "rule_id",
            "required": true,
            "schema": {
              "description": "The ruleId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.FundRuleServiceListHistoryResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List History",
        "tags": [
          "Fund Rules"
        ],
        "x-speakeasy-group": "FundRule",
        "x-speakeasy-name-override": "ListHistory"
      }
    },
    "/api/v1/funds/subject-app-limits/search": {
      "post": {
        "description": "Search the tenant's subject-app limit rows. Reads the Postgres mirror:\n the runtime row is keyed on (tenant, subject), so a tenant-wide listing\n has no runtime query at all. Filters narrow by subject, by app, and by\n state; empty filters return every live row in the tenant.\n\n POST rather than GET: the filters are repeated fields, which the gateway\n cannot carry as query parameters. Pagination is keyset-based over\n (pksk), the storage primary key, so a concurrent write to a filtered\n field cannot duplicate or omit a row across pages the way an offset page\n can.",
        "operationId": "c1.api.funds.v1.SubjectAppLimitService.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.funds.v1.SubjectAppLimitServiceSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.SubjectAppLimitServiceSearchResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Search",
        "tags": [
          "Subject App Limits"
        ],
        "x-speakeasy-group": "SubjectAppLimit",
        "x-speakeasy-name-override": "Search"
      }
    },
    "/api/v1/funds/subject-app-limits/{user_id}/{app_id}": {
      "delete": {
        "description": "Remove the subject's limit on this app entirely. The app is then bounded\n only by the fund, by any tenant-wide cap, and by whatever the subject\n sets again themselves.",
        "operationId": "c1.api.funds.v1.SubjectAppLimitService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The userId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.funds.v1.SubjectAppLimitServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.SubjectAppLimitServiceDeleteResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete",
        "tags": [
          "Subject App Limits"
        ],
        "x-speakeasy-group": "SubjectAppLimit",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get returns one subject's limit row for one app, together with any\n suspension acting as their pause. A subject with no row for this app is\n not found, meaning nothing bounds the app beyond the layers above.",
        "operationId": "c1.api.funds.v1.SubjectAppLimitService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The userId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.SubjectAppLimitServiceGetResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "Subject App Limits"
        ],
        "x-speakeasy-group": "SubjectAppLimit",
        "x-speakeasy-name-override": "Get"
      }
    },
    "/api/v1/funds/subject-app-limits/{user_id}/{app_id}/history": {
      "get": {
        "description": "List the change history for one subject's limit on one app, newest\n first. Admin-tier per the object-history convention, and the same\n ObjectHistory stream the subject reads through MyFundLimitsService:\n admin-originated mutations are attributable here and self-service\n history shows them to the subject.",
        "operationId": "c1.api.funds.v1.SubjectAppLimitService.ListHistory",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The userId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.SubjectAppLimitServiceListHistoryResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List History",
        "tags": [
          "Subject App Limits"
        ],
        "x-speakeasy-group": "SubjectAppLimit",
        "x-speakeasy-name-override": "ListHistory"
      }
    },
    "/api/v1/funds/subject-app-limits/{user_id}/{app_id}/limit": {
      "post": {
        "description": "Cap what one app may take from this subject's fund, creating the row if\n absent. Amount arm only; leaves any pause in place.",
        "operationId": "c1.api.funds.v1.SubjectAppLimitService.SetLimit",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The userId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.funds.v1.SubjectAppLimitServiceSetLimitRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.SubjectAppLimitServiceSetLimitResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Set Limit",
        "tags": [
          "Subject App Limits"
        ],
        "x-speakeasy-group": "SubjectAppLimit",
        "x-speakeasy-name-override": "SetLimit"
      }
    },
    "/api/v1/funds/subject-app-limits/{user_id}/{app_id}/suspension": {
      "delete": {
        "description": "Lift the pause, restoring the limit it froze. Clearing the last control\n removes the row, so a vacuous result is returned as an absent limit, the\n same way the self-service plane reports it.",
        "operationId": "c1.api.funds.v1.SubjectAppLimitService.Unsuspend",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The userId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.funds.v1.SubjectAppLimitServiceUnsuspendRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.SubjectAppLimitServiceUnsuspendResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Unsuspend",
        "tags": [
          "Subject App Limits"
        ],
        "x-speakeasy-group": "SubjectAppLimit",
        "x-speakeasy-name-override": "Unsuspend"
      },
      "post": {
        "description": "Pause one app on this subject's fund. The limit underneath is preserved\n and restored by Unsuspend.",
        "operationId": "c1.api.funds.v1.SubjectAppLimitService.Suspend",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The userId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.funds.v1.SubjectAppLimitServiceSuspendRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.funds.v1.SubjectAppLimitServiceSuspendResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Suspend",
        "tags": [
          "Subject App Limits"
        ],
        "x-speakeasy-group": "SubjectAppLimit",
        "x-speakeasy-name-override": "Suspend"
      }
    },
    "/api/v1/golinks": {
      "get": {
        "description": "List GoLinks with pagination.",
        "operationId": "c1.api.golink.v1.GoLinkService.List",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.golink.v1.GoLinkServiceListResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List",
        "tags": [
          "Short Links"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": [
            "GoLink#read",
            "GoLinks#read"
          ],
          "terraform-resource": null
        },
        "x-speakeasy-group": "GoLink",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Create a new GoLink.",
        "operationId": "c1.api.golink.v1.GoLinkService.Create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.golink.v1.GoLinkServiceCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.golink.v1.GoLinkServiceCreateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create",
        "tags": [
          "Short Links"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "GoLink#create"
        },
        "x-speakeasy-group": "GoLink",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/golinks/resolve": {
      "post": {
        "description": "Resolve a path to a GoLink target.\n Returns the resolution outcome (redirect URL, action, chooser, prerequisite, etc.)",
        "operationId": "c1.api.golink.v1.GoLinkService.Resolve",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.golink.v1.GoLinkServiceResolveRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.golink.v1.GoLinkServiceResolveResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Resolve",
        "tags": [
          "Short Links"
        ],
        "x-speakeasy-group": "GoLink",
        "x-speakeasy-name-override": "Resolve"
      }
    },
    "/api/v1/golinks/search": {
      "post": {
        "description": "Search GoLinks by query string.",
        "operationId": "c1.api.golink.v1.GoLinkSearchService.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.golink.v1.GoLinkSearchServiceSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.golink.v1.GoLinkSearchServiceSearchResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Search",
        "tags": [
          "Short Links"
        ],
        "x-speakeasy-group": "GoLinkSearch",
        "x-speakeasy-name-override": "Search"
      }
    },
    "/api/v1/golinks/{golink_id}/versions": {
      "get": {
        "description": "List version history for a GoLink.",
        "operationId": "c1.api.golink.v1.GoLinkService.ListVersions",
        "parameters": [
          {
            "in": "path",
            "name": "golink_id",
            "required": true,
            "schema": {
              "description": "The golinkId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.golink.v1.GoLinkServiceListVersionsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Versions",
        "tags": [
          "Short Links"
        ],
        "x-speakeasy-group": "GoLink",
        "x-speakeasy-name-override": "ListVersions"
      }
    },
    "/api/v1/golinks/{id}": {
      "delete": {
        "description": "Delete a GoLink. Caller must be the owner.",
        "operationId": "c1.api.golink.v1.GoLinkService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.golink.v1.GoLinkServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.golink.v1.GoLinkServiceDeleteResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete",
        "tags": [
          "Short Links"
        ],
        "x-speakeasy-group": "GoLink",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get a GoLink by ID.",
        "operationId": "c1.api.golink.v1.GoLinkService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.golink.v1.GoLinkServiceGetResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "Short Links"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": null,
          "terraform-resource": "GoLink#read"
        },
        "x-speakeasy-group": "GoLink",
        "x-speakeasy-name-override": "Get"
      },
      "patch": {
        "description": "Update a GoLink. Caller must be the owner.",
        "operationId": "c1.api.golink.v1.GoLinkService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.golink.v1.GoLinkServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.golink.v1.GoLinkServiceUpdateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update",
        "tags": [
          "Short Links"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "GoLink#update"
        },
        "x-speakeasy-group": "GoLink",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/grants/feed": {
      "post": {
        "description": "Search a chronological feed of grant and revoke events, filtered by app user, entitlement, or time range.",
        "operationId": "c1.api.app.v1.AppEntitlementUserBindingService.SearchGrantFeed",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.SearchGrantFeedRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.SearchGrantFeedResponse"
                }
              }
            },
            "description": "The SearchGrantFeedResponse message contains a list of grant event results and a nextPageToken if applicable."
          }
        },
        "summary": "Search Grant Feed",
        "tags": [
          "App Entitlement User Binding Feed"
        ],
        "x-speakeasy-group": "AppEntitlementUserBinding",
        "x-speakeasy-name-override": "SearchGrantFeed"
      }
    },
    "/api/v1/hooks": {
      "get": {
        "description": "List returns all hooks for the tenant, paginated.",
        "operationId": "c1.api.hooks.v1.HooksService.List",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.hooks.v1.HooksServiceListResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List",
        "tags": [
          "Hook"
        ],
        "x-speakeasy-group": "Hooks",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Create creates a hook. The hook fires on the configured event, optionally\n filtered by a CEL expression. Creating a Patch tool input hook requires the\n preview feature to be enabled for the tenant.",
        "operationId": "c1.api.hooks.v1.HooksService.Create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.hooks.v1.HooksServiceCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.hooks.v1.HooksServiceCreateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create",
        "tags": [
          "Hook"
        ],
        "x-speakeasy-group": "Hooks",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/hooks/{id}": {
      "delete": {
        "description": "Delete removes a hook by ID. A hook referenced by a guardrail rule cannot\n be deleted until the reference is removed.",
        "operationId": "c1.api.hooks.v1.HooksService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.hooks.v1.HooksServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.hooks.v1.HooksServiceDeleteResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete",
        "tags": [
          "Hook"
        ],
        "x-speakeasy-group": "Hooks",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get returns a hook by ID.",
        "operationId": "c1.api.hooks.v1.HooksService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.hooks.v1.HooksServiceGetResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "Hook"
        ],
        "x-speakeasy-group": "Hooks",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update modifies a hook's display name, description, event, filter, priority,\n or configuration. A hook referenced by a guardrail rule cannot stop being\n managed by guardrails until the reference is removed.",
        "operationId": "c1.api.hooks.v1.HooksService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.hooks.v1.HooksServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.hooks.v1.HooksServiceUpdateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update",
        "tags": [
          "Hook"
        ],
        "x-speakeasy-group": "Hooks",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/iam/external_oauth_clients": {
      "post": {
        "description": "Create provisions a durable static OAuth client for a pre-registered\n consumer, eligible for authorization_code + refresh_token only. A\n secret-based client's secret is returned once, on this response.",
        "operationId": "c1.api.iam.v1.ExternalOAuthClientService.Create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.iam.v1.ExternalOAuthClientServiceCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.iam.v1.ExternalOAuthClientServiceCreateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create",
        "tags": [
          "External OAuth Client"
        ],
        "x-speakeasy-group": "ExternalOAuthClient",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/iam/external_oauth_clients/revoke": {
      "post": {
        "description": "Revoke disables a static client, then revokes its users' grants. The row is\n kept for audit.",
        "operationId": "c1.api.iam.v1.ExternalOAuthClientService.Revoke",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.iam.v1.ExternalOAuthClientServiceRevokeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.iam.v1.ExternalOAuthClientServiceRevokeResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Revoke",
        "tags": [
          "External OAuth Client"
        ],
        "x-speakeasy-group": "ExternalOAuthClient",
        "x-speakeasy-name-override": "Revoke"
      }
    },
    "/api/v1/iam/external_oauth_clients/rotate-secret": {
      "post": {
        "description": "RotateSecret issues a new client secret for a static client and returns it\n once. The client keeps its client_id, redirect URIs, and grants.",
        "operationId": "c1.api.iam.v1.ExternalOAuthClientService.RotateSecret",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.iam.v1.ExternalOAuthClientServiceRotateSecretRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.iam.v1.ExternalOAuthClientServiceRotateSecretResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Rotate Secret",
        "tags": [
          "External OAuth Client"
        ],
        "x-speakeasy-group": "ExternalOAuthClient",
        "x-speakeasy-name-override": "RotateSecret"
      }
    },
    "/api/v1/iam/external_oauth_clients/update": {
      "post": {
        "description": "Update edits a static client through an explicit field mask. client_id,\n client_id_type, and the auth method are immutable. Update never mints,\n clears, or returns secret material.",
        "operationId": "c1.api.iam.v1.ExternalOAuthClientService.Update",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.iam.v1.ExternalOAuthClientServiceUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.iam.v1.ExternalOAuthClientServiceUpdateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update",
        "tags": [
          "External OAuth Client"
        ],
        "x-speakeasy-group": "ExternalOAuthClient",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/iam/model_api_keys": {
      "get": {
        "description": "List returns all model API keys owned by the calling user.",
        "operationId": "c1.api.iam.v1.ModelAPIKeyService.List",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.iam.v1.ModelAPIKeyServiceListResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List",
        "tags": [
          "Model API Key"
        ],
        "x-speakeasy-group": "ModelAPIKey",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Create generates a new model API key for the caller.",
        "operationId": "c1.api.iam.v1.ModelAPIKeyService.Create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.iam.v1.ModelAPIKeyServiceCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.iam.v1.ModelAPIKeyServiceCreateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create",
        "tags": [
          "Model API Key"
        ],
        "x-speakeasy-group": "ModelAPIKey",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/iam/model_api_keys/{id}": {
      "delete": {
        "description": "Revoke deactivates a model API key, preventing further use.",
        "operationId": "c1.api.iam.v1.ModelAPIKeyService.Revoke",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The unique ID of the model API key to revoke (27-character base62 identifier).",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.iam.v1.ModelAPIKeyServiceRevokeRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.iam.v1.ModelAPIKeyServiceRevokeResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Revoke",
        "tags": [
          "Model API Key"
        ],
        "x-speakeasy-group": "ModelAPIKey",
        "x-speakeasy-name-override": "Revoke"
      },
      "get": {
        "description": "Get retrieves a model API key by its ID (metadata only, no secret).",
        "operationId": "c1.api.iam.v1.ModelAPIKeyService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The unique ID of the model API key (27-character base62 identifier).",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.iam.v1.ModelAPIKeyServiceGetResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "Model API Key"
        ],
        "x-speakeasy-group": "ModelAPIKey",
        "x-speakeasy-name-override": "Get"
      }
    },
    "/api/v1/iam/personal_clients": {
      "get": {
        "description": "List returns all personal client credentials owned by the calling user.",
        "operationId": "c1.api.iam.v1.PersonalClientService.List",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.iam.v1.PersonalClientServiceListResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "NOTE: Only shows personal clients for the current user.",
        "tags": [
          "Personal Client"
        ],
        "x-speakeasy-group": "PersonalClient",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Create creates a new PersonalClient object for the current User.",
        "operationId": "c1.api.iam.v1.PersonalClientService.Create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.iam.v1.PersonalClientServiceCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.iam.v1.PersonalClientServiceCreateResponse"
                }
              }
            },
            "description": "The PersonalClientServiceCreateResponse message contains the created personal client and client secret."
          }
        },
        "summary": "Create",
        "tags": [
          "Personal Client"
        ],
        "x-speakeasy-group": "PersonalClient",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/iam/personal_clients/{id}": {
      "delete": {
        "description": "Delete a personal client credential, revoking it and preventing further API access.",
        "operationId": "c1.api.iam.v1.PersonalClientService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The human-readable name of the personal client credential to delete (e.g., blue-whale-12345).",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.iam.v1.PersonalClientServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.iam.v1.PersonalClientServiceDeleteResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete",
        "tags": [
          "Personal Client"
        ],
        "x-speakeasy-group": "PersonalClient",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get retrieves a single personal client credential by its ID.",
        "operationId": "c1.api.iam.v1.PersonalClientService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The human-readable name of the personal client credential to retrieve (e.g., blue-whale-12345).",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.iam.v1.PersonalClientServiceGetResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "Personal Client"
        ],
        "x-speakeasy-group": "PersonalClient",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update modifies an existing personal client credential. Use the update mask to specify which fields to change.",
        "operationId": "c1.api.iam.v1.PersonalClientService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The unique ID of the personal client credential.",
              "readOnly": true,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.iam.v1.PersonalClientServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.iam.v1.PersonalClientServiceUpdateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update",
        "tags": [
          "Personal Client"
        ],
        "x-speakeasy-group": "PersonalClient",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/iam/personal_devices/{device_id}": {
      "delete": {
        "description": "RevokeDevice revokes a whole device: it revokes the device and removes every\n app client on it, so no app on that machine can mint further tokens.",
        "operationId": "c1.api.iam.v1.PersonalDeviceService.RevokeDevice",
        "parameters": [
          {
            "in": "path",
            "name": "device_id",
            "required": true,
            "schema": {
              "description": "The device identity of the device to revoke (whole-device).",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.iam.v1.PersonalDeviceServiceRevokeDeviceRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.iam.v1.PersonalDeviceServiceRevokeDeviceResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Revoke Device",
        "tags": [
          "Personal Device"
        ],
        "x-speakeasy-group": "PersonalDevice",
        "x-speakeasy-name-override": "RevokeDevice"
      },
      "get": {
        "description": "GetDevice retrieves a single device (by device_id) with its child clients.",
        "operationId": "c1.api.iam.v1.PersonalDeviceService.GetDevice",
        "parameters": [
          {
            "in": "path",
            "name": "device_id",
            "required": true,
            "schema": {
              "description": "The device identity (a base64url-encoded SHA-256 thumbprint of the device\n root key).",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.iam.v1.PersonalDeviceServiceGetDeviceResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Device",
        "tags": [
          "Personal Device"
        ],
        "x-speakeasy-group": "PersonalDevice",
        "x-speakeasy-name-override": "GetDevice"
      },
      "put": {
        "description": "UpdateDevice renames one of the calling user's devices. Use the update mask\n to specify which fields to change; only the display name is mutable, so\n device identity and keys never change.",
        "operationId": "c1.api.iam.v1.PersonalDeviceService.UpdateDevice",
        "parameters": [
          {
            "in": "path",
            "name": "device_id",
            "required": true,
            "schema": {
              "description": "The stable device identity: a base64url-encoded SHA-256 thumbprint of the\n device's root public signing key.",
              "readOnly": true,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.iam.v1.PersonalDeviceServiceUpdateDeviceRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.iam.v1.PersonalDeviceServiceUpdateDeviceResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "NOTE: Only updates devices owned by the current user.",
        "tags": [
          "Personal Device"
        ],
        "x-speakeasy-group": "PersonalDevice",
        "x-speakeasy-name-override": "UpdateDevice"
      }
    },
    "/api/v1/iam/personal_devices/{device_id}/clients": {
      "get": {
        "description": "ListDeviceClients returns the app clients registered on a device, one page at\n a time. A device can accrue many app clients over time, so the clients are\n served from this dedicated paginated endpoint rather than inlined on the\n device.",
        "operationId": "c1.api.iam.v1.PersonalDeviceService.ListDeviceClients",
        "parameters": [
          {
            "in": "path",
            "name": "device_id",
            "required": true,
            "schema": {
              "description": "The device identity (a base64url-encoded SHA-256 thumbprint of the device\n root key) whose clients to list.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.iam.v1.PersonalDeviceServiceListDeviceClientsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Device Clients",
        "tags": [
          "Personal Device"
        ],
        "x-speakeasy-group": "PersonalDevice",
        "x-speakeasy-name-override": "ListDeviceClients"
      }
    },
    "/api/v1/iam/personal_devices/{device_id}/clients/{id}": {
      "delete": {
        "description": "RevokeDeviceClient revokes a single app client on a device: it removes that\n client, leaving the device and its other clients intact.",
        "operationId": "c1.api.iam.v1.PersonalDeviceService.RevokeDeviceClient",
        "parameters": [
          {
            "in": "path",
            "name": "device_id",
            "required": true,
            "schema": {
              "description": "The device identity the client belongs to.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The human-readable ID of the client to revoke (e.g., blue-whale-12345).",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.iam.v1.PersonalDeviceServiceRevokeDeviceClientRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.iam.v1.PersonalDeviceServiceRevokeDeviceClientResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Revoke Device Client",
        "tags": [
          "Personal Device"
        ],
        "x-speakeasy-group": "PersonalDevice",
        "x-speakeasy-name-override": "RevokeDeviceClient"
      }
    },
    "/api/v1/iam/roles": {
      "get": {
        "description": "List all roles for the current user.",
        "operationId": "c1.api.iam.v1.Roles.List",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.iam.v1.ListRolesResponse"
                }
              }
            },
            "description": "The ListRolesResponse message contains a list of results and a nextPageToken if applicable."
          }
        },
        "summary": "List",
        "tags": [
          "Role"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": [
            "Role#read",
            "Roles#read"
          ],
          "terraform-resource": null
        },
        "x-speakeasy-group": "Roles",
        "x-speakeasy-name-override": "List"
      }
    },
    "/api/v1/iam/roles/{role_id}": {
      "get": {
        "description": "Get a role by id.",
        "operationId": "c1.api.iam.v1.Roles.Get",
        "parameters": [
          {
            "in": "path",
            "name": "role_id",
            "required": true,
            "schema": {
              "description": "The roleId field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.iam.v1.GetRolesResponse"
                }
              }
            },
            "description": "The GetRolesResponse message contains the retrieved role."
          }
        },
        "summary": "Get",
        "tags": [
          "Role"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": null,
          "terraform-resource": "Role#read"
        },
        "x-speakeasy-group": "Roles",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update a role by passing a Role object.",
        "operationId": "c1.api.iam.v1.Roles.Update",
        "parameters": [
          {
            "in": "path",
            "name": "role_id",
            "required": true,
            "schema": {
              "description": "The id of the role.",
              "readOnly": true,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.iam.v1.UpdateRoleRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.iam.v1.UpdateRolesResponse"
                }
              }
            },
            "description": "UpdateRolesResponse is the response message containing the updated role."
          }
        },
        "summary": "Update",
        "tags": [
          "Role"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Role#update"
        },
        "x-speakeasy-group": "Roles",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/iam/tunnel/bridges": {
      "get": {
        "description": "ListBridges returns the tenant's bridges, paginated, each with live\n appliance status.",
        "operationId": "c1.api.iam.v1.TunnelCredentialsService.ListBridges",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.iam.v1.TunnelCredentialsServiceListBridgesResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Bridges",
        "tags": [
          "Tunnel"
        ],
        "x-speakeasy-group": "TunnelCredentials",
        "x-speakeasy-name-override": "ListBridges"
      },
      "post": {
        "description": "CreateBridge creates a bridge with no credentials. Use\n CreateBridgeCredential to mint the first credential.",
        "operationId": "c1.api.iam.v1.TunnelCredentialsService.CreateBridge",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.iam.v1.TunnelCredentialsServiceCreateBridgeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.iam.v1.TunnelCredentialsServiceCreateBridgeResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create Bridge",
        "tags": [
          "Tunnel"
        ],
        "x-speakeasy-group": "TunnelCredentials",
        "x-speakeasy-name-override": "CreateBridge"
      }
    },
    "/api/v1/iam/tunnel/bridges/{bridge_id}/announced_services": {
      "get": {
        "description": "ListBridgeAnnouncedServices returns the services the appliance is\n currently announcing for this bridge. Read live from the tunnel store;\n empty when no appliance is connected.",
        "operationId": "c1.api.iam.v1.TunnelCredentialsService.ListBridgeAnnouncedServices",
        "parameters": [
          {
            "in": "path",
            "name": "bridge_id",
            "required": true,
            "schema": {
              "description": "The bridgeId field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.iam.v1.TunnelCredentialsServiceListBridgeAnnouncedServicesResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Bridge Announced Services",
        "tags": [
          "Tunnel"
        ],
        "x-speakeasy-group": "TunnelCredentials",
        "x-speakeasy-name-override": "ListBridgeAnnouncedServices"
      }
    },
    "/api/v1/iam/tunnel/bridges/{bridge_id}/credentials": {
      "get": {
        "description": "ListBridgeCredentials returns every credential (active + revoked) for\n one bridge.",
        "operationId": "c1.api.iam.v1.TunnelCredentialsService.ListBridgeCredentials",
        "parameters": [
          {
            "in": "path",
            "name": "bridge_id",
            "required": true,
            "schema": {
              "description": "The bridge whose credentials to list.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.iam.v1.TunnelCredentialsServiceListBridgeCredentialsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Bridge Credentials",
        "tags": [
          "Tunnel"
        ],
        "x-speakeasy-group": "TunnelCredentials",
        "x-speakeasy-name-override": "ListBridgeCredentials"
      },
      "post": {
        "description": "CreateBridgeCredential mints a credential for a bridge. If the bridge\n already has an active credential, it is revoked. The plaintext\n client_secret is returned exactly once on the response.",
        "operationId": "c1.api.iam.v1.TunnelCredentialsService.CreateBridgeCredential",
        "parameters": [
          {
            "in": "path",
            "name": "bridge_id",
            "required": true,
            "schema": {
              "description": "The bridge to mint a credential for.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.iam.v1.TunnelCredentialsServiceCreateBridgeCredentialRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.iam.v1.TunnelCredentialsServiceCreateBridgeCredentialResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create Bridge Credential",
        "tags": [
          "Tunnel"
        ],
        "x-speakeasy-group": "TunnelCredentials",
        "x-speakeasy-name-override": "CreateBridgeCredential"
      }
    },
    "/api/v1/iam/tunnel/bridges/{id}": {
      "delete": {
        "description": "DeleteBridge hard-deletes a bridge and every credential it owns.",
        "operationId": "c1.api.iam.v1.TunnelCredentialsService.DeleteBridge",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.iam.v1.TunnelCredentialsServiceDeleteBridgeRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.iam.v1.TunnelCredentialsServiceDeleteBridgeResponse"
                }
              }
            },
            "description": "Empty response body. Status code indicates success."
          }
        },
        "summary": "Delete Bridge",
        "tags": [
          "Tunnel"
        ],
        "x-speakeasy-group": "TunnelCredentials",
        "x-speakeasy-name-override": "DeleteBridge"
      },
      "get": {
        "description": "GetBridge returns a bridge by id with live appliance status.",
        "operationId": "c1.api.iam.v1.TunnelCredentialsService.GetBridge",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.iam.v1.TunnelCredentialsServiceGetBridgeResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Bridge",
        "tags": [
          "Tunnel"
        ],
        "x-speakeasy-group": "TunnelCredentials",
        "x-speakeasy-name-override": "GetBridge"
      },
      "patch": {
        "description": "UpdateBridge patches a bridge's editable metadata (display_name,\n description). Credentials are not affected.",
        "operationId": "c1.api.iam.v1.TunnelCredentialsService.UpdateBridge",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.iam.v1.TunnelCredentialsServiceUpdateBridgeRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.iam.v1.TunnelCredentialsServiceUpdateBridgeResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update Bridge",
        "tags": [
          "Tunnel"
        ],
        "x-speakeasy-group": "TunnelCredentials",
        "x-speakeasy-name-override": "UpdateBridge"
      }
    },
    "/api/v1/iam/tunnel/credentials/{id}": {
      "delete": {
        "description": "RevokeBridgeCredential soft-revokes one credential by id. The row is\n retained for audit; token mints with this credential are rejected.",
        "operationId": "c1.api.iam.v1.TunnelCredentialsService.RevokeBridgeCredential",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id of the credential to revoke.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.iam.v1.TunnelCredentialsServiceRevokeBridgeCredentialRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.iam.v1.TunnelCredentialsServiceRevokeBridgeCredentialResponse"
                }
              }
            },
            "description": "Empty response body. Status code indicates success."
          }
        },
        "summary": "Revoke Bridge Credential",
        "tags": [
          "Tunnel"
        ],
        "x-speakeasy-group": "TunnelCredentials",
        "x-speakeasy-name-override": "RevokeBridgeCredential"
      }
    },
    "/api/v1/llm-gateway/keys": {
      "get": {
        "description": "List returns the tenant's LLM gateway API keys. Only key metadata and a\n key prefix are returned, never the full key.",
        "operationId": "c1.api.llm_gateway.v1.GatewayKeyService.List",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.llm_gateway.v1.ListGatewayKeysResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List",
        "tags": [
          "LLM Gateway Keys"
        ],
        "x-speakeasy-group": "GatewayKey",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Mint creates a new LLM gateway API key. The key value is shown only in\n this response and cannot be retrieved again; store it immediately.",
        "operationId": "c1.api.llm_gateway.v1.GatewayKeyService.Mint",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.llm_gateway.v1.MintGatewayKeyRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.llm_gateway.v1.MintGatewayKeyResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Mint",
        "tags": [
          "LLM Gateway Keys"
        ],
        "x-speakeasy-group": "GatewayKey",
        "x-speakeasy-name-override": "Mint"
      }
    },
    "/api/v1/llm-gateway/keys/{id}": {
      "delete": {
        "description": "Revoke revokes an LLM gateway API key by ID. The key immediately stops\n authenticating gateway requests.",
        "operationId": "c1.api.llm_gateway.v1.GatewayKeyService.Revoke",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.llm_gateway.v1.RevokeGatewayKeyRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.llm_gateway.v1.RevokeGatewayKeyResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Revoke",
        "tags": [
          "LLM Gateway Keys"
        ],
        "x-speakeasy-group": "GatewayKey",
        "x-speakeasy-name-override": "Revoke"
      }
    },
    "/api/v1/llm-gateway/provider-credentials/{slot_id}": {
      "delete": {
        "description": "Clear deletes the provider credential stored in the given slot.",
        "operationId": "c1.api.llm_gateway.v1.ProviderCredentialService.Clear",
        "parameters": [
          {
            "in": "path",
            "name": "slot_id",
            "required": true,
            "schema": {
              "description": "The slotId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.llm_gateway.v1.ClearProviderCredentialRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.llm_gateway.v1.ClearProviderCredentialResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Clear",
        "tags": [
          "LLM Gateway Provider Credentials"
        ],
        "x-speakeasy-group": "ProviderCredential",
        "x-speakeasy-name-override": "Clear"
      },
      "get": {
        "description": "Get returns metadata for the provider credential in the given slot. The\n stored API key is never returned. Returns an empty response if no\n credential has ever been set for the slot; a cleared slot returns\n FAILED_PRECONDITION.",
        "operationId": "c1.api.llm_gateway.v1.ProviderCredentialService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "slot_id",
            "required": true,
            "schema": {
              "description": "The slotId field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.llm_gateway.v1.GetProviderCredentialResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "LLM Gateway Provider Credentials"
        ],
        "x-speakeasy-group": "ProviderCredential",
        "x-speakeasy-name-override": "Get"
      },
      "put": {
        "description": "Set stores or replaces the provider API key used by the LLM gateway for\n the given slot. The API key is stored encrypted and is never returned by\n the API.",
        "operationId": "c1.api.llm_gateway.v1.ProviderCredentialService.Set",
        "parameters": [
          {
            "in": "path",
            "name": "slot_id",
            "required": true,
            "schema": {
              "description": "The slotId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.llm_gateway.v1.SetProviderCredentialRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.llm_gateway.v1.SetProviderCredentialResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Set",
        "tags": [
          "LLM Gateway Provider Credentials"
        ],
        "x-speakeasy-group": "ProviderCredential",
        "x-speakeasy-name-override": "Set"
      }
    },
    "/api/v1/local-directory-configs": {
      "get": {
        "description": "List local directory configs for the tenant.",
        "operationId": "c1.api.local_directory.v1.LocalDirectoryConfigService.List",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.local_directory.v1.LocalDirectoryConfigServiceListResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List",
        "tags": [
          "Local Directory"
        ],
        "x-speakeasy-group": "LocalDirectoryConfig",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Create a new local directory config backed by an existing App.",
        "operationId": "c1.api.local_directory.v1.LocalDirectoryConfigService.Create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.local_directory.v1.LocalDirectoryConfigServiceCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.local_directory.v1.LocalDirectoryConfigServiceCreateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create",
        "tags": [
          "Local Directory"
        ],
        "x-speakeasy-group": "LocalDirectoryConfig",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/local-directory-configs/{app_id}": {
      "delete": {
        "description": "Delete a local directory config. Does not delete the underlying App.",
        "operationId": "c1.api.local_directory.v1.LocalDirectoryConfigService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.local_directory.v1.LocalDirectoryConfigServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.local_directory.v1.LocalDirectoryConfigServiceDeleteResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete",
        "tags": [
          "Local Directory"
        ],
        "x-speakeasy-group": "LocalDirectoryConfig",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get a local directory config by app_id.",
        "operationId": "c1.api.local_directory.v1.LocalDirectoryConfigService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.local_directory.v1.LocalDirectoryConfigServiceGetResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "Local Directory"
        ],
        "x-speakeasy-group": "LocalDirectoryConfig",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update a local directory config.",
        "operationId": "c1.api.local_directory.v1.LocalDirectoryConfigService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "app_id is the identifier for this config and its linked App. Read-only after creation.",
              "readOnly": true,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.local_directory.v1.LocalDirectoryConfigServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.local_directory.v1.LocalDirectoryConfigServiceUpdateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update",
        "tags": [
          "Local Directory"
        ],
        "x-speakeasy-group": "LocalDirectoryConfig",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/local-directory-configs/{directory_app_id}/invitations": {
      "post": {
        "description": "Create (send) a new invitation to a user.",
        "operationId": "c1.api.local_directory.v1.LocalUserInvitationService.Create",
        "parameters": [
          {
            "in": "path",
            "name": "directory_app_id",
            "required": true,
            "schema": {
              "description": "FK to the LocalDirectoryConfig (app_id) this invitation belongs to.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.local_directory.v1.LocalUserInvitationServiceCreateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.local_directory.v1.LocalUserInvitationServiceCreateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create",
        "tags": [
          "Local Directory"
        ],
        "x-speakeasy-group": "LocalUserInvitation",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/local-directory-configs/{directory_app_id}/invitations/{id}": {
      "get": {
        "description": "Get a specific invitation by id.",
        "operationId": "c1.api.local_directory.v1.LocalUserInvitationService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "directory_app_id",
            "required": true,
            "schema": {
              "description": "The directoryAppId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.local_directory.v1.LocalUserInvitationServiceGetResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "Local Directory"
        ],
        "x-speakeasy-group": "LocalUserInvitation",
        "x-speakeasy-name-override": "Get"
      }
    },
    "/api/v1/local-directory-configs/{directory_app_id}/invitations/{id}/revoke": {
      "post": {
        "description": "Revoke a pending invitation.",
        "operationId": "c1.api.local_directory.v1.LocalUserInvitationService.Revoke",
        "parameters": [
          {
            "in": "path",
            "name": "directory_app_id",
            "required": true,
            "schema": {
              "description": "The directoryAppId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.local_directory.v1.LocalUserInvitationServiceRevokeRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.local_directory.v1.LocalUserInvitationServiceRevokeResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Revoke",
        "tags": [
          "Local Directory"
        ],
        "x-speakeasy-group": "LocalUserInvitation",
        "x-speakeasy-name-override": "Revoke"
      }
    },
    "/api/v1/mcp_server_catalog": {
      "get": {
        "description": "ListCatalog returns all available MCP server catalog entries.",
        "operationId": "c1.api.ai_governance.v1.MCPServerService.ListCatalog",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Page size (max 100).",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Page token for pagination.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "query",
            "schema": {
              "description": "Optional text query to filter catalog entries by display name.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerServiceListCatalogResponse"
                }
              }
            },
            "description": "MCPServerServiceListCatalogResponse returns a paginated list of catalog entries."
          }
        },
        "summary": "List Catalog",
        "tags": [
          "MCP Servers"
        ],
        "x-speakeasy-group": "MCPServer",
        "x-speakeasy-name-override": "ListCatalog"
      }
    },
    "/api/v1/mcp_server_catalog/{catalog_id}": {
      "get": {
        "description": "GetCatalog retrieves a single MCP server catalog entry by ID.",
        "operationId": "c1.api.ai_governance.v1.MCPServerService.GetCatalog",
        "parameters": [
          {
            "in": "path",
            "name": "catalog_id",
            "required": true,
            "schema": {
              "description": "The catalogId field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerServiceGetCatalogResponse"
                }
              }
            },
            "description": "MCPServerServiceGetCatalogResponse returns a single catalog entry."
          }
        },
        "summary": "Get Catalog",
        "tags": [
          "MCP Servers"
        ],
        "x-speakeasy-group": "MCPServer",
        "x-speakeasy-name-override": "GetCatalog"
      }
    },
    "/api/v1/mcp_server_connections": {
      "get": {
        "description": "ListConnections returns per-user MCP servers the calling user can\n connect to, filtered to apps where the user has an account. Covers\n OAuth2 authorization-code passthrough as well as bearer-token /\n custom-header per-user methods. Includes per-user connection status.",
        "operationId": "c1.api.ai_governance.v1.MCPServerService.ListConnections",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Page size (max 100).",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Page token for pagination.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerServiceListConnectionsResponse"
                }
              }
            },
            "description": "MCPServerServiceListConnectionsResponse returns a list of passthrough-mode\n MCP servers with per-user connection status."
          }
        },
        "summary": "List Connections",
        "tags": [
          "MCP Servers"
        ],
        "x-speakeasy-group": "MCPServer",
        "x-speakeasy-name-override": "ListConnections"
      }
    },
    "/api/v1/mcp_servers/discover_oidc": {
      "post": {
        "description": "DiscoverOIDCEndpoints fetches the OpenID Connect discovery document for an issuer\n and returns the authorization, token, and supported scopes.",
        "operationId": "c1.api.ai_governance.v1.MCPServerService.DiscoverOIDCEndpoints",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerServiceDiscoverOIDCEndpointsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerServiceDiscoverOIDCEndpointsResponse"
                }
              }
            },
            "description": "MCPServerServiceDiscoverOIDCEndpointsResponse returns the discovered OAuth2 endpoints."
          }
        },
        "summary": "Discover Oidc Endpoints",
        "tags": [
          "MCP Servers"
        ],
        "x-speakeasy-group": "MCPServer",
        "x-speakeasy-name-override": "DiscoverOIDCEndpoints"
      }
    },
    "/api/v1/mcp_servers/test_connection": {
      "post": {
        "description": "TestConnection probes an MCP server with the\n supplied URL + transport + plaintext credentials and reports\n whether a real MCP initialize + tools/list succeeded.",
        "operationId": "c1.api.ai_governance.v1.MCPServerService.TestConnection",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerServiceTestConnectionRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPServerServiceTestConnectionResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Test Connection",
        "tags": [
          "MCP Servers"
        ],
        "x-speakeasy-group": "MCPServer",
        "x-speakeasy-name-override": "TestConnection"
      }
    },
    "/api/v1/mcp_toolsets/search": {
      "get": {
        "description": "SearchAccessProfiles returns the tenant's MCP toolsets (access profiles)\n across every (app_id, connector_id), filtered by a case-insensitive search\n over display_name and paginated. Backs the agent-config multi-select that\n binds toolsets to a ClawAgent.",
        "operationId": "c1.api.ai_governance.v1.MCPAccessProfileService.SearchAccessProfiles",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Page size (max 100).",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Page token for pagination.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "query",
            "schema": {
              "description": "Case-insensitive search over the profile display name; empty returns all.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfileServiceSearchAccessProfilesResponse"
                }
              }
            },
            "description": "MCPAccessProfileServiceSearchAccessProfilesResponse returns one page of\n tenant-wide MCP access profiles."
          }
        },
        "summary": "Search Access Profiles",
        "tags": [
          "MCP Toolsets"
        ],
        "x-speakeasy-group": "MCPAccessProfile",
        "x-speakeasy-name-override": "SearchAccessProfiles"
      }
    },
    "/api/v1/policies": {
      "get": {
        "description": "List policies.",
        "operationId": "c1.api.policy.v1.Policies.List",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.policy.v1.ListPolicyResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List",
        "tags": [
          "Policy"
        ],
        "x-speakeasy-group": "Policies",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Create a policy.",
        "operationId": "c1.api.policy.v1.Policies.Create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.policy.v1.CreatePolicyRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.policy.v1.CreatePolicyResponse"
                }
              }
            },
            "description": "The CreatePolicyResponse message contains the created policy object."
          }
        },
        "summary": "Create",
        "tags": [
          "Policy"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Policy#create"
        },
        "x-speakeasy-group": "Policies",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/policies/test-account-provision-policy": {
      "post": {
        "description": "Test an account provision policy by evaluating a CEL expression and returning the computed result.",
        "operationId": "c1.api.policy.v1.AccountProvisionPolicyTest.Test",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.policy.v1.TestAccountProvisionPolicyRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.policy.v1.TestAccountProvisionPolicyResponse"
                }
              }
            },
            "description": "TestAccountProvisionPolicyResponse is the response for testing an account provision policy."
          }
        },
        "summary": "Test",
        "tags": [
          "Policy"
        ],
        "x-speakeasy-group": "AccountProvisionPolicyTest",
        "x-speakeasy-name-override": "Test"
      }
    },
    "/api/v1/policies/validate/cel": {
      "post": {
        "description": "Validate policies",
        "operationId": "c1.api.policy.v1.PolicyValidate.ValidateCEL",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.policy.v1.EditorValidateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.policy.v1.EditorValidateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Validate Cel",
        "tags": [
          "Policy"
        ],
        "x-speakeasy-group": "PolicyValidate",
        "x-speakeasy-name-override": "ValidateCEL"
      }
    },
    "/api/v1/policies/{id}": {
      "delete": {
        "description": "Delete a policy by ID.",
        "operationId": "c1.api.policy.v1.Policies.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The Id of the policy to delete.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.policy.v1.DeletePolicyRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.policy.v1.DeletePolicyResponse"
                }
              }
            },
            "description": "Empty response with a status code indicating success."
          }
        },
        "summary": "Delete",
        "tags": [
          "Policy"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Policy#delete"
        },
        "x-speakeasy-group": "Policies",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get a policy by ID.",
        "operationId": "c1.api.policy.v1.Policies.Get",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.policy.v1.GetPolicyResponse"
                }
              }
            },
            "description": "The GetPolicyResponse message contains the policy object."
          }
        },
        "summary": "Get",
        "tags": [
          "Policy"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": null,
          "terraform-resource": "Policy#read"
        },
        "x-speakeasy-group": "Policies",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update a policy by providing a policy object and an update mask.",
        "operationId": "c1.api.policy.v1.Policies.Update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the Policy.",
              "readOnly": true,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.policy.v1.UpdatePolicyRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.policy.v1.UpdatePolicyResponse"
                }
              }
            },
            "description": "The UpdatePolicyResponse message contains the updated policy object."
          }
        },
        "summary": "Update",
        "tags": [
          "Policy"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Policy#update"
        },
        "x-speakeasy-group": "Policies",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/recovery-policies": {
      "get": {
        "description": "List all recovery policies in your tenant, one page at a time.",
        "operationId": "c1.api.credential_inventory.v1.RecoveryPolicyService.List",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The maximum number of results to return per page.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "A pagination token from a previous List response.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.credential_inventory.v1.RecoveryPolicyServiceListResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List",
        "tags": [
          "Recovery Policy"
        ],
        "x-speakeasy-group": "RecoveryPolicy",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Create a recovery policy.",
        "operationId": "c1.api.credential_inventory.v1.RecoveryPolicyService.Create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.credential_inventory.v1.RecoveryPolicyServiceCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.credential_inventory.v1.RecoveryPolicyServiceCreateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create",
        "tags": [
          "Recovery Policy"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "RecoveryPolicy#create"
        },
        "x-speakeasy-group": "RecoveryPolicy",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/recovery-policies/{id}": {
      "delete": {
        "description": "Delete a recovery policy by ID.",
        "operationId": "c1.api.credential_inventory.v1.RecoveryPolicyService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the policy to delete.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.credential_inventory.v1.RecoveryPolicyServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.credential_inventory.v1.RecoveryPolicyServiceDeleteResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete",
        "tags": [
          "Recovery Policy"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "RecoveryPolicy#delete"
        },
        "x-speakeasy-group": "RecoveryPolicy",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get a recovery policy by ID.",
        "operationId": "c1.api.credential_inventory.v1.RecoveryPolicyService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the policy to retrieve.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.credential_inventory.v1.RecoveryPolicyServiceGetResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "Recovery Policy"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": null,
          "terraform-resource": "RecoveryPolicy#read"
        },
        "x-speakeasy-group": "RecoveryPolicy",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update a recovery policy. Supply the policy object and an update mask\n listing the fields to change; omitted fields are left as-is.",
        "operationId": "c1.api.credential_inventory.v1.RecoveryPolicyService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Unique identifier for the policy.",
              "readOnly": true,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.credential_inventory.v1.RecoveryPolicyServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.credential_inventory.v1.RecoveryPolicyServiceUpdateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update",
        "tags": [
          "Recovery Policy"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "RecoveryPolicy#update"
        },
        "x-speakeasy-group": "RecoveryPolicy",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/reporting/reports": {
      "get": {
        "description": "List returns every report in the tenant, newest first, each carrying the\n user who saved it. It is not filtered by author.",
        "operationId": "c1.api.reporting.v1.ReportingService.List",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.reporting.v1.ReportingServiceListResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List",
        "tags": [
          "Report"
        ],
        "x-speakeasy-group": "Reporting",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Save copies the program behind an already-rendered reporting surface into\n a report. The caller identifies the surface; the server resolves which\n program produced it. There is no create-from-prompt: the prompt has already\n been answered by the time a report is worth keeping.",
        "operationId": "c1.api.reporting.v1.ReportingService.Save",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.reporting.v1.ReportingServiceSaveRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.reporting.v1.ReportingServiceSaveResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Save",
        "tags": [
          "Report"
        ],
        "x-speakeasy-group": "Reporting",
        "x-speakeasy-name-override": "Save"
      }
    },
    "/api/v1/reporting/reports/{id}": {
      "delete": {
        "description": "Delete removes a report by ID. The report's saved program is removed with\n it, so the report can no longer be re-run. Any caller holding this\n permission may delete any report in the tenant; the read-only\n administrator's role does not carry it.",
        "operationId": "c1.api.reporting.v1.ReportingService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.reporting.v1.ReportingServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.reporting.v1.ReportingServiceDeleteResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete",
        "tags": [
          "Report"
        ],
        "x-speakeasy-group": "Reporting",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get returns a report by ID, including its latest run and latest successful\n run. Reports are not scoped by author: reaching this service is the scope,\n and only tenant administrators hold its roles.",
        "operationId": "c1.api.reporting.v1.ReportingService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.reporting.v1.ReportingServiceGetResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "Report"
        ],
        "x-speakeasy-group": "Reporting",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update modifies a report's display name, prompt, or parameter values. Any\n caller holding this permission may update any report in the tenant; the\n read-only administrator's role does not carry it.",
        "operationId": "c1.api.reporting.v1.ReportingService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.reporting.v1.ReportingServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.reporting.v1.ReportingServiceUpdateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update",
        "tags": [
          "Report"
        ],
        "x-speakeasy-group": "Reporting",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/reporting/reports/{id}/program": {
      "get": {
        "description": "GetProgram returns the report's current durable source without attaching it\n to the notification-driven report response. Scoped like Get: any caller who\n may reach this service.",
        "operationId": "c1.api.reporting.v1.ReportingService.GetProgram",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "program_id",
            "schema": {
              "description": "The programId field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.reporting.v1.ReportingServiceGetProgramResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Program",
        "tags": [
          "Report"
        ],
        "x-speakeasy-group": "Reporting",
        "x-speakeasy-name-override": "GetProgram"
      }
    },
    "/api/v1/reporting/reports/{id}/run": {
      "post": {
        "description": "Run re-executes the report's pinned program against today's data. It never\n re-plans: the commit is fixed, so a rerun can only change the numbers, not\n the question. Returns as soon as the invocation starts — see the response.",
        "operationId": "c1.api.reporting.v1.ReportingService.Run",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.reporting.v1.ReportingServiceRunRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.reporting.v1.ReportingServiceRunResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Run",
        "tags": [
          "Report"
        ],
        "x-speakeasy-group": "Reporting",
        "x-speakeasy-name-override": "Run"
      }
    },
    "/api/v1/reporting/reports/{id}/runs/{run_id}/provenance": {
      "get": {
        "description": "GetRunProvenance explains a run: what it read, what its program looked at,\n and the program itself. A2UIService.GetSurfaceProvenance answers the same\n question for a surface, but needs a live one — and a rerun is headless, so\n a report would become less explainable every time it refreshed.",
        "operationId": "c1.api.reporting.v1.ReportingService.GetRunProvenance",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "description": "The runId field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.reporting.v1.ReportingServiceGetRunProvenanceResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Run Provenance",
        "tags": [
          "Report"
        ],
        "x-speakeasy-group": "Reporting",
        "x-speakeasy-name-override": "GetRunProvenance"
      }
    },
    "/api/v1/request_schema_entitlement_binding": {
      "delete": {
        "description": "Remove the link between a request schema and a single app entitlement.",
        "operationId": "c1.api.request_schema.v1.RequestSchemaService.RemoveEntitlementBinding",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.request_schema.v1.RequestSchemaServiceRemoveEntitlementBindingRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.request_schema.v1.RequestSchemaServiceRemoveEntitlementBindingResponse"
                }
              }
            },
            "description": "The response message for removing a single entitlement binding."
          }
        },
        "summary": "Remove Entitlement Binding",
        "tags": [
          "Request Schema Entitlement Binding"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Request Schema Entitlement Binding#delete"
        },
        "x-speakeasy-group": "RequestSchema",
        "x-speakeasy-name-override": "RemoveEntitlementBinding"
      },
      "post": {
        "description": "Link a request schema to a single app entitlement so the form is shown when requesting that entitlement.",
        "operationId": "c1.api.request_schema.v1.RequestSchemaService.CreateEntitlementBinding",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.request_schema.v1.RequestSchemaServiceCreateEntitlementBindingRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.request_schema.v1.RequestSchemaServiceCreateEntitlementBindingResponse"
                }
              }
            },
            "description": "The response message for creating a single entitlement binding."
          }
        },
        "summary": "Create Entitlement Binding",
        "tags": [
          "Request Schema Entitlement Binding"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Request Schema Entitlement Binding#create"
        },
        "x-speakeasy-group": "RequestSchema",
        "x-speakeasy-name-override": "CreateEntitlementBinding"
      },
      "put": {
        "description": "Look up which request schema is bound to a given app entitlement.",
        "operationId": "c1.api.request_schema.v1.RequestSchemaService.FindBindingForAppEntitlement",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.request_schema.v1.RequestSchemaServiceFindBindingForAppEntitlementRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.request_schema.v1.RequestSchemaServiceFindBindingForAppEntitlementResponse"
                }
              }
            },
            "description": "The response message containing the binding for the specified app entitlement."
          }
        },
        "summary": "Find Binding For App Entitlement",
        "tags": [
          "Request Schema Entitlement Binding"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "Request Schema Entitlement Binding#read",
          "terraform-resource": "Request Schema Entitlement Binding#read"
        },
        "x-speakeasy-group": "RequestSchema",
        "x-speakeasy-name-override": "FindBindingForAppEntitlement"
      }
    },
    "/api/v1/request_schemas": {
      "post": {
        "description": "Create a new request schema that defines a form template for access requests.",
        "operationId": "c1.api.request_schema.v1.RequestSchemaService.Create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.request_schema.v1.RequestSchemaServiceCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.request_schema.v1.RequestSchemaServiceCreateResponse"
                }
              }
            },
            "description": "The response message for creating a request schema."
          }
        },
        "summary": "Create",
        "tags": [
          "Request Schema"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Request_Schema#create"
        },
        "x-speakeasy-group": "RequestSchema",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/request_schemas/{request_schema_id}": {
      "delete": {
        "description": "Delete a request schema by ID. Associated entitlement bindings are also deleted.",
        "operationId": "c1.api.request_schema.v1.RequestSchemaService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "request_schema_id",
            "required": true,
            "schema": {
              "description": "The unique identifier of the request schema to delete.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.request_schema.v1.RequestSchemaServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.request_schema.v1.RequestSchemaServiceDeleteResponse"
                }
              }
            },
            "description": "The response message for deleting a request schema."
          }
        },
        "summary": "Delete",
        "tags": [
          "Request Schema"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Request_Schema#delete"
        },
        "x-speakeasy-group": "RequestSchema",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Retrieve a single request schema by ID.",
        "operationId": "c1.api.request_schema.v1.RequestSchemaService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "request_schema_id",
            "required": true,
            "schema": {
              "description": "The unique identifier of the request schema to retrieve.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.request_schema.v1.RequestSchemaServiceGetResponse"
                }
              }
            },
            "description": "The response message for retrieving a request schema."
          }
        },
        "summary": "Get",
        "tags": [
          "Request Schema"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "Request_Schema#read",
          "terraform-resource": "Request_Schema#read"
        },
        "x-speakeasy-group": "RequestSchema",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update an existing request schema's form definition or settings.",
        "operationId": "c1.api.request_schema.v1.RequestSchemaService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "request_schema_id",
            "required": true,
            "schema": {
              "description": "The unique identifier of this request schema.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.request_schema.v1.RequestSchemaServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.request_schema.v1.RequestSchemaServiceUpdateResponse"
                }
              }
            },
            "description": "The response message for updating a request schema."
          }
        },
        "summary": "Update",
        "tags": [
          "Request Schema"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Request_Schema#update"
        },
        "x-speakeasy-group": "RequestSchema",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/role-mining/access-profiles": {
      "post": {
        "description": "CreateAccessProfileFromCohort creates an access profile from a cohort definition,\n adds the specified entitlements, and sets up dynamic membership automation using\n a CEL expression derived from the profile filters.",
        "operationId": "c1.api.role_mining_management.v1.RoleMiningManagementService.CreateAccessProfileFromCohort",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.role_mining_management.v1.CreateAccessProfileFromCohortRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.role_mining_management.v1.CreateAccessProfileFromCohortResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create Access Profile From Cohort",
        "tags": [
          "Role Mining"
        ],
        "x-speakeasy-group": "RoleMiningManagement",
        "x-speakeasy-name-override": "CreateAccessProfileFromCohort"
      }
    },
    "/api/v1/role-mining/config": {
      "get": {
        "description": "Retrieve the current role mining configuration, including cohort hints and threshold settings.",
        "operationId": "c1.api.role_mining_management.v1.RoleMiningManagementService.GetRoleMiningConfig",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.role_mining_management.v1.GetRoleMiningConfigResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Role Mining Config",
        "tags": [
          "Role Mining"
        ],
        "x-speakeasy-group": "RoleMiningManagement",
        "x-speakeasy-name-override": "GetRoleMiningConfig"
      },
      "post": {
        "description": "Update the role mining configuration, such as cohort hints, max suggestions, and minimum cohort size.",
        "operationId": "c1.api.role_mining_management.v1.RoleMiningManagementService.UpdateRoleMiningConfig",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.role_mining_management.v1.UpdateRoleMiningConfigRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.role_mining_management.v1.UpdateRoleMiningConfigResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update Role Mining Config",
        "tags": [
          "Role Mining"
        ],
        "x-speakeasy-group": "RoleMiningManagement",
        "x-speakeasy-name-override": "UpdateRoleMiningConfig"
      }
    },
    "/api/v1/role-mining/custom-analysis": {
      "get": {
        "description": "List recent custom analysis results in reverse chronological order.",
        "operationId": "c1.api.role_mining_management.v1.RoleMiningManagementService.ListCustomAnalysisResults",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.role_mining_management.v1.ListCustomAnalysisResultsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Custom Analysis Results",
        "tags": [
          "Role Mining"
        ],
        "x-speakeasy-group": "RoleMiningManagement",
        "x-speakeasy-name-override": "ListCustomAnalysisResults"
      }
    },
    "/api/v1/role-mining/custom-analysis/latest": {
      "get": {
        "description": "GetLatestCustomAnalysisResult returns the authenticated user's latest\n accepted custom analysis result, if one exists.",
        "operationId": "c1.api.role_mining_management.v1.RoleMiningManagementService.GetLatestCustomAnalysisResult",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.role_mining_management.v1.GetLatestCustomAnalysisResultResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Latest Custom Analysis Result",
        "tags": [
          "Role Mining"
        ],
        "x-speakeasy-group": "RoleMiningManagement",
        "x-speakeasy-name-override": "GetLatestCustomAnalysisResult"
      }
    },
    "/api/v1/role-mining/custom-analysis/trigger": {
      "post": {
        "description": "TriggerCustomAnalysis starts an asynchronous custom cohort analysis defined\n by the given profile filters and returns the ID of the analysis result.\n Requires the agentic role mining feature. Poll GetCustomAnalysisResult\n until the analysis completes.",
        "operationId": "c1.api.role_mining_management.v1.RoleMiningManagementService.TriggerCustomAnalysis",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.role_mining_management.v1.TriggerCustomAnalysisRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.role_mining_management.v1.TriggerCustomAnalysisResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Trigger Custom Analysis",
        "tags": [
          "Role Mining"
        ],
        "x-speakeasy-group": "RoleMiningManagement",
        "x-speakeasy-name-override": "TriggerCustomAnalysis"
      }
    },
    "/api/v1/role-mining/custom-analysis/{analysis_id}/evaluate-entitlement-selection": {
      "post": {
        "description": "Evaluate the exact cohort impact of an entitlement cutoff and manual overrides.\n The analysis determines the eligible entitlements and cohort definition.",
        "operationId": "c1.api.role_mining_management.v1.RoleMiningManagementService.EvaluateEntitlementSelection",
        "parameters": [
          {
            "in": "path",
            "name": "analysis_id",
            "required": true,
            "schema": {
              "description": "Custom analysis whose cohort and entitlement results define the selection.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.role_mining_management.v1.EvaluateEntitlementSelectionRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.role_mining_management.v1.EvaluateEntitlementSelectionResponse"
                }
              }
            },
            "description": "EvaluateEntitlementSelectionResponse contains the exact impact of the\n resolved entitlement selection."
          }
        },
        "summary": "Evaluate Entitlement Selection",
        "tags": [
          "Role Mining"
        ],
        "x-speakeasy-group": "RoleMiningManagement",
        "x-speakeasy-name-override": "EvaluateEntitlementSelection"
      }
    },
    "/api/v1/role-mining/custom-analysis/{id}": {
      "get": {
        "description": "GetCustomAnalysisResult returns the status and results of a custom cohort\n analysis started with TriggerCustomAnalysis, including entitlement\n coverage, entitlement clusters, attribute facets, and cutoff impact\n points. Requires the agentic role mining feature.",
        "operationId": "c1.api.role_mining_management.v1.RoleMiningManagementService.GetCustomAnalysisResult",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.role_mining_management.v1.GetCustomAnalysisResultResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Custom Analysis Result",
        "tags": [
          "Role Mining"
        ],
        "x-speakeasy-group": "RoleMiningManagement",
        "x-speakeasy-name-override": "GetCustomAnalysisResult"
      }
    },
    "/api/v1/role-mining/custom-analysis/{selection_analysis_id}/filter-attributes/{attribute}/value-counts": {
      "post": {
        "description": "CountEntitlementSelectionFilterAttributeValues returns exact cohort and\n selected-holder counts for one bounded page of custom attribute values.",
        "operationId": "c1.api.role_mining_management.v1.RoleMiningManagementService.CountEntitlementSelectionFilterAttributeValues",
        "parameters": [
          {
            "in": "path",
            "name": "selection_analysis_id",
            "required": true,
            "schema": {
              "description": "Custom analysis whose cohort and entitlement results define the selection.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "attribute",
            "required": true,
            "schema": {
              "description": "The attribute field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.role_mining_management.v1.CountEntitlementSelectionFilterAttributeValuesRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.role_mining_management.v1.CountEntitlementSelectionFilterAttributeValuesResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Count Entitlement Selection Filter Attribute Values",
        "tags": [
          "Role Mining"
        ],
        "x-speakeasy-group": "RoleMiningManagement",
        "x-speakeasy-name-override": "CountEntitlementSelectionFilterAttributeValues"
      }
    },
    "/api/v1/role-mining/filter-attributes": {
      "get": {
        "description": "ListCohortFilterAttributes is the catalog used by the custom-analysis\n editor. It is intentionally independent from value enumeration.",
        "operationId": "c1.api.role_mining_management.v1.RoleMiningManagementService.ListCohortFilterAttributes",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.role_mining_management.v1.ListCohortFilterAttributesResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Cohort Filter Attributes",
        "tags": [
          "Role Mining"
        ],
        "x-speakeasy-group": "RoleMiningManagement",
        "x-speakeasy-name-override": "ListCohortFilterAttributes"
      }
    },
    "/api/v1/role-mining/filter-attributes/{attribute}/values": {
      "get": {
        "description": "ListCohortFilterAttributeValues pages one attribute's values for the\n custom-analysis editor.",
        "operationId": "c1.api.role_mining_management.v1.RoleMiningManagementService.ListCohortFilterAttributeValues",
        "parameters": [
          {
            "in": "path",
            "name": "attribute",
            "required": true,
            "schema": {
              "description": "The attribute field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "q",
            "schema": {
              "description": "The query field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.role_mining_management.v1.ListCohortFilterAttributeValuesResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Cohort Filter Attribute Values",
        "tags": [
          "Role Mining"
        ],
        "x-speakeasy-group": "RoleMiningManagement",
        "x-speakeasy-name-override": "ListCohortFilterAttributeValues"
      }
    },
    "/api/v1/role-mining/runs": {
      "get": {
        "description": "List role mining analysis runs in reverse chronological order.",
        "operationId": "c1.api.role_mining_management.v1.RoleMiningManagementService.ListRuns",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.role_mining_management.v1.ListRunsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Runs",
        "tags": [
          "Role Mining"
        ],
        "x-speakeasy-group": "RoleMiningManagement",
        "x-speakeasy-name-override": "ListRuns"
      }
    },
    "/api/v1/role-mining/runs/latest": {
      "get": {
        "description": "Retrieve the most recent role mining analysis run, including its status and results summary.",
        "operationId": "c1.api.role_mining_management.v1.RoleMiningManagementService.GetLatestRun",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.role_mining_management.v1.GetLatestRunResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Latest Run",
        "tags": [
          "Role Mining"
        ],
        "x-speakeasy-group": "RoleMiningManagement",
        "x-speakeasy-name-override": "GetLatestRun"
      }
    },
    "/api/v1/role-mining/suggestions": {
      "get": {
        "description": "List role suggestions generated by analysis runs, optionally filtered by state.",
        "operationId": "c1.api.role_mining_management.v1.RoleMiningManagementService.ListSuggestions",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.role_mining_management.v1.ListSuggestionsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Suggestions",
        "tags": [
          "Role Mining"
        ],
        "x-speakeasy-group": "RoleMiningManagement",
        "x-speakeasy-name-override": "ListSuggestions"
      }
    },
    "/api/v1/role-mining/suggestions/{id}": {
      "get": {
        "description": "Retrieve a single role suggestion by ID, including its cohort filters, entitlements, and confidence score.",
        "operationId": "c1.api.role_mining_management.v1.RoleMiningManagementService.GetSuggestion",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the role mining suggestion to retrieve.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.role_mining_management.v1.GetSuggestionResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Suggestion",
        "tags": [
          "Role Mining"
        ],
        "x-speakeasy-group": "RoleMiningManagement",
        "x-speakeasy-name-override": "GetSuggestion"
      }
    },
    "/api/v1/role-mining/suggestions/{id}/state": {
      "post": {
        "description": "Transition a role suggestion to a new state, such as accepted, rejected, or dismissed.",
        "operationId": "c1.api.role_mining_management.v1.RoleMiningManagementService.UpdateSuggestionState",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the role mining suggestion to update.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.role_mining_management.v1.UpdateSuggestionStateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.role_mining_management.v1.UpdateSuggestionStateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update Suggestion State",
        "tags": [
          "Role Mining"
        ],
        "x-speakeasy-group": "RoleMiningManagement",
        "x-speakeasy-name-override": "UpdateSuggestionState"
      }
    },
    "/api/v1/role-mining/suggestions/{suggestion_id}/users": {
      "post": {
        "description": "Search for users that belong to a suggestion's cohort, with optional additional profile filters.",
        "operationId": "c1.api.role_mining_management.v1.RoleMiningManagementService.SearchCohortUsers",
        "parameters": [
          {
            "in": "path",
            "name": "suggestion_id",
            "required": true,
            "schema": {
              "description": "The ID of the suggestion whose cohort to search within.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.role_mining_management.v1.SearchCohortUsersRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.role_mining_management.v1.SearchCohortUsersResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Search Cohort Users",
        "tags": [
          "Role Mining"
        ],
        "x-speakeasy-group": "RoleMiningManagement",
        "x-speakeasy-name-override": "SearchCohortUsers"
      }
    },
    "/api/v1/role-mining/trigger": {
      "post": {
        "description": "Start a new role mining analysis job that scans existing access patterns to generate role suggestions.",
        "operationId": "c1.api.role_mining_management.v1.RoleMiningManagementService.TriggerAnalysis",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.role_mining_management.v1.TriggerAnalysisRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.role_mining_management.v1.TriggerAnalysisResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Trigger Analysis",
        "tags": [
          "Role Mining"
        ],
        "x-speakeasy-group": "RoleMiningManagement",
        "x-speakeasy-name-override": "TriggerAnalysis"
      }
    },
    "/api/v1/search/all_automation_executions": {
      "post": {
        "description": "Search across all automation executions in the tenant, with filters for state, template, app, and subject user.\n Each AutomationExecutionView row is large — request a small page_size (≤10) and set expand_mask to only the paths you need; broad expansion inlines whole related objects and bloats the response.",
        "operationId": "c1.api.automations.v1.AutomationExecutionSearchService.SearchAllAutomationExecutions",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.automations.v1.SearchAllAutomationExecutionsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.automations.v1.SearchAllAutomationExecutionsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Search All Automation Executions",
        "tags": [
          "Automations"
        ],
        "x-speakeasy-group": "AutomationExecutionSearch",
        "x-speakeasy-name-override": "SearchAllAutomationExecutions"
      }
    },
    "/api/v1/search/app-secrets/my-vended-credentials": {
      "post": {
        "description": "Lists credentials C1 issued to the signed-in requester. This is separate\n from the general secret inventory because a connector can discover other\n secret resources on the same account.",
        "operationId": "c1.api.app.v1.AppSecretSearch.SearchMyVendedCredentials",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.SearchMyVendedCredentialsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.SearchAppSecretsWithAlertCountResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Search My Vended Credentials",
        "tags": [
          "App Secrets"
        ],
        "x-speakeasy-group": "AppSecretSearch",
        "x-speakeasy-name-override": "SearchMyVendedCredentials",
        "x-stability-level": "beta"
      }
    },
    "/api/v1/search/app_resource_types": {
      "post": {
        "description": "Search app resources based on filters specified in the request body.",
        "operationId": "c1.api.app.v1.AppResourceSearch.SearchAppResourceTypes",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.SearchAppResourceTypesRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.SearchAppResourceTypesResponse"
                }
              }
            },
            "description": "The SearchAppResourceTypesResponse message contains a list of results and a nextPageToken if applicable."
          }
        },
        "summary": "Search App Resource Types",
        "tags": [
          "App Resource"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": [
            "App Resource Type#read",
            "App Resource Types#read"
          ],
          "terraform-resource": null
        },
        "x-speakeasy-group": "AppResourceSearch",
        "x-speakeasy-name-override": "SearchAppResourceTypes",
        "x-speakeasy-pagination": {
          "inputs": [
            {
              "in": "requestBody",
              "name": "pageToken",
              "type": "cursor"
            }
          ],
          "outputs": {
            "nextCursor": "$.nextPageToken"
          },
          "type": "cursor"
        }
      }
    },
    "/api/v1/search/app_resources": {
      "post": {
        "description": "Search app resources based on filters specified in the request body.",
        "operationId": "c1.api.app.v1.AppResourceSearch.SearchAppResources",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.SearchAppResourcesRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.SearchAppResourcesResponse"
                }
              }
            },
            "description": "The SearchAppResourcesResponse message contains a list of results and a nextPageToken if applicable."
          }
        },
        "summary": "Search App Resources",
        "tags": [
          "App Resource"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "App Resources#read",
          "terraform-resource": null
        },
        "x-speakeasy-group": "AppResourceSearch",
        "x-speakeasy-name-override": "SearchAppResources",
        "x-speakeasy-pagination": {
          "inputs": [
            {
              "in": "requestBody",
              "name": "pageToken",
              "type": "cursor"
            }
          ],
          "outputs": {
            "nextCursor": "$.nextPageToken"
          },
          "type": "cursor"
        }
      }
    },
    "/api/v1/search/app_users": {
      "post": {
        "description": "Search app users based on filters specified in the request body.",
        "operationId": "c1.api.app.v1.AppUserService.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.AppUserServiceSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.AppUserServiceSearchResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Search",
        "tags": [
          "AppUsers"
        ],
        "x-speakeasy-group": "AppUser",
        "x-speakeasy-name-override": "Search"
      }
    },
    "/api/v1/search/apps": {
      "post": {
        "description": "Search apps based on filters specified in the request body.",
        "operationId": "c1.api.app.v1.AppSearch.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.SearchAppsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.SearchAppsResponse"
                }
              }
            },
            "description": "The SearchAppsResponse message contains a list of results and a nextPageToken if applicable."
          }
        },
        "summary": "Search",
        "tags": [
          "App"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": [
            "App#read",
            "Apps#read"
          ],
          "terraform-resource": null
        },
        "x-speakeasy-group": "AppSearch",
        "x-speakeasy-name-override": "Search",
        "x-speakeasy-pagination": {
          "inputs": [
            {
              "in": "requestBody",
              "name": "pageToken",
              "type": "cursor"
            }
          ],
          "outputs": {
            "nextCursor": "$.nextPageToken"
          },
          "type": "cursor"
        }
      }
    },
    "/api/v1/search/apps/{app_id}/entitlements/users/{app_user_id}": {
      "get": {
        "description": "Search for app entitlements associated with a specific app user, with optional resource type trait filtering.\n Each AppEntitlementView row is large — request a small page_size (≤10) and set expand_mask to only the paths you need; broad expansion inlines whole related objects and bloats the response.",
        "operationId": "c1.api.app.v1.AppEntitlementSearchService.SearchAppEntitlementsForAppUser",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The ID of the app to search entitlements within.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_user_id",
            "required": true,
            "schema": {
              "description": "The ID of the app user to search entitlements for.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.ListAppEntitlementsResponse"
                }
              }
            },
            "description": "The ListAppEntitlementsResponse message contains a list of results and a nextPageToken if applicable."
          }
        },
        "summary": "Search App Entitlements For App User",
        "tags": [
          "App Entitlement"
        ],
        "x-speakeasy-group": "AppEntitlementSearch",
        "x-speakeasy-name-override": "SearchAppEntitlementsForAppUser"
      }
    },
    "/api/v1/search/artifacts": {
      "post": {
        "description": "Search returns currently authorized Artifacts matching catalog text and tags.\n Discovery is eventual; newly granted access may appear later than a direct Get.",
        "operationId": "c1.api.artifact.v1.ArtifactService.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.artifact.v1.ArtifactServiceSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.artifact.v1.ArtifactServiceSearchResponse"
                }
              }
            },
            "description": "ArtifactServiceSearchResponse contains only currently authorized metadata.\n Readers see published Artifacts; Owners may also see their unpublished entries.\n No raw candidate totals, denied/scanned counts or global facets are exposed."
          }
        },
        "summary": "Search",
        "tags": [
          "Artifact"
        ],
        "x-speakeasy-group": "Artifact",
        "x-speakeasy-name-override": "Search",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/search/attributes": {
      "post": {
        "description": "Search attributes based on filters specified in the request body.",
        "operationId": "c1.api.attribute.v1.AttributeSearch.SearchAttributeValues",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.attribute.v1.SearchAttributeValuesRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.attribute.v1.SearchAttributeValuesResponse"
                }
              }
            },
            "description": "SearchAttributeValuesResponse is the response for searching AttributeValues."
          }
        },
        "summary": "Search Attribute Values",
        "tags": [
          "Attribute"
        ],
        "x-speakeasy-group": "AttributeSearch",
        "x-speakeasy-name-override": "SearchAttributeValues"
      }
    },
    "/api/v1/search/automation_executions": {
      "post": {
        "description": "Search for automation executions with optional filters for automation_template_id, state, and query.\n Each AutomationExecutionView row is large — request a small page_size (≤10) and set expand_mask to only the paths you need; broad expansion inlines whole related objects and bloats the response.",
        "operationId": "c1.api.automations.v1.AutomationExecutionSearchService.SearchAutomationExecutions",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.automations.v1.SearchAutomationExecutionsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.automations.v1.SearchAutomationExecutionsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Search Automation Executions",
        "tags": [
          "Automations"
        ],
        "x-speakeasy-group": "AutomationExecutionSearch",
        "x-speakeasy-name-override": "SearchAutomationExecutions"
      }
    },
    "/api/v1/search/automation_versions": {
      "post": {
        "description": "Search for versioned snapshots of an automation template's steps and triggers.\n Each version carries a full steps-and-triggers snapshot — request a small page_size (≤10) to keep responses small.",
        "operationId": "c1.api.automations.v1.AutomationSearchService.SearchAutomationTemplateVersions",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.automations.v1.SearchAutomationTemplateVersionsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.automations.v1.SearchAutomationTemplateVersionsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Search Automation Template Versions",
        "tags": [
          "Automations"
        ],
        "x-speakeasy-group": "AutomationSearch",
        "x-speakeasy-name-override": "SearchAutomationTemplateVersions"
      }
    },
    "/api/v1/search/automations": {
      "post": {
        "description": "Search for automations matching the provided filters, including query text, template refs, app, and trigger types.\n Each Automation row is heavy (carries its full triggers and steps) — request a small page_size (≤10) to keep responses small.",
        "operationId": "c1.api.automations.v1.AutomationSearchService.SearchAutomations",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.automations.v1.SearchAutomationsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.automations.v1.SearchAutomationsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Search Automations",
        "tags": [
          "Automations"
        ],
        "x-speakeasy-group": "AutomationSearch",
        "x-speakeasy-name-override": "SearchAutomations"
      }
    },
    "/api/v1/search/credential-inventory-policies": {
      "post": {
        "description": "Search credential inventory policies by name, or fetch a specific set by\n ID. Returns one page of matching policies at a time.",
        "operationId": "c1.api.credential_inventory.v1.CredentialInventoryPolicyService.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.credential_inventory.v1.CredentialInventoryPolicyServiceSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.credential_inventory.v1.CredentialInventoryPolicyServiceSearchResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Search",
        "tags": [
          "Credential Inventory"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "CredentialInventoryPolicy#read",
          "terraform-resource": null
        },
        "x-speakeasy-group": "CredentialInventoryPolicy",
        "x-speakeasy-name-override": "Search"
      }
    },
    "/api/v1/search/entitlements": {
      "post": {
        "description": "Search app entitlements based on filters specified in the request body.\n Each AppEntitlementView row is large — request a small page_size (≤10) and set expand_mask to only the paths you need; broad expansion inlines whole related objects and bloats the response.",
        "operationId": "c1.api.app.v1.AppEntitlementSearchService.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementSearchServiceSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementSearchServiceSearchResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Search",
        "tags": [
          "App Entitlement"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": [
            "App Entitlement#read",
            "App Entitlements#read"
          ],
          "terraform-resource": null
        },
        "x-speakeasy-group": "AppEntitlementSearch",
        "x-speakeasy-name-override": "Search",
        "x-speakeasy-pagination": {
          "inputs": [
            {
              "in": "requestBody",
              "name": "pageToken",
              "type": "cursor"
            }
          ],
          "outputs": {
            "nextCursor": "$.nextPageToken"
          },
          "type": "cursor"
        }
      }
    },
    "/api/v1/search/finding_audits": {
      "post": {
        "description": "Search returns audit events filtered by finding, actor, type, or\n app. Authorized as VIEWER -- the same role required to read the\n finding itself.",
        "operationId": "c1.api.finding.v1.FindingAuditService.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.finding.v1.FindingAuditServiceSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.finding.v1.FindingAuditServiceSearchResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Search",
        "tags": [
          "Findings"
        ],
        "x-speakeasy-group": "FindingAudit",
        "x-speakeasy-name-override": "Search",
        "x-stability-level": "beta"
      }
    },
    "/api/v1/search/functions": {
      "post": {
        "description": "Search searches for functions based on criteria",
        "operationId": "c1.api.functions.v1.FunctionsSearch.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.functions.v1.FunctionsSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.functions.v1.FunctionsSearchResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Search",
        "tags": [
          "Function"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "Function#read",
          "terraform-resource": null
        },
        "x-speakeasy-group": "FunctionsSearch",
        "x-speakeasy-name-override": "Search",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/search/grants": {
      "post": {
        "description": "Search grants (user-to-entitlement bindings) across apps, with filters for app, user, resource type, and entitlement.\n Rows are heavy (each binding carries a full entitlement + user view) — request a small page_size (≤10) and set expand_mask to only the paths you need; broad expansion inlines whole related objects and bloats the response.",
        "operationId": "c1.api.app.v1.AppEntitlementSearchService.SearchGrants",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementSearchServiceSearchGrantsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementSearchServiceSearchGrantsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Search Grants",
        "tags": [
          "App Entitlement"
        ],
        "x-speakeasy-group": "AppEntitlementSearch",
        "x-speakeasy-name-override": "SearchGrants"
      }
    },
    "/api/v1/search/graph": {
      "post": {
        "description": "SearchGraph performs a server-side BFS traversal and returns a bounded, filtered subgraph.\n Exactly one of user_id, app_id, or resource_id must be set.",
        "operationId": "c1.api.app.v1.AppEntitlementSearchService.SearchGraph",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementSearchServiceSearchGraphRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementSearchServiceSearchGraphResponse"
                }
              }
            },
            "description": "SearchGraph response. Contains a subgraph of nodes and edges."
          }
        },
        "summary": "Search Graph",
        "tags": [
          "App Entitlement"
        ],
        "x-speakeasy-group": "AppEntitlementSearch",
        "x-speakeasy-name-override": "SearchGraph"
      }
    },
    "/api/v1/search/graph/counts": {
      "post": {
        "description": "CountGrantsForUserByApp returns, for a user, the number of grants held per\n application. Use it to size or filter an access graph before calling\n SearchGraph: counts are computed directly from grant bindings and are an\n upper bound on what SearchGraph will render for the same user and app\n filter (SearchGraph applies additional filters that this count does not).",
        "operationId": "c1.api.app.v1.AppEntitlementSearchService.CountGrantsForUserByApp",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementSearchServiceCountGrantsForUserByAppRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementSearchServiceCountGrantsForUserByAppResponse"
                }
              }
            },
            "description": "CountGrantsForUserByApp response. Grant counts are computed directly from\n grant bindings and are an upper bound on what SearchGraph renders for the\n same user and app filter — SearchGraph applies additional filters that\n these counts do not."
          }
        },
        "summary": "Count Grants For User By App",
        "tags": [
          "App Entitlement"
        ],
        "x-speakeasy-group": "AppEntitlementSearch",
        "x-speakeasy-name-override": "CountGrantsForUserByApp"
      }
    },
    "/api/v1/search/graph/resources": {
      "post": {
        "description": "SearchReachableResourcesForUser returns the distinct app resources a user\n can reach through any of their grants, deduplicated across entitlements\n (a resource reachable via more than one grant appears once). Powers the\n Resources lane of the access graph's list view: supports free-text search\n over resource display name and narrowing to specific applications.",
        "operationId": "c1.api.app.v1.AppEntitlementSearchService.SearchReachableResourcesForUser",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementSearchServiceSearchReachableResourcesForUserRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.AppEntitlementSearchServiceSearchReachableResourcesForUserResponse"
                }
              }
            },
            "description": "SearchReachableResourcesForUser response. Resources are deduplicated: a\n resource reachable through more than one grant or entitlement appears once."
          }
        },
        "summary": "Search Reachable Resources For User",
        "tags": [
          "App Entitlement"
        ],
        "x-speakeasy-group": "AppEntitlementSearch",
        "x-speakeasy-name-override": "SearchReachableResourcesForUser"
      }
    },
    "/api/v1/search/hooks": {
      "post": {
        "description": "Search returns hooks for the tenant, paginated. Setting query or refs\n returns UNIMPLEMENTED; filtering is not yet supported.",
        "operationId": "c1.api.hooks.v1.HooksSearch.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.hooks.v1.HooksSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.hooks.v1.HooksSearchResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Search",
        "tags": [
          "Hook"
        ],
        "x-speakeasy-group": "HooksSearch",
        "x-speakeasy-name-override": "Search"
      }
    },
    "/api/v1/search/iam/api_keys": {
      "post": {
        "description": "Search finds personal client credentials and service principal credentials, with optional filtering by query text or key type.\n Request a modest page_size (≤25) to keep responses small.",
        "operationId": "c1.api.api_key.v1.APIKeySearchService.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.api_key.v1.APIKeySearchServiceSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.api_key.v1.APIKeySearchServiceSearchResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "NOTE: Searches personal and service principal API keys",
        "tags": [
          "Personal Client"
        ],
        "x-speakeasy-group": "APIKeySearch",
        "x-speakeasy-name-override": "Search"
      }
    },
    "/api/v1/search/iam/external_clients": {
      "post": {
        "description": "Search returns external client grants for all users in the tenant.\n Request a modest page_size (≤25) to keep responses small.",
        "operationId": "c1.api.iam.v1.ExternalClientSearchService.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.iam.v1.ExternalClientSearchServiceSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.iam.v1.ExternalClientSearchServiceSearchResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "NOTE: Searches external client grants for all users",
        "tags": [
          "External Client"
        ],
        "x-speakeasy-group": "ExternalClientSearch",
        "x-speakeasy-name-override": "Search"
      }
    },
    "/api/v1/search/iam/personal_clients": {
      "post": {
        "description": "Search finds personal client credentials across all users, with optional filtering by query text or user.\n Request a modest page_size (≤25) to keep responses small.",
        "operationId": "c1.api.iam.v1.PersonalClientSearchService.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.iam.v1.PersonalClientSearchServiceSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.iam.v1.PersonalClientSearchServiceSearchResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "NOTE: Searches personal clients for all users",
        "tags": [
          "Personal Client"
        ],
        "x-speakeasy-group": "PersonalClientSearch",
        "x-speakeasy-name-override": "Search"
      }
    },
    "/api/v1/search/iam/personal_devices": {
      "post": {
        "description": "Search returns the calling user's registered devices, ordered by display name.\n By default only active devices are returned; use the status filter to include\n revoked devices. Optionally filter by a display-name query.",
        "operationId": "c1.api.iam.v1.PersonalDeviceService.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.iam.v1.PersonalDeviceServiceSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.iam.v1.PersonalDeviceServiceSearchResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "NOTE: Only shows devices for the current user.",
        "tags": [
          "Personal Device"
        ],
        "x-speakeasy-group": "PersonalDevice",
        "x-speakeasy-name-override": "Search"
      }
    },
    "/api/v1/search/local-directory-invitations": {
      "post": {
        "description": "List invitations for a directory, with optional status filter.\n Search invitations with filters (directory, status).",
        "operationId": "c1.api.local_directory.v1.LocalUserInvitationService.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.local_directory.v1.LocalUserInvitationServiceSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.local_directory.v1.LocalUserInvitationServiceSearchResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Search",
        "tags": [
          "Local Directory"
        ],
        "x-speakeasy-group": "LocalUserInvitation",
        "x-speakeasy-name-override": "Search"
      }
    },
    "/api/v1/search/my_virtual_mcp_servers": {
      "post": {
        "description": "Search live Virtual MCP Servers for which the caller's own principal has\n an active `use` grant. Results are ordered by display name and server ID\n and may briefly lag writes because search reads the PostgreSQL projection;\n connection authorization always rechecks authoritative state.",
        "operationId": "c1.api.ai_governance.v1.VirtualMCPServerMySearchService.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPServerMySearchServiceSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPServerMySearchServiceSearchResponse"
                }
              }
            },
            "description": "VirtualMCPServerMySearchServiceSearchResponse contains one page of the\n caller's currently available Virtual MCP Servers."
          }
        },
        "summary": "NOTE: Only shows Virtual MCP Servers available to the current user.",
        "tags": [
          "Virtual MCP Servers"
        ],
        "x-speakeasy-group": "VirtualMCPServerMySearch",
        "x-speakeasy-name-override": "Search"
      }
    },
    "/api/v1/search/past-grants": {
      "post": {
        "description": "Search historical grants that have been revoked, filtered by app user or entitlement.",
        "operationId": "c1.api.app.v1.AppEntitlementUserBindingService.SearchPastGrants",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.SearchPastGrantsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.SearchPastGrantsResponse"
                }
              }
            },
            "description": "The SearchPastGrantsResponse message contains a list of past grants and a nextPageToken if applicable."
          }
        },
        "summary": "Search Past Grants",
        "tags": [
          "App Entitlement User Binding History"
        ],
        "x-speakeasy-group": "AppEntitlementUserBinding",
        "x-speakeasy-name-override": "SearchPastGrants"
      }
    },
    "/api/v1/search/policies": {
      "post": {
        "description": "Search policies based on filters specified in the request body.",
        "operationId": "c1.api.policy.v1.PolicySearch.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.policy.v1.SearchPoliciesRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.policy.v1.SearchPoliciesResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Search",
        "tags": [
          "Policy"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": [
            "Policy#read",
            "Policies#read"
          ],
          "terraform-resource": null
        },
        "x-speakeasy-group": "PolicySearch",
        "x-speakeasy-name-override": "Search",
        "x-speakeasy-pagination": {
          "inputs": [
            {
              "in": "requestBody",
              "name": "pageToken",
              "type": "cursor"
            }
          ],
          "outputs": {
            "nextCursor": "$.nextPageToken"
          },
          "type": "cursor"
        }
      }
    },
    "/api/v1/search/recovery-policies": {
      "post": {
        "description": "Search recovery policies by name, or fetch a specific set by ID. Returns\n one page of matching policies at a time.",
        "operationId": "c1.api.credential_inventory.v1.RecoveryPolicyService.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.credential_inventory.v1.RecoveryPolicyServiceSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.credential_inventory.v1.RecoveryPolicyServiceSearchResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Search",
        "tags": [
          "Recovery Policy"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "RecoveryPolicy#read",
          "terraform-resource": null
        },
        "x-speakeasy-group": "RecoveryPolicy",
        "x-speakeasy-name-override": "Search"
      }
    },
    "/api/v1/search/request_catalog/credential_offerings": {
      "post": {
        "description": "SearchRequestableCredentialOfferings returns the credential offerings the target user can\n request, optionally limited to one app, ordered by display name then ids.",
        "operationId": "c1.api.requestcatalog.v1.RequestCatalogSearchService.SearchRequestableCredentialOfferings",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.SearchRequestableCredentialOfferingsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.requestcatalog.v1.SearchRequestableCredentialOfferingsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Search Requestable Credential Offerings",
        "tags": [
          "Request Catalog"
        ],
        "x-speakeasy-group": "RequestCatalogSearch",
        "x-speakeasy-name-override": "SearchRequestableCredentialOfferings",
        "x-stability-level": "beta"
      }
    },
    "/api/v1/search/request_catalog/entitlements": {
      "post": {
        "description": "Search request catalogs based on filters specified in the request body.\n Rows are heavy (each entitlement carries its user bindings) — request a small page_size (≤10) and set expand_mask to only the paths you need; broad expansion inlines whole related objects and bloats the response.",
        "operationId": "c1.api.requestcatalog.v1.RequestCatalogSearchService.SearchEntitlements",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogSearchServiceSearchEntitlementsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.requestcatalog.v1.RequestCatalogSearchServiceSearchEntitlementsResponse"
                }
              }
            },
            "description": "The RequestCatalogSearchServiceSearchEntitlementsResponse message contains a list of results and a nextPageToken if applicable."
          }
        },
        "summary": "Search Entitlements",
        "tags": [
          "Request Catalog"
        ],
        "x-speakeasy-group": "RequestCatalogSearch",
        "x-speakeasy-name-override": "SearchEntitlements"
      }
    },
    "/api/v1/search/role-mining/suggestions": {
      "post": {
        "description": "Search role mining suggestions by name, description, or cohort filter values with optional state and type filters.\n Each suggestion row is large (cohort filters, entitlements, insights, profile matches) — request a small page_size (≤10) to keep responses small.",
        "operationId": "c1.api.role_mining_management.v1.RoleMiningManagementSearchService.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.role_mining_management.v1.RoleMiningSearchSuggestionsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.role_mining_management.v1.RoleMiningSearchSuggestionsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Search",
        "tags": [
          "Role Mining"
        ],
        "x-speakeasy-group": "RoleMiningManagementSearch",
        "x-speakeasy-name-override": "Search"
      }
    },
    "/api/v1/search/secrets-admin": {
      "post": {
        "description": "Search returns secrets across the tenant.\n Can filter by creator, sharing mode, status, time range, etc.",
        "operationId": "c1.api.secrets.v1.PaperSecretAdminService.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.secrets.v1.PaperSecretAdminServiceSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.secrets.v1.PaperSecretAdminServiceSearchResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Search",
        "tags": [
          "Secrets Admin"
        ],
        "x-speakeasy-group": "PaperSecretAdmin",
        "x-speakeasy-name-override": "Search",
        "x-stability-level": "beta"
      }
    },
    "/api/v1/search/secrets-admin/audit_events": {
      "post": {
        "description": "SearchAuditEvents returns audit events for paper secrets.\n Can filter by vault_id, actor (user ID or email), client IP.",
        "operationId": "c1.api.secrets.v1.PaperSecretAdminService.SearchAuditEvents",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.secrets.v1.PaperSecretAdminServiceSearchAuditEventsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.secrets.v1.PaperSecretAdminServiceSearchAuditEventsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Search Audit Events",
        "tags": [
          "Secrets Admin"
        ],
        "x-speakeasy-group": "PaperSecretAdmin",
        "x-speakeasy-name-override": "SearchAuditEvents",
        "x-stability-level": "beta"
      }
    },
    "/api/v1/search/secrets/audit_events": {
      "post": {
        "description": "SearchAuditEvents returns audit events for a secret owned by the calling user.\n Returns sanitized OCSF events (IP addresses stripped for non-admin consumption).",
        "operationId": "c1.api.secrets.v1.PaperSecretService.SearchAuditEvents",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.secrets.v1.PaperSecretServiceSearchAuditEventsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.secrets.v1.PaperSecretServiceSearchAuditEventsResponse"
                }
              }
            },
            "description": "PaperSecretServiceSearchAuditEventsResponse contains a page of audit events\n for the requested secret."
          }
        },
        "summary": "Search Audit Events",
        "tags": [
          "Secrets"
        ],
        "x-speakeasy-group": "PaperSecret",
        "x-speakeasy-name-override": "SearchAuditEvents",
        "x-stability-level": "beta"
      }
    },
    "/api/v1/search/secrets/mine": {
      "post": {
        "description": "SearchMySecrets returns secrets created by the current user.\n Automatically scoped to current user - no user_id filter parameter.",
        "operationId": "c1.api.secrets.v1.PaperSecretService.SearchMySecrets",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.secrets.v1.PaperSecretServiceSearchMySecretsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.secrets.v1.PaperSecretServiceSearchResponse"
                }
              }
            },
            "description": "Search response for user's own secrets"
          }
        },
        "summary": "Search My Secrets",
        "tags": [
          "Secrets"
        ],
        "x-speakeasy-group": "PaperSecret",
        "x-speakeasy-name-override": "SearchMySecrets",
        "x-stability-level": "beta"
      }
    },
    "/api/v1/search/secrets/shared_with_me": {
      "post": {
        "description": "SearchSecretsSharedWithMe returns secrets shared with the current user.\n Automatically scoped to current user - no user_id filter parameter.\n INTERNAL secrets only: EXTERNAL secrets are addressed by email and are never\n viewable through an authenticated C1 session, so returning them here would\n surface rows that GetContent then denies.",
        "operationId": "c1.api.secrets.v1.PaperSecretService.SearchSecretsSharedWithMe",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.secrets.v1.PaperSecretServiceSearchSecretsSharedWithMeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.secrets.v1.PaperSecretServiceSearchResponse"
                }
              }
            },
            "description": "Search response for user's own secrets"
          }
        },
        "summary": "Search Secrets Shared With Me",
        "tags": [
          "Secrets"
        ],
        "x-speakeasy-group": "PaperSecret",
        "x-speakeasy-name-override": "SearchSecretsSharedWithMe",
        "x-stability-level": "beta"
      }
    },
    "/api/v1/search/session-policies": {
      "post": {
        "description": "Search session policies by name, or fetch a specific set by ID. Returns\n one page of matching policies at a time.",
        "operationId": "c1.api.session_policy.v1.SessionPolicyService.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.session_policy.v1.SessionPolicyServiceSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.session_policy.v1.SessionPolicyServiceSearchResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Search",
        "tags": [
          "Session Policy"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "SessionPolicy#read",
          "terraform-resource": null
        },
        "x-speakeasy-group": "SessionPolicy",
        "x-speakeasy-name-override": "Search"
      }
    },
    "/api/v1/search/shadow_mcp_occurrences": {
      "post": {
        "description": "Search returns the ungoverned, enabled observation rows behind one\n shadow-mcp finding -- the same present-set that produced its evidence\n counts. Authorized as VIEWER -- the same role required to read the\n finding itself.",
        "operationId": "c1.api.finding.v1.ShadowMcpOccurrenceService.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.finding.v1.ShadowMcpOccurrenceServiceSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.finding.v1.ShadowMcpOccurrenceServiceSearchResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Search",
        "tags": [
          "Findings"
        ],
        "x-speakeasy-group": "ShadowMcpOccurrence",
        "x-speakeasy-name-override": "Search",
        "x-stability-level": "beta"
      }
    },
    "/api/v1/search/sign-in-policies": {
      "post": {
        "description": "Search sign-in policies by name, or fetch a specific set by ID. Returns\n one page of matching policies at a time.",
        "operationId": "c1.api.sign_in_policy.v1.SignInPolicyService.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.sign_in_policy.v1.SignInPolicyServiceSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.sign_in_policy.v1.SignInPolicyServiceSearchResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Search",
        "tags": [
          "Sign-In Policy"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "SignInPolicy#read",
          "terraform-resource": null
        },
        "x-speakeasy-group": "SignInPolicy",
        "x-speakeasy-name-override": "Search"
      }
    },
    "/api/v1/search/ssf-receiver-events": {
      "post": {
        "description": "Search performs a full-text search across received SSF events with optional filters for stream, event type, outcome, and matched user.\n Request a modest page_size (≤25) to keep responses small.",
        "operationId": "c1.api.ssf_receiver.v1.SSFReceiverEventSearchService.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ssf_receiver.v1.SSFReceiverEventSearchServiceSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ssf_receiver.v1.SSFReceiverEventSearchServiceSearchResponse"
                }
              }
            },
            "description": "SSFReceiverEventSearchServiceSearchResponse contains the matching events and a pagination token."
          }
        },
        "summary": "Search",
        "tags": [
          "SSF Receiver"
        ],
        "x-speakeasy-group": "SSFReceiverEventSearch",
        "x-speakeasy-name-override": "Search"
      }
    },
    "/api/v1/search/sso/applications": {
      "post": {
        "description": "Search SSO applications across the tenant. Supports filtering by the\n applications in your catalog and by display-name or description text.",
        "operationId": "c1.api.sso.v1.SSOApplicationService.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationServiceSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationServiceSearchResponse"
                }
              }
            },
            "description": "SSOApplicationServiceSearchResponse returns matching SSO applications."
          }
        },
        "summary": "Search",
        "tags": [
          "SSO"
        ],
        "x-speakeasy-group": "SSOApplication",
        "x-speakeasy-name-override": "Search"
      }
    },
    "/api/v1/search/step-up/providers": {
      "post": {
        "description": "Search allows searching for step-up providers with various filters",
        "operationId": "c1.api.stepup.v1.StepUpProviderService.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.stepup.v1.SearchStepUpProvidersRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.stepup.v1.SearchStepUpProvidersResponse"
                }
              }
            },
            "description": "Response message for searching step-up providers"
          }
        },
        "summary": "Search",
        "tags": [
          "Step Up Authentication Providers"
        ],
        "x-speakeasy-group": "StepUpProvider",
        "x-speakeasy-name-override": "Search"
      }
    },
    "/api/v1/search/step-up/transactions": {
      "post": {
        "description": "Search allows searching for step-up transactions with various filters",
        "operationId": "c1.api.stepup.v1.StepUpTransactionService.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.stepup.v1.SearchStepUpTransactionsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.stepup.v1.SearchStepUpTransactionsResponse"
                }
              }
            },
            "description": "Response message for searching step-up transactions"
          }
        },
        "summary": "Search",
        "tags": [
          "Step Up Authentication Transactions"
        ],
        "x-speakeasy-group": "StepUpTransaction",
        "x-speakeasy-name-override": "Search"
      }
    },
    "/api/v1/search/systemlog/exports": {
      "post": {
        "description": "Search for system log exports matching the specified filters.",
        "operationId": "c1.api.systemlog.v1.ExportsSearchService.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.systemlog.v1.ExportsSearchServiceSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.systemlog.v1.ExportsSearchServiceSearchResponse"
                }
              }
            },
            "description": "ExportsSearchServiceSearchResponse is the response for searching system log exports."
          }
        },
        "summary": "Search",
        "tags": [
          "System Log Exporter"
        ],
        "x-speakeasy-group": "ExportsSearch",
        "x-speakeasy-name-override": "Search"
      }
    },
    "/api/v1/search/tasks": {
      "post": {
        "description": "Search tasks based on filters specified in the request body.\n Each TaskView row is large — request a small page_size (≤10) and set expand_mask to only the paths you need; broad expansion inlines whole related objects (app, entitlement, user, policy) and bloats the response.",
        "operationId": "c1.api.task.v1.TaskSearchService.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.task.v1.TaskSearchResponse"
                }
              }
            },
            "description": "The TaskSearchResponse message contains a list of results and a nextPageToken if applicable."
          }
        },
        "summary": "Search",
        "tags": [
          "Task"
        ],
        "x-speakeasy-group": "TaskSearch",
        "x-speakeasy-name-override": "Search"
      }
    },
    "/api/v1/search/tool_gates": {
      "post": {
        "description": "Search returns tool gates matching the query, paginated.",
        "operationId": "c1.api.ai_governance.v1.ToolGatesSearch.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.ToolGatesSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.ToolGatesSearchResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Search",
        "tags": [
          "Tool Gates"
        ],
        "x-speakeasy-group": "ToolGatesSearch",
        "x-speakeasy-name-override": "Search"
      }
    },
    "/api/v1/search/user-ownership": {
      "post": {
        "description": "Search all ownership assignments for a given user across apps, resources, and entitlements.",
        "operationId": "c1.api.app.v1.AppSearch.SearchUserOwnership",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v1.SearchUserOwnershipRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v1.SearchUserOwnershipResponse"
                }
              }
            },
            "description": "The SearchUserOwnershipResponse message contains a paginated list of ownership entries."
          }
        },
        "summary": "Search User Ownership",
        "tags": [
          "App"
        ],
        "x-speakeasy-group": "AppSearch",
        "x-speakeasy-name-override": "SearchUserOwnership"
      }
    },
    "/api/v1/search/users": {
      "post": {
        "description": "Search users based on filters specified in the request body.",
        "operationId": "c1.api.user.v1.UserSearch.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.user.v1.SearchUsersRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.user.v1.SearchUsersResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Search",
        "tags": [
          "User"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": [
            "User#read",
            "Users#read"
          ],
          "terraform-resource": null
        },
        "x-speakeasy-group": "UserSearch",
        "x-speakeasy-name-override": "Search",
        "x-speakeasy-pagination": {
          "inputs": [
            {
              "in": "requestBody",
              "name": "pageToken",
              "type": "cursor"
            }
          ],
          "outputs": {
            "nextCursor": "$.nextPageToken"
          },
          "type": "cursor"
        }
      }
    },
    "/api/v1/search/webhooks": {
      "post": {
        "description": "Search for webhook subscriptions by query string or specific webhook references.",
        "operationId": "c1.api.webhooks.v1.WebhooksSearch.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.webhooks.v1.WebhooksSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.webhooks.v1.WebhooksSearchResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Search",
        "tags": [
          "Webhook"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": [
            "Webhook#read",
            "Webhooks#read"
          ],
          "terraform-resource": null
        },
        "x-speakeasy-group": "WebhooksSearch",
        "x-speakeasy-name-override": "Search",
        "x-speakeasy-pagination": {
          "inputs": [
            {
              "in": "requestBody",
              "name": "pageToken",
              "type": "cursor"
            }
          ],
          "outputs": {
            "nextCursor": "$.nextPageToken"
          },
          "type": "cursor"
        }
      }
    },
    "/api/v1/search/workload_federation_trusts": {
      "post": {
        "description": "SearchTrusts searches trusts across all service principals with optional filters.\n Used by the admin providers page to list trusts referencing a provider.",
        "operationId": "c1.api.workload_federation.v1.WorkloadFederationService.SearchTrusts",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.workload_federation.v1.WorkloadFederationServiceSearchTrustsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.workload_federation.v1.WorkloadFederationServiceSearchTrustsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Search Trusts",
        "tags": [
          "Workload Federation"
        ],
        "x-speakeasy-group": "WorkloadFederation",
        "x-speakeasy-name-override": "SearchTrusts"
      }
    },
    "/api/v1/search/xaa/access_profile_scope_bindings": {
      "post": {
        "description": "Search scope bindings, filtered by access profile or by scope, or fetch a\n specific set by ref. The by-scope direction answers \"which profiles\n contain this scope\" for impact analysis.",
        "operationId": "c1.api.cross_app_access.v1.XAAAccessProfileScopeBindingService.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAAccessProfileScopeBindingServiceSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAAccessProfileScopeBindingServiceSearchResponse"
                }
              }
            },
            "description": "XAAAccessProfileScopeBindingServiceSearchResponse returns matching bindings."
          }
        },
        "summary": "Search",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAAAccessProfileScopeBinding",
        "x-speakeasy-name-override": "Search"
      }
    },
    "/api/v1/search/xaa/access_profiles": {
      "post": {
        "description": "Search access profiles across the tenant, filtered by application,\n resource server, or text query, or fetch a specific set by ref.",
        "operationId": "c1.api.cross_app_access.v1.XAAAccessProfileService.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAAccessProfileServiceSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAAccessProfileServiceSearchResponse"
                }
              }
            },
            "description": "XAAAccessProfileServiceSearchResponse returns matching access profiles."
          }
        },
        "summary": "Search",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAAAccessProfile",
        "x-speakeasy-name-override": "Search"
      }
    },
    "/api/v1/search/xaa/client_audience_mappings": {
      "post": {
        "description": "Search client audience mappings across the tenant, filtered by resource\n server, disabled state, or text query, or fetch a specific set by ref.",
        "operationId": "c1.api.cross_app_access.v1.XAAClientAudienceMappingService.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAClientAudienceMappingServiceSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAClientAudienceMappingServiceSearchResponse"
                }
              }
            },
            "description": "XAAClientAudienceMappingServiceSearchResponse returns matching mappings."
          }
        },
        "summary": "Search",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAAClientAudienceMapping",
        "x-speakeasy-name-override": "Search"
      }
    },
    "/api/v1/search/xaa/resource_servers": {
      "post": {
        "description": "Search resource servers across the tenant, filtered by application,\n audience substring, signing algorithm, or disabled state, or fetch a\n specific set by ref. Returns one page at a time.",
        "operationId": "c1.api.cross_app_access.v1.XAAResourceServerService.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAResourceServerServiceSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAResourceServerServiceSearchResponse"
                }
              }
            },
            "description": "XAAResourceServerServiceSearchResponse returns matching resource servers."
          }
        },
        "summary": "Search",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAAResourceServer",
        "x-speakeasy-name-override": "Search"
      }
    },
    "/api/v1/search/xaa/scopes": {
      "post": {
        "description": "Search scopes across the tenant, filtered by resource server, state,\n classification, source, or text query, or fetch a specific set by ref.\n Filter on PENDING_REVIEW to find scopes awaiting approval.",
        "operationId": "c1.api.cross_app_access.v1.XAAScopeService.Search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAScopeServiceSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAScopeServiceSearchResponse"
                }
              }
            },
            "description": "XAAScopeServiceSearchResponse returns matching scopes."
          }
        },
        "summary": "Search",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAAScope",
        "x-speakeasy-name-override": "Search"
      }
    },
    "/api/v1/secrets-admin/{vault_id}": {
      "delete": {
        "description": "Delete allows an admin to delete any Paper Vault.",
        "operationId": "c1.api.secrets.v1.PaperSecretAdminService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "vault_id",
            "required": true,
            "schema": {
              "description": "The vaultId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.secrets.v1.PaperSecretAdminServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.secrets.v1.PaperSecretAdminServiceDeleteResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete",
        "tags": [
          "Secrets Admin"
        ],
        "x-speakeasy-group": "PaperSecretAdmin",
        "x-speakeasy-name-override": "Delete",
        "x-stability-level": "beta"
      },
      "get": {
        "description": "Get retrieves any secret's metadata by vault ID (admin override).",
        "operationId": "c1.api.secrets.v1.PaperSecretAdminService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "vault_id",
            "required": true,
            "schema": {
              "description": "The vaultId field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.secrets.v1.PaperSecretAdminServiceGetResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "Secrets Admin"
        ],
        "x-speakeasy-group": "PaperSecretAdmin",
        "x-speakeasy-name-override": "Get",
        "x-stability-level": "beta"
      }
    },
    "/api/v1/secrets/code/{share_code}": {
      "get": {
        "description": "GetByShareCode retrieves a secret by its human-friendly share code.\n Share codes are in XXXX-XXXX-XXXX format and are used in share URLs.",
        "operationId": "c1.api.secrets.v1.PaperSecretService.GetByShareCode",
        "parameters": [
          {
            "in": "path",
            "name": "share_code",
            "required": true,
            "schema": {
              "description": "Human-friendly share code (format: XXXX-XXXX-XXXX, case-insensitive)",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.secrets.v1.PaperSecretServiceGetResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get By Share Code",
        "tags": [
          "Secrets"
        ],
        "x-speakeasy-group": "PaperSecret",
        "x-speakeasy-name-override": "GetByShareCode",
        "x-stability-level": "beta"
      }
    },
    "/api/v1/secrets/external": {
      "post": {
        "description": "CreateExternal creates a secret using the requested Age suite.",
        "operationId": "c1.api.secrets.v1.PaperSecretService.CreateExternal",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.secrets.v1.PaperSecretServiceCreateExternalRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.secrets.v1.PaperSecretServiceCreateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create External",
        "tags": [
          "Secrets"
        ],
        "x-speakeasy-group": "PaperSecret",
        "x-speakeasy-name-override": "CreateExternal",
        "x-stability-level": "beta"
      }
    },
    "/api/v1/secrets/internal": {
      "post": {
        "description": "CreateInternal creates a secret using the requested Age suite.",
        "operationId": "c1.api.secrets.v1.PaperSecretService.CreateInternal",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.secrets.v1.PaperSecretServiceCreateInternalRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.secrets.v1.PaperSecretServiceCreateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create Internal",
        "tags": [
          "Secrets"
        ],
        "x-speakeasy-group": "PaperSecret",
        "x-speakeasy-name-override": "CreateInternal",
        "x-stability-level": "beta"
      }
    },
    "/api/v1/secrets/{vault_id}": {
      "delete": {
        "description": "Delete soft-deletes a Paper Vault and deletes its content. It never\n revokes the credential that may have been stored in the vault.",
        "operationId": "c1.api.secrets.v1.PaperSecretService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "vault_id",
            "required": true,
            "schema": {
              "description": "The vaultId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.secrets.v1.PaperSecretServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.secrets.v1.PaperSecretServiceDeleteResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete",
        "tags": [
          "Secrets"
        ],
        "x-speakeasy-group": "PaperSecret",
        "x-speakeasy-name-override": "Delete",
        "x-stability-level": "beta"
      },
      "get": {
        "description": "Get retrieves a secret's metadata by vault ID.\n Creator can always get their own secrets. Admins can get any secret.",
        "operationId": "c1.api.secrets.v1.PaperSecretService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "vault_id",
            "required": true,
            "schema": {
              "description": "The vaultId field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.secrets.v1.PaperSecretServiceGetResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "Secrets"
        ],
        "x-speakeasy-group": "PaperSecret",
        "x-speakeasy-name-override": "Get",
        "x-stability-level": "beta"
      }
    },
    "/api/v1/secrets/{vault_id}/content": {
      "post": {
        "description": "SetTextContent sets the encrypted content for a text secret.\n Client encrypts content using age_recipient from CreateResponse.",
        "operationId": "c1.api.secrets.v1.PaperSecretService.SetTextContent",
        "parameters": [
          {
            "in": "path",
            "name": "vault_id",
            "required": true,
            "schema": {
              "description": "The vaultId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.secrets.v1.PaperSecretServiceSetTextContentRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.secrets.v1.PaperSecretServiceSetTextContentResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Set Text Content",
        "tags": [
          "Secrets"
        ],
        "x-speakeasy-group": "PaperSecret",
        "x-speakeasy-name-override": "SetTextContent",
        "x-stability-level": "beta"
      }
    },
    "/api/v1/secrets/{vault_id}/view": {
      "post": {
        "description": "GetContent retrieves the encrypted secret content for an authorized recipient.\n Caller must be in the secret's allowed_user_ids list (for INTERNAL secrets).\n Returns content re-encrypted to caller's ephemeral public key.",
        "operationId": "c1.api.secrets.v1.PaperSecretService.GetContent",
        "parameters": [
          {
            "in": "path",
            "name": "vault_id",
            "required": true,
            "schema": {
              "description": "The vaultId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.secrets.v1.PaperSecretServiceGetContentRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.secrets.v1.PaperSecretServiceGetContentResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Content",
        "tags": [
          "Secrets"
        ],
        "x-speakeasy-group": "PaperSecret",
        "x-speakeasy-name-override": "GetContent",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/service_principals": {
      "get": {
        "description": "List lists service principals for the tenant.",
        "operationId": "c1.api.service_principal.v1.ServicePrincipalService.List",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipalServiceListResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List",
        "tags": [
          "Service Principal"
        ],
        "x-speakeasy-group": "Principal",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Create creates a new service principal.",
        "operationId": "c1.api.service_principal.v1.ServicePrincipalService.Create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipalServiceCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipalServiceCreateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create",
        "tags": [
          "Service Principal"
        ],
        "x-speakeasy-group": "Principal",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/service_principals/bindings": {
      "post": {
        "description": "AddBinding associates a tenant-scoped subject with an existing service\n principal. Subjects support zero-to-many bindings; the same pair is\n idempotent and a soft-deleted pair is restored. Associations do not define\n runtime identity selection. Requires SERVICE_PRINCIPALS and the subject's\n feature flag, plus existing service-principal and subject permissions.",
        "operationId": "c1.api.service_principal.v1.ServicePrincipalService.AddBinding",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipalServiceAddBindingRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipalServiceAddBindingResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Add Binding",
        "tags": [
          "Service Principal Binding"
        ],
        "x-speakeasy-group": "Principal",
        "x-speakeasy-name-override": "AddBinding",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/service_principals/bindings/delete": {
      "post": {
        "description": "DeleteBinding removes a single (subject, service_principal_id) binding\n row. At-most-one delete — does not touch other bindings the subject\n may hold against different service principals. Idempotent — succeeds\n even if no matching row exists.",
        "operationId": "c1.api.service_principal.v1.ServicePrincipalService.DeleteBinding",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipalServiceDeleteBindingRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipalServiceDeleteBindingResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete Binding",
        "tags": [
          "Service Principal Binding"
        ],
        "x-speakeasy-group": "Principal",
        "x-speakeasy-name-override": "DeleteBinding",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/service_principals/bindings/list": {
      "post": {
        "description": "ListBindings returns every active binding held by a subject. Empty\n list when the subject is unbound. The response is unordered.",
        "operationId": "c1.api.service_principal.v1.ServicePrincipalService.ListBindings",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipalServiceListBindingsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipalServiceListBindingsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Bindings",
        "tags": [
          "Service Principal Binding"
        ],
        "x-speakeasy-group": "Principal",
        "x-speakeasy-name-override": "ListBindings",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/service_principals/{id}": {
      "delete": {
        "description": "Delete deletes a service principal and all its credentials.",
        "operationId": "c1.api.service_principal.v1.ServicePrincipalService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipalServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipalServiceDeleteResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete",
        "tags": [
          "Service Principal"
        ],
        "x-speakeasy-group": "Principal",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get returns a service principal by ID.",
        "operationId": "c1.api.service_principal.v1.ServicePrincipalService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipalServiceGetResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "Service Principal"
        ],
        "x-speakeasy-group": "Principal",
        "x-speakeasy-name-override": "Get"
      },
      "patch": {
        "description": "Update updates a service principal's display name.",
        "operationId": "c1.api.service_principal.v1.ServicePrincipalService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The unique user ID of the service principal.",
              "readOnly": true,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipalServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipalServiceUpdateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update",
        "tags": [
          "Service Principal"
        ],
        "x-speakeasy-group": "Principal",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/service_principals/{service_principal_id}/credentials": {
      "get": {
        "description": "ListCredentials lists client credentials for a service principal.",
        "operationId": "c1.api.service_principal.v1.ServicePrincipalService.ListCredentials",
        "parameters": [
          {
            "in": "path",
            "name": "service_principal_id",
            "required": true,
            "schema": {
              "description": "The service principal ID to list credentials for.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipalServiceListCredentialsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Credentials",
        "tags": [
          "Service Principal"
        ],
        "x-speakeasy-group": "Principal",
        "x-speakeasy-name-override": "ListCredentials"
      },
      "post": {
        "description": "CreateCredential creates a new client credential for a service principal.",
        "operationId": "c1.api.service_principal.v1.ServicePrincipalService.CreateCredential",
        "parameters": [
          {
            "in": "path",
            "name": "service_principal_id",
            "required": true,
            "schema": {
              "description": "The service principal ID to create the credential for.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipalServiceCreateCredentialRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipalServiceCreateCredentialResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create Credential",
        "tags": [
          "Service Principal"
        ],
        "x-speakeasy-group": "Principal",
        "x-speakeasy-name-override": "CreateCredential"
      }
    },
    "/api/v1/service_principals/{service_principal_id}/credentials/{id}": {
      "delete": {
        "description": "RevokeCredential revokes (deletes) a client credential for a service principal.",
        "operationId": "c1.api.service_principal.v1.ServicePrincipalService.RevokeCredential",
        "parameters": [
          {
            "in": "path",
            "name": "service_principal_id",
            "required": true,
            "schema": {
              "description": "The service principal ID.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The credential ID to revoke.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipalServiceRevokeCredentialRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipalServiceRevokeCredentialResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Revoke Credential",
        "tags": [
          "Service Principal"
        ],
        "x-speakeasy-group": "Principal",
        "x-speakeasy-name-override": "RevokeCredential"
      },
      "get": {
        "description": "GetCredential returns a single client credential for a service principal.",
        "operationId": "c1.api.service_principal.v1.ServicePrincipalService.GetCredential",
        "parameters": [
          {
            "in": "path",
            "name": "service_principal_id",
            "required": true,
            "schema": {
              "description": "The service principal ID.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The credential ID to get.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipalServiceGetCredentialResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Credential",
        "tags": [
          "Service Principal"
        ],
        "x-speakeasy-group": "Principal",
        "x-speakeasy-name-override": "GetCredential"
      },
      "patch": {
        "description": "UpdateCredential updates a client credential for a service principal.",
        "operationId": "c1.api.service_principal.v1.ServicePrincipalService.UpdateCredential",
        "parameters": [
          {
            "in": "path",
            "name": "service_principal_id",
            "required": true,
            "schema": {
              "description": "The service principal ID.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The unique ID of the credential (cutename format).",
              "readOnly": true,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipalServiceUpdateCredentialRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.service_principal.v1.ServicePrincipalServiceUpdateCredentialResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update Credential",
        "tags": [
          "Service Principal"
        ],
        "x-speakeasy-group": "Principal",
        "x-speakeasy-name-override": "UpdateCredential"
      }
    },
    "/api/v1/service_principals/{service_principal_id}/trusts": {
      "get": {
        "description": "ListTrusts lists trusts for a service principal.",
        "operationId": "c1.api.workload_federation.v1.WorkloadFederationService.ListTrusts",
        "parameters": [
          {
            "in": "path",
            "name": "service_principal_id",
            "required": true,
            "schema": {
              "description": "The service principal ID to list trusts for (from URL path).",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.workload_federation.v1.WorkloadFederationServiceListTrustsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Trusts",
        "tags": [
          "Workload Federation"
        ],
        "x-speakeasy-group": "WorkloadFederation",
        "x-speakeasy-name-override": "ListTrusts"
      },
      "post": {
        "description": "CreateTrust creates a trust policy for a service principal.\n Validates the CEL condition_expression at creation time.",
        "operationId": "c1.api.workload_federation.v1.WorkloadFederationService.CreateTrust",
        "parameters": [
          {
            "in": "path",
            "name": "service_principal_id",
            "required": true,
            "schema": {
              "description": "The service principal ID to create the trust for (from URL path).",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.workload_federation.v1.WorkloadFederationServiceCreateTrustRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.workload_federation.v1.WorkloadFederationServiceCreateTrustResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create Trust",
        "tags": [
          "Workload Federation"
        ],
        "x-speakeasy-group": "WorkloadFederation",
        "x-speakeasy-name-override": "CreateTrust"
      }
    },
    "/api/v1/service_principals/{service_principal_id}/trusts/{client_id}": {
      "delete": {
        "description": "DeleteTrust deletes a trust for a service principal.",
        "operationId": "c1.api.workload_federation.v1.WorkloadFederationService.DeleteTrust",
        "parameters": [
          {
            "in": "path",
            "name": "service_principal_id",
            "required": true,
            "schema": {
              "description": "The service principal ID (from URL path).",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "client_id",
            "required": true,
            "schema": {
              "description": "The trust client ID. Accepts the cutename (e.g. \"clever-fox-42195\") or the\n full client ID (e.g. \"clever-fox-42195@acme.conductorone.com/wfe\").\n The server normalizes to the cutename portion before lookup.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.workload_federation.v1.WorkloadFederationServiceDeleteTrustRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.workload_federation.v1.WorkloadFederationServiceDeleteTrustResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete Trust",
        "tags": [
          "Workload Federation"
        ],
        "x-speakeasy-group": "WorkloadFederation",
        "x-speakeasy-name-override": "DeleteTrust"
      },
      "get": {
        "description": "GetTrust returns a trust by ID for a service principal.",
        "operationId": "c1.api.workload_federation.v1.WorkloadFederationService.GetTrust",
        "parameters": [
          {
            "in": "path",
            "name": "service_principal_id",
            "required": true,
            "schema": {
              "description": "The service principal ID (from URL path).",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "client_id",
            "required": true,
            "schema": {
              "description": "The trust client ID. Accepts the cutename (e.g. \"clever-fox-42195\") or the\n full client ID (e.g. \"clever-fox-42195@acme.conductorone.com/wfe\").\n The server normalizes to the cutename portion before lookup.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.workload_federation.v1.WorkloadFederationServiceGetTrustResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Trust",
        "tags": [
          "Workload Federation"
        ],
        "x-speakeasy-group": "WorkloadFederation",
        "x-speakeasy-name-override": "GetTrust"
      },
      "patch": {
        "description": "UpdateTrust updates a trust's mutable fields. The provider_id is immutable.",
        "operationId": "c1.api.workload_federation.v1.WorkloadFederationService.UpdateTrust",
        "parameters": [
          {
            "in": "path",
            "name": "service_principal_id",
            "required": true,
            "schema": {
              "description": "The service principal ID (from URL path).",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "client_id",
            "required": true,
            "schema": {
              "description": "The full client ID of the trust (e.g., \"clever-fox-42195@acme.conductorone.com/wfe\").\n Used as the client_id parameter in RFC 8693 token exchange requests.",
              "readOnly": true,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.workload_federation.v1.WorkloadFederationServiceUpdateTrustRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.workload_federation.v1.WorkloadFederationServiceUpdateTrustResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update Trust",
        "tags": [
          "Workload Federation"
        ],
        "x-speakeasy-group": "WorkloadFederation",
        "x-speakeasy-name-override": "UpdateTrust"
      }
    },
    "/api/v1/service_principals/{service_principal_id}/trusts/{client_id}/test": {
      "post": {
        "description": "TestToken validates a JWT against a specific trust's configuration without\n issuing an access token. Returns per-step validation results for debugging.",
        "operationId": "c1.api.workload_federation.v1.WorkloadFederationService.TestToken",
        "parameters": [
          {
            "in": "path",
            "name": "service_principal_id",
            "required": true,
            "schema": {
              "description": "The service principal ID (from URL path).",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "client_id",
            "required": true,
            "schema": {
              "description": "The trust client ID. Accepts the cutename (e.g. \"clever-fox-42195\") or the\n full client ID (e.g. \"clever-fox-42195@acme.conductorone.com/wfe\").\n The server normalizes to the cutename portion before lookup.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.workload_federation.v1.WorkloadFederationServiceTestTokenRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.workload_federation.v1.WorkloadFederationServiceTestTokenResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Test Token",
        "tags": [
          "Workload Federation"
        ],
        "x-speakeasy-group": "WorkloadFederation",
        "x-speakeasy-name-override": "TestToken"
      }
    },
    "/api/v1/session-policies": {
      "get": {
        "description": "List all session policies in your tenant, one page at a time.",
        "operationId": "c1.api.session_policy.v1.SessionPolicyService.List",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.session_policy.v1.SessionPolicyServiceListResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List",
        "tags": [
          "Session Policy"
        ],
        "x-speakeasy-group": "SessionPolicy",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Create a session policy.",
        "operationId": "c1.api.session_policy.v1.SessionPolicyService.Create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.session_policy.v1.SessionPolicyServiceCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.session_policy.v1.SessionPolicyServiceCreateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create",
        "tags": [
          "Session Policy"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "SessionPolicy#create"
        },
        "x-speakeasy-group": "SessionPolicy",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/session-policies/{id}": {
      "delete": {
        "description": "Delete a session policy by ID.",
        "operationId": "c1.api.session_policy.v1.SessionPolicyService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.session_policy.v1.SessionPolicyServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.session_policy.v1.SessionPolicyServiceDeleteResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete",
        "tags": [
          "Session Policy"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "SessionPolicy#delete"
        },
        "x-speakeasy-group": "SessionPolicy",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get a session policy by ID.",
        "operationId": "c1.api.session_policy.v1.SessionPolicyService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.session_policy.v1.SessionPolicyServiceGetResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "Session Policy"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": null,
          "terraform-resource": "SessionPolicy#read"
        },
        "x-speakeasy-group": "SessionPolicy",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update a session policy. Supply the policy object and an update mask\n listing the fields to change; omitted fields are left as-is.",
        "operationId": "c1.api.session_policy.v1.SessionPolicyService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Unique identifier for the policy.",
              "readOnly": true,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.session_policy.v1.SessionPolicyServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.session_policy.v1.SessionPolicyServiceUpdateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update",
        "tags": [
          "Session Policy"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "SessionPolicy#update"
        },
        "x-speakeasy-group": "SessionPolicy",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/session-policies/{id}/assignments": {
      "get": {
        "description": "List the principals assigned to a session policy, including both direct\n assignments and those conferred through a group.",
        "operationId": "c1.api.session_policy.v1.SessionPolicyService.ListAssignments",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The session policy whose assignments to list.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.session_policy.v1.SessionPolicyServiceListAssignmentsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Assignments",
        "tags": [
          "Session Policy"
        ],
        "x-speakeasy-group": "SessionPolicy",
        "x-speakeasy-name-override": "ListAssignments"
      }
    },
    "/api/v1/session-policies/{id}/assignments/groups": {
      "post": {
        "description": "Assign a group to a session policy. Every member of the group becomes\n assigned to the policy; because group membership is expanded\n asynchronously, the per-user effect is eventually consistent (typically\n within a few minutes).",
        "operationId": "c1.api.session_policy.v1.SessionPolicyService.AssignGroup",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The session policy to assign to.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.session_policy.v1.SessionPolicyServiceAssignGroupRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.session_policy.v1.SessionPolicyServiceAssignGroupResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Assign Group",
        "tags": [
          "Session Policy"
        ],
        "x-speakeasy-group": "SessionPolicy",
        "x-speakeasy-name-override": "AssignGroup"
      }
    },
    "/api/v1/session-policies/{id}/assignments/groups/{group_app_entitlement_id}": {
      "delete": {
        "description": "Unassign a group from a session policy. The per-user effect is eventually\n consistent, mirroring AssignGroup.",
        "operationId": "c1.api.session_policy.v1.SessionPolicyService.UnassignGroup",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The session policy to unassign from.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "group_app_entitlement_id",
            "required": true,
            "schema": {
              "description": "The group's app-entitlement ID.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.session_policy.v1.SessionPolicyServiceUnassignGroupRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.session_policy.v1.SessionPolicyServiceUnassignGroupResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Unassign Group",
        "tags": [
          "Session Policy"
        ],
        "x-speakeasy-group": "SessionPolicy",
        "x-speakeasy-name-override": "UnassignGroup"
      }
    },
    "/api/v1/session-policies/{id}/assignments/users": {
      "post": {
        "description": "Assign a user to a session policy. The assignment takes effect immediately.",
        "operationId": "c1.api.session_policy.v1.SessionPolicyService.AssignUser",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The session policy to assign to.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.session_policy.v1.SessionPolicyServiceAssignUserRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.session_policy.v1.SessionPolicyServiceAssignUserResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Assign User",
        "tags": [
          "Session Policy"
        ],
        "x-speakeasy-group": "SessionPolicy",
        "x-speakeasy-name-override": "AssignUser"
      }
    },
    "/api/v1/session-policies/{id}/assignments/users/{user_id}": {
      "delete": {
        "description": "Unassign a user from a session policy.",
        "operationId": "c1.api.session_policy.v1.SessionPolicyService.UnassignUser",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The session policy to unassign from.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The user to unassign.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.session_policy.v1.SessionPolicyServiceUnassignUserRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.session_policy.v1.SessionPolicyServiceUnassignUserResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Unassign User",
        "tags": [
          "Session Policy"
        ],
        "x-speakeasy-group": "SessionPolicy",
        "x-speakeasy-name-override": "UnassignUser"
      }
    },
    "/api/v1/session-policies/{id}/users/search": {
      "post": {
        "description": "Searches the users a policy applies to, expanded: direct assignments plus\n per-user expansion of conferred groups, one page at a time. Served from\n the asynchronously-replicated Postgres mirror of the binding store, so a\n just-made assignment may not appear immediately; the user-scoped reads\n (GetEffectiveSessionPolicy, ListUserPolicies) reflect current state.\n Search, not List: the results are a filtered, server-paginated discovery\n over the binding store (query and source facets), not a bounded\n collection of a named object.",
        "operationId": "c1.api.session_policy.v1.SessionPolicyService.SearchPolicyUsers",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The session policy whose applied users to search.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.session_policy.v1.SessionPolicyServiceSearchPolicyUsersRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.session_policy.v1.SessionPolicyServiceSearchPolicyUsersResponse"
                }
              }
            },
            "description": "SessionPolicyServiceSearchPolicyUsersResponse carries one page of the users\n a policy applies to."
          }
        },
        "summary": "Search Policy Users",
        "tags": [
          "Session Policy"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "SessionPolicyUser#read",
          "terraform-resource": null
        },
        "x-speakeasy-group": "SessionPolicy",
        "x-speakeasy-name-override": "SearchPolicyUsers",
        "x-speakeasy-pagination": {
          "inputs": [
            {
              "in": "requestBody",
              "name": "pageToken",
              "type": "cursor"
            }
          ],
          "outputs": {
            "nextCursor": "$.nextPageToken"
          },
          "type": "cursor"
        },
        "x-stability-level": "alpha"
      }
    },
    "/api/v1/settings/ai-governance": {
      "get": {
        "description": "Get the tenant's AI governance settings — the controls behind the admin\n /admin/settings/ai-governance page. Returns the full AIGovernanceSettings:\n allowed MCP client types, default client lifecycle, default tool\n classification, audit verbosity, auto-discovery toggle +\n interval, prefer_code_mode_over_direct_tools, surface_requestable_tools,\n and untrusted_judge_disable.",
        "operationId": "c1.api.ai_governance.v1.AIGovernanceSettingsService.Get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.GetAIGovernanceSettingsResponse"
                }
              }
            },
            "description": "GetAIGovernanceSettingsResponse contains the tenant's AI governance settings."
          }
        },
        "summary": "Get",
        "tags": [
          "AI Governance Settings"
        ],
        "x-speakeasy-group": "AIGovernanceSettings",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update the tenant's AI governance settings. Requires update_mask listing\n which fields to apply (e.g. default_tool_classification,\n audit_verbosity, auto_discovery_enabled,\n discovery_interval, prefer_code_mode_over_direct_tools,\n surface_requestable_tools, untrusted_judge_disable, allowed_client_types,\n default_client_lifecycle).\n Only masked fields change. Returns the updated settings.",
        "operationId": "c1.api.ai_governance.v1.AIGovernanceSettingsService.Update",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.UpdateAIGovernanceSettingsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.UpdateAIGovernanceSettingsResponse"
                }
              }
            },
            "description": "UpdateAIGovernanceSettingsResponse contains the updated AI governance settings."
          }
        },
        "summary": "Update",
        "tags": [
          "AI Governance Settings"
        ],
        "x-speakeasy-group": "AIGovernanceSettings",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/settings/ai-governance/agent-classifier-policy": {
      "get": {
        "description": "Get returns the tenant's classifier policy with its ordered rules. A tenant\n that has never written a policy receives an empty policy.",
        "operationId": "c1.api.ai_governance.v1.AgentClassifierService.GetAgentClassifierPolicy",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.GetAgentClassifierPolicyResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Agent Classifier Policy",
        "tags": [
          "AI Governance Settings"
        ],
        "x-speakeasy-group": "AgentClassifier",
        "x-speakeasy-name-override": "GetAgentClassifierPolicy"
      },
      "post": {
        "description": "Update replaces the policy fields named in update_mask. When `rules` is in\n the mask, the supplied list replaces the entire ordered cascade; rules\n without an ID receive one, and the policy is materialized on first write.",
        "operationId": "c1.api.ai_governance.v1.AgentClassifierService.UpdateAgentClassifierPolicy",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.UpdateAgentClassifierPolicyRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.UpdateAgentClassifierPolicyResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update Agent Classifier Policy",
        "tags": [
          "AI Governance Settings"
        ],
        "x-speakeasy-group": "AgentClassifier",
        "x-speakeasy-name-override": "UpdateAgentClassifierPolicy"
      }
    },
    "/api/v1/settings/ai-governance/history": {
      "get": {
        "description": "List the change history for AI governance settings (newest first).\n Singleton: scoped to the caller's tenant. Admin-tier per object-history convention.",
        "operationId": "c1.api.ai_governance.v1.AIGovernanceSettingsService.ListHistory",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.ListAIGovernanceSettingsHistoryResponse"
                }
              }
            },
            "description": "ListAIGovernanceSettingsHistoryResponse contains a page of AI governance\n settings change-history entries, newest first."
          }
        },
        "summary": "List History",
        "tags": [
          "AI Governance Settings"
        ],
        "x-speakeasy-group": "AIGovernanceSettings",
        "x-speakeasy-name-override": "ListHistory"
      }
    },
    "/api/v1/settings/ai-governance/tenant-defaults": {
      "get": {
        "description": "Get the legacy tenant-default subset of AI governance settings.",
        "operationId": "c1.api.ai_governance.v1.AIGovernanceSettingsService.GetTenantDefaults",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.GetTenantDefaultsResponse"
                }
              }
            },
            "description": "GetTenantDefaultsResponse contains tenant defaults used by\n legacy MCP servers."
          }
        },
        "summary": "Get Tenant Defaults",
        "tags": [
          "AI Governance Settings"
        ],
        "x-speakeasy-group": "AIGovernanceSettings",
        "x-speakeasy-name-override": "GetTenantDefaults"
      }
    },
    "/api/v1/settings/aws-external-id": {
      "get": {
        "description": "Get retrieves the AWS external ID for the tenant, used in IAM role trust policies for AWS connectors.",
        "operationId": "c1.api.settings.v1.AWSExternalIDSettings.Get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.settings.v1.GetAWSExternalIDResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "AWS External ID Settings"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "AWS_EXTERNAL_ID#read",
          "terraform-resource": "AWS_EXTERNAL_ID#read"
        },
        "x-speakeasy-group": "AWSExternalIDSettings",
        "x-speakeasy-name-override": "Get"
      }
    },
    "/api/v1/settings/contacts": {
      "get": {
        "description": "GetContacts returns the organization's security, billing, and operations\n contact email addresses.",
        "operationId": "c1.api.settings.v1.ContactsService.GetContacts",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.settings.v1.GetContactsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Contacts",
        "tags": [
          "Contacts"
        ],
        "x-speakeasy-group": "Contacts",
        "x-speakeasy-name-override": "GetContacts"
      },
      "post": {
        "description": "UpdateContacts updates the organization's security, billing, and\n operations contact email addresses. If update_mask is set, only the\n selected fields are changed; otherwise all contact fields are replaced\n with the values in the request.",
        "operationId": "c1.api.settings.v1.ContactsService.UpdateContacts",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.settings.v1.UpdateContactsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.settings.v1.UpdateContactsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update Contacts",
        "tags": [
          "Contacts"
        ],
        "x-speakeasy-group": "Contacts",
        "x-speakeasy-name-override": "UpdateContacts"
      }
    },
    "/api/v1/settings/cross-app-access": {
      "get": {
        "description": "Get the tenant's cross-app-access settings.",
        "operationId": "c1.api.cross_app_access.v1.XAASettingsService.Get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAASettingsServiceGetResponse"
                }
              }
            },
            "description": "XAASettingsServiceGetResponse returns the tenant's cross-app-access settings."
          }
        },
        "summary": "Get",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAASettings",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update the tenant's cross-app-access settings. Supply the settings object\n and an update mask listing the fields to change; only masked fields are\n applied. Editable paths: enabled, default_grant_lifetime,\n allow_refresh_token_subjects, default_signing_algorithm,\n enabled_signing_algorithms, xaa_id_token_lifetime.",
        "operationId": "c1.api.cross_app_access.v1.XAASettingsService.Update",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAASettingsServiceUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAASettingsServiceUpdateResponse"
                }
              }
            },
            "description": "XAASettingsServiceUpdateResponse returns the updated settings."
          }
        },
        "summary": "Update",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAASettings",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/settings/cross-app-access/history": {
      "get": {
        "description": "List the change history for the tenant's cross-app-access settings (newest\n first). Singleton: scoped to the caller's tenant.",
        "operationId": "c1.api.cross_app_access.v1.XAASettingsService.ListHistory",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Page size (max 200).",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Page token for pagination.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAASettingsServiceListHistoryResponse"
                }
              }
            },
            "description": "XAASettingsServiceListHistoryResponse returns cross-app-access settings\n history entries."
          }
        },
        "summary": "List History",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAASettings",
        "x-speakeasy-name-override": "ListHistory"
      }
    },
    "/api/v1/settings/developer-preferences/user": {
      "get": {
        "description": "Get returns the calling user's developer preferences. Returns the\n zero value (all preferences off) for users who have never updated\n them.",
        "operationId": "c1.api.settings.v1.UserDeveloperPreferencesService.Get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.settings.v1.GetUserDeveloperPreferencesResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "User Developer Preferences"
        ],
        "x-speakeasy-group": "UserDeveloperPreferences",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update modifies the calling user's developer preferences. See the\n service-level comment for cluster-merge semantics.",
        "operationId": "c1.api.settings.v1.UserDeveloperPreferencesService.Update",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.settings.v1.UpdateUserDeveloperPreferencesRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.settings.v1.UpdateUserDeveloperPreferencesResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update",
        "tags": [
          "User Developer Preferences"
        ],
        "x-speakeasy-group": "UserDeveloperPreferences",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/settings/domains": {
      "get": {
        "description": "List returns all verified domains configured for the tenant.",
        "operationId": "c1.api.settings.v1.OrgDomainService.List",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The maximum number of results to return per page.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "A pagination token returned from a previous List call.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.settings.v1.ListOrgDomainsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List",
        "tags": [
          "Org Domain"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "OrgDomains#read",
          "terraform-resource": null
        },
        "x-speakeasy-group": "OrgDomain",
        "x-speakeasy-name-override": "List"
      },
      "put": {
        "description": "Update replaces the tenant's set of verified domains with the provided list.",
        "operationId": "c1.api.settings.v1.OrgDomainService.Update",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.settings.v1.UpdateOrgDomainRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.settings.v1.UpdateOrgDomainResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update",
        "tags": [
          "Org Domain"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "OrgDomains#update"
        },
        "x-speakeasy-group": "OrgDomain",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/settings/email-capabilities": {
      "get": {
        "description": "Get returns whether the tenant's provider supports email recipients outside C1.",
        "operationId": "c1.api.settings.v1.EmailCapabilitiesService.Get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.settings.v1.EmailCapabilitiesServiceGetResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "Tenant Email Provider"
        ],
        "x-speakeasy-group": "EmailCapabilities",
        "x-speakeasy-name-override": "Get"
      }
    },
    "/api/v1/settings/email-provider": {
      "get": {
        "description": "Get retrieves the current tenant email provider configuration.",
        "operationId": "c1.api.settings.v1.TenantEmailProviderService.Get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.settings.v1.GetTenantEmailProviderResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "Tenant Email Provider"
        ],
        "x-speakeasy-group": "TenantEmailProvider",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update creates or updates the tenant email provider configuration.",
        "operationId": "c1.api.settings.v1.TenantEmailProviderService.Update",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.settings.v1.UpdateTenantEmailProviderRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.settings.v1.UpdateTenantEmailProviderResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update",
        "tags": [
          "Tenant Email Provider"
        ],
        "x-speakeasy-group": "TenantEmailProvider",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/settings/email-provider/audit-events": {
      "post": {
        "description": "SearchAuditEvents returns email audit events for the tenant.",
        "operationId": "c1.api.settings.v1.TenantEmailProviderService.SearchAuditEvents",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.settings.v1.SearchEmailAuditEventsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.settings.v1.SearchEmailAuditEventsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Search Audit Events",
        "tags": [
          "Tenant Email Provider"
        ],
        "x-speakeasy-group": "TenantEmailProvider",
        "x-speakeasy-name-override": "SearchAuditEvents"
      }
    },
    "/api/v1/settings/email-provider/test": {
      "post": {
        "description": "Test sends a test email to verify the provider configuration works end-to-end.",
        "operationId": "c1.api.settings.v1.TenantEmailProviderService.Test",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.settings.v1.TestTenantEmailProviderRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.settings.v1.TestTenantEmailProviderResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Test",
        "tags": [
          "Tenant Email Provider"
        ],
        "x-speakeasy-group": "TenantEmailProvider",
        "x-speakeasy-name-override": "Test"
      }
    },
    "/api/v1/settings/identity-policy-defaults": {
      "get": {
        "description": "Get returns the tenant's default identity policies.",
        "operationId": "c1.api.identity_platform.v1.IdentityPolicyTenantDefaultsService.Get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.identity_platform.v1.IdentityPolicyTenantDefaultsServiceGetResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "Identity Policy Defaults"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": null,
          "terraform-resource": "IdentityPolicyTenantDefaults#read"
        },
        "x-speakeasy-group": "IdentityPolicyTenantDefaults",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update changes the tenant's default identity policies. Supply the defaults\n object and an update mask listing the fields to change; omitted fields are\n left as-is.",
        "operationId": "c1.api.identity_platform.v1.IdentityPolicyTenantDefaultsService.Update",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.identity_platform.v1.IdentityPolicyTenantDefaultsServiceUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.identity_platform.v1.IdentityPolicyTenantDefaultsServiceUpdateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update",
        "tags": [
          "Identity Policy Defaults"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "IdentityPolicyTenantDefaults#update"
        },
        "x-speakeasy-group": "IdentityPolicyTenantDefaults",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/settings/notifications/org": {
      "get": {
        "description": "Get retrieves the organization-level notification settings, including per-channel preferences and admin-locked defaults.",
        "operationId": "c1.api.settings.v1.OrgNotificationSettingsService.Get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.settings.v1.GetOrgNotificationSettingsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "Org Notification Settings"
        ],
        "x-speakeasy-group": "OrgNotificationSettings",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update modifies the organization-level notification settings, such as enabling channels and locking preferences for users.",
        "operationId": "c1.api.settings.v1.OrgNotificationSettingsService.Update",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.settings.v1.UpdateOrgNotificationSettingsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.settings.v1.UpdateOrgNotificationSettingsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update",
        "tags": [
          "Org Notification Settings"
        ],
        "x-speakeasy-group": "OrgNotificationSettings",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/settings/notifications/user": {
      "get": {
        "description": "Get retrieves the calling user's notification preferences, merged with organization-level defaults.",
        "operationId": "c1.api.settings.v1.UserNotificationSettingsService.Get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.settings.v1.GetUserNotificationSettingsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "User Notification Settings"
        ],
        "x-speakeasy-group": "UserNotificationSettings",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update modifies the calling user's personal notification preferences for each channel.",
        "operationId": "c1.api.settings.v1.UserNotificationSettingsService.Update",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.settings.v1.UpdateUserNotificationSettingsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.settings.v1.UpdateUserNotificationSettingsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update",
        "tags": [
          "User Notification Settings"
        ],
        "x-speakeasy-group": "UserNotificationSettings",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/settings/onboarding": {
      "get": {
        "description": "Get retrieves the current onboarding progress for the tenant.",
        "operationId": "c1.api.settings.v1.OnboardingSettingsService.Get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.settings.v1.GetOnboardingSettingsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "Onboarding Settings"
        ],
        "x-speakeasy-group": "OnboardingSettings",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update modifies the onboarding progress, such as marking steps complete or dismissing the wizard.",
        "operationId": "c1.api.settings.v1.OnboardingSettingsService.Update",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.settings.v1.UpdateOnboardingSettingsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.settings.v1.UpdateOnboardingSettingsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update",
        "tags": [
          "Onboarding Settings"
        ],
        "x-speakeasy-group": "OnboardingSettings",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/settings/request": {
      "get": {
        "description": "Get returns the tenant's access-request settings.",
        "operationId": "c1.api.settings.v1.RequestSettingsService.Get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.settings.v1.GetRequestSettingsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "Request Settings"
        ],
        "x-speakeasy-group": "RequestSettings",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update modifies the tenant's access-request settings.",
        "operationId": "c1.api.settings.v1.RequestSettingsService.Update",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.settings.v1.UpdateRequestSettingsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.settings.v1.UpdateRequestSettingsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update",
        "tags": [
          "Request Settings"
        ],
        "x-speakeasy-group": "RequestSettings",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/settings/session": {
      "get": {
        "description": "Get retrieves the current session security settings for the tenant.",
        "operationId": "c1.api.settings.v1.SessionSettingsService.Get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.settings.v1.GetSessionSettingsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "Session Settings"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": null,
          "terraform-resource": "SessionSettings#read"
        },
        "x-speakeasy-group": "SessionSettings",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update modifies the session security settings for the tenant, such as session length and IP allowlists.",
        "operationId": "c1.api.settings.v1.SessionSettingsService.Update",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.settings.v1.UpdateSessionSettingsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.settings.v1.UpdateSessionSettingsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update",
        "tags": [
          "Session Settings"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "SessionSettings#update"
        },
        "x-speakeasy-group": "SessionSettings",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/settings/session/test-source-ip": {
      "post": {
        "description": "TestSourceIP checks whether a given IP address would be allowed by the specified CIDR allowlist rules.",
        "operationId": "c1.api.settings.v1.SessionSettingsService.TestSourceIP",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.settings.v1.TestSourceIPRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.settings.v1.TestSourceIPResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Test Source Ip",
        "tags": [
          "Session Settings"
        ],
        "x-speakeasy-group": "SessionSettings",
        "x-speakeasy-name-override": "TestSourceIP"
      }
    },
    "/api/v1/settings/sso": {
      "get": {
        "description": "Get returns the tenant's SSO provider settings.",
        "operationId": "c1.api.sso.v1.SSOSettingsService.Get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.sso.v1.SSOSettingsServiceGetResponse"
                }
              }
            },
            "description": "SSOSettingsServiceGetResponse returns the tenant's SSO provider settings."
          }
        },
        "summary": "Get",
        "tags": [
          "SSO"
        ],
        "x-speakeasy-group": "SSOSettings",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update changes the tenant's SSO provider settings. Supply the settings\n object and an update mask listing the fields to change; only masked fields\n are applied. Editable paths: enabled, default_subject_type,\n default_assertion_lifetime, default_id_token_signed_response_alg.",
        "operationId": "c1.api.sso.v1.SSOSettingsService.Update",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOSettingsServiceUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.sso.v1.SSOSettingsServiceUpdateResponse"
                }
              }
            },
            "description": "SSOSettingsServiceUpdateResponse returns the updated settings."
          }
        },
        "summary": "Update",
        "tags": [
          "SSO"
        ],
        "x-speakeasy-group": "SSOSettings",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/settings/sso/history": {
      "get": {
        "description": "ListHistory returns the SSO settings change history, newest first.",
        "operationId": "c1.api.sso.v1.SSOSettingsService.ListHistory",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Maximum number of results to return per page.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Pagination token from a previous response.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.sso.v1.SSOSettingsServiceListHistoryResponse"
                }
              }
            },
            "description": "SSOSettingsServiceListHistoryResponse returns SSO settings history entries."
          }
        },
        "summary": "List History",
        "tags": [
          "SSO"
        ],
        "x-speakeasy-group": "SSOSettings",
        "x-speakeasy-name-override": "ListHistory"
      }
    },
    "/api/v1/sign-in-policies": {
      "get": {
        "description": "List all sign-in policies in your tenant, one page at a time.",
        "operationId": "c1.api.sign_in_policy.v1.SignInPolicyService.List",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The maximum number of results to return per page.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "A pagination token from a previous List response.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.sign_in_policy.v1.SignInPolicyServiceListResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List",
        "tags": [
          "Sign-In Policy"
        ],
        "x-speakeasy-group": "SignInPolicy",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Create a sign-in policy.",
        "operationId": "c1.api.sign_in_policy.v1.SignInPolicyService.Create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.sign_in_policy.v1.SignInPolicyServiceCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.sign_in_policy.v1.SignInPolicyServiceCreateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create",
        "tags": [
          "Sign-In Policy"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "SignInPolicy#create"
        },
        "x-speakeasy-group": "SignInPolicy",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/sign-in-policies/{id}": {
      "delete": {
        "description": "Delete a sign-in policy by ID.",
        "operationId": "c1.api.sign_in_policy.v1.SignInPolicyService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the policy to delete.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.sign_in_policy.v1.SignInPolicyServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.sign_in_policy.v1.SignInPolicyServiceDeleteResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete",
        "tags": [
          "Sign-In Policy"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "SignInPolicy#delete"
        },
        "x-speakeasy-group": "SignInPolicy",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get a sign-in policy by ID.",
        "operationId": "c1.api.sign_in_policy.v1.SignInPolicyService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the policy to retrieve.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.sign_in_policy.v1.SignInPolicyServiceGetResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "Sign-In Policy"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": null,
          "terraform-resource": "SignInPolicy#read"
        },
        "x-speakeasy-group": "SignInPolicy",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update a sign-in policy. Supply the policy object and an update mask\n listing the fields to change; omitted fields are left as-is.",
        "operationId": "c1.api.sign_in_policy.v1.SignInPolicyService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Unique identifier for the policy.",
              "readOnly": true,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.sign_in_policy.v1.SignInPolicyServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.sign_in_policy.v1.SignInPolicyServiceUpdateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update",
        "tags": [
          "Sign-In Policy"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "SignInPolicy#update"
        },
        "x-speakeasy-group": "SignInPolicy",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/spend-insights/attribution/search": {
      "post": {
        "description": "Get ranked settled-spend attribution groups for one dimension and time window.",
        "operationId": "c1.api.spendinsights.v1.SpendInsightsService.GetAttributionRollups",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.spendinsights.v1.GetAttributionRollupsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.spendinsights.v1.GetAttributionRollupsResponse"
                }
              }
            },
            "description": "GetAttributionRollupsResponse contains one page of ranked attribution groups."
          }
        },
        "summary": "Get Attribution Rollups",
        "tags": [
          "Spend Insights"
        ],
        "x-speakeasy-group": "SpendInsights",
        "x-speakeasy-name-override": "GetAttributionRollups"
      }
    },
    "/api/v1/spend-insights/denials/search": {
      "post": {
        "description": "Search budget-denial episodes for the organization within a time window.\n Requires the denial-read permission.",
        "operationId": "c1.api.spendinsights.v1.SpendInsightsService.SearchDenials",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.spendinsights.v1.SearchDenialsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.spendinsights.v1.SearchDenialsResponse"
                }
              }
            },
            "description": "SearchDenialsResponse contains one page of denial episodes."
          }
        },
        "summary": "Search Denials",
        "tags": [
          "Spend Insights"
        ],
        "x-speakeasy-group": "SpendInsights",
        "x-speakeasy-name-override": "SearchDenials"
      }
    },
    "/api/v1/spend-insights/denials/{block_id}": {
      "get": {
        "description": "Get one budget-denial episode by its unique ID.",
        "operationId": "c1.api.spendinsights.v1.SpendInsightsService.GetDenial",
        "parameters": [
          {
            "in": "path",
            "name": "block_id",
            "required": true,
            "schema": {
              "description": "Unique identifier for the denial episode.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.spendinsights.v1.GetDenialResponse"
                }
              }
            },
            "description": "GetDenialResponse contains a denial episode and its first-refusal context."
          }
        },
        "summary": "Get Denial",
        "tags": [
          "Spend Insights"
        ],
        "x-speakeasy-group": "SpendInsights",
        "x-speakeasy-name-override": "GetDenial"
      }
    },
    "/api/v1/spend-insights/effective-limits/{user_id}": {
      "get": {
        "description": "Resolve the budget limits and current usage that apply to a user.\n Optionally includes application-specific limits.",
        "operationId": "c1.api.spendinsights.v1.SpendInsightsService.ResolveEffectiveLimits",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "User whose effective limits should be resolved.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "app_id",
            "schema": {
              "description": "Optional application used to include application-specific limits.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.spendinsights.v1.ResolveEffectiveLimitsResponse"
                }
              }
            },
            "description": "ResolveEffectiveLimitsResponse contains the limits currently applying to a user."
          }
        },
        "summary": "Resolve Effective Limits",
        "tags": [
          "Spend Insights"
        ],
        "x-speakeasy-group": "SpendInsights",
        "x-speakeasy-name-override": "ResolveEffectiveLimits"
      }
    },
    "/api/v1/spend-insights/my/forecast": {
      "get": {
        "description": "Get the caller's forecast for settled AI spend through the current calendar month.",
        "operationId": "c1.api.spendinsights.v1.SpendInsightsService.GetMySpendForecast",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.tsdb.v1.GetMetricForecastResponse"
                }
              }
            },
            "description": "GetMetricForecastResponse contains the forecast for the requested metric."
          }
        },
        "summary": "Get My Spend Forecast",
        "tags": [
          "Spend Insights"
        ],
        "x-speakeasy-group": "SpendInsights",
        "x-speakeasy-name-override": "GetMySpendForecast"
      }
    },
    "/api/v1/spend-insights/my/history": {
      "get": {
        "description": "Get the caller's settled AI spend history and current calendar-month totals.",
        "operationId": "c1.api.spendinsights.v1.SpendInsightsService.GetMySpendHistory",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.spendinsights.v1.GetMySpendHistoryResponse"
                }
              }
            },
            "description": "GetMySpendHistoryResponse contains the caller's complete-day history and\n current calendar-month totals."
          }
        },
        "summary": "Get My Spend History",
        "tags": [
          "Spend Insights"
        ],
        "x-speakeasy-group": "SpendInsights",
        "x-speakeasy-name-override": "GetMySpendHistory"
      }
    },
    "/api/v1/spend-insights/my/status": {
      "get": {
        "description": "Get the caller's budget limits and current usage. An optional denial ID\n includes that denial only when it is visible to the caller.",
        "operationId": "c1.api.spendinsights.v1.SpendInsightsService.GetMySpendStatus",
        "parameters": [
          {
            "in": "query",
            "name": "app_id",
            "schema": {
              "description": "Optional application used to include application-specific limits.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "block_id",
            "schema": {
              "description": "Optional denial episode to include when it is visible to the caller.\n app_id does not grant access to this episode.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.spendinsights.v1.GetMySpendStatusResponse"
                }
              }
            },
            "description": "GetMySpendStatusResponse contains the caller's effective limits and optional denial."
          }
        },
        "summary": "Get My Spend Status",
        "tags": [
          "Spend Insights"
        ],
        "x-speakeasy-group": "SpendInsights",
        "x-speakeasy-name-override": "GetMySpendStatus"
      }
    },
    "/api/v1/spend-insights/my/usage/search": {
      "post": {
        "description": "Search the caller's retained, finalized AI calls. This is not an\n organization report or a provider invoice.",
        "operationId": "c1.api.spendinsights.v1.SpendInsightsService.SearchMySpendUsage",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.spendinsights.v1.SearchMySpendUsageRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.spendinsights.v1.SearchMySpendUsageResponse"
                }
              }
            },
            "description": "SearchMySpendUsageResponse contains one page of caller-only usage."
          }
        },
        "summary": "Search My Spend Usage",
        "tags": [
          "Spend Insights"
        ],
        "x-speakeasy-group": "SpendInsights",
        "x-speakeasy-name-override": "SearchMySpendUsage"
      }
    },
    "/api/v1/spend-insights/overview": {
      "post": {
        "description": "Get an organization-wide spend overview for a requested time window.\n Returns current budget headroom, trends, forecasts, usage coverage, and denials.",
        "operationId": "c1.api.spendinsights.v1.SpendInsightsService.GetOverview",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.spendinsights.v1.GetOverviewRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.spendinsights.v1.GetOverviewResponse"
                }
              }
            },
            "description": "GetOverviewResponse contains current budget state and spend activity for the\n requested reporting window."
          }
        },
        "summary": "Get Overview",
        "tags": [
          "Spend Insights"
        ],
        "x-speakeasy-group": "SpendInsights",
        "x-speakeasy-name-override": "GetOverview"
      }
    },
    "/api/v1/ssf-receiver-streams": {
      "get": {
        "description": "List returns a paginated list of all SSF receiver streams configured for the tenant.",
        "operationId": "c1.api.ssf_receiver.v1.SSFReceiverStreamService.List",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Maximum number of streams to return per page.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Token from a previous ListResponse to fetch the next page of results.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ssf_receiver.v1.SSFReceiverStreamServiceListResponse"
                }
              }
            },
            "description": "SSFReceiverStreamServiceListResponse contains a page of SSF receiver streams."
          }
        },
        "summary": "List",
        "tags": [
          "SSF Receiver"
        ],
        "x-speakeasy-group": "SSFReceiverStream",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Create registers a new SSF receiver stream with the specified configuration and returns the created stream along with the push auth token (if push delivery).",
        "operationId": "c1.api.ssf_receiver.v1.SSFReceiverStreamService.Create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ssf_receiver.v1.SSFReceiverStreamServiceCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ssf_receiver.v1.SSFReceiverStreamServiceCreateResponse"
                }
              }
            },
            "description": "SSFReceiverStreamServiceCreateResponse returns the created stream and the push auth token in plaintext."
          }
        },
        "summary": "Create",
        "tags": [
          "SSF Receiver"
        ],
        "x-speakeasy-group": "SSFReceiverStream",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/ssf-receiver-streams/{id}": {
      "delete": {
        "description": "Delete removes an SSF receiver stream and stops receiving events from the associated transmitter.",
        "operationId": "c1.api.ssf_receiver.v1.SSFReceiverStreamService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the SSF receiver stream to delete.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ssf_receiver.v1.SSFReceiverStreamServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ssf_receiver.v1.SSFReceiverStreamServiceDeleteResponse"
                }
              }
            },
            "description": "SSFReceiverStreamServiceDeleteResponse is empty on success."
          }
        },
        "summary": "Delete",
        "tags": [
          "SSF Receiver"
        ],
        "x-speakeasy-group": "SSFReceiverStream",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get retrieves a single SSF receiver stream by its ID.",
        "operationId": "c1.api.ssf_receiver.v1.SSFReceiverStreamService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the SSF receiver stream to retrieve.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ssf_receiver.v1.SSFReceiverStreamServiceGetResponse"
                }
              }
            },
            "description": "SSFReceiverStreamServiceGetResponse contains the requested SSF receiver stream."
          }
        },
        "summary": "Get",
        "tags": [
          "SSF Receiver"
        ],
        "x-speakeasy-group": "SSFReceiverStream",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update modifies an existing SSF receiver stream's configuration. Only fields specified in the update mask are changed.",
        "operationId": "c1.api.ssf_receiver.v1.SSFReceiverStreamService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The unique identifier of this SSF receiver stream.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ssf_receiver.v1.SSFReceiverStreamServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ssf_receiver.v1.SSFReceiverStreamServiceUpdateResponse"
                }
              }
            },
            "description": "SSFReceiverStreamServiceUpdateResponse contains the updated SSF receiver stream."
          }
        },
        "summary": "Update",
        "tags": [
          "SSF Receiver"
        ],
        "x-speakeasy-group": "SSFReceiverStream",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/ssf-receiver-streams/{id}/test": {
      "post": {
        "description": "Test validates an SSF receiver stream's configuration by checking JWKS reachability, identity resolution, and action preview without processing real events.",
        "operationId": "c1.api.ssf_receiver.v1.SSFReceiverStreamService.Test",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the SSF receiver stream to test.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ssf_receiver.v1.SSFReceiverStreamServiceTestRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ssf_receiver.v1.SSFReceiverStreamServiceTestResponse"
                }
              }
            },
            "description": "SSFReceiverStreamServiceTestResponse reports the results of the stream configuration test across JWKS, identity, and action readiness checks."
          }
        },
        "summary": "Test",
        "tags": [
          "SSF Receiver"
        ],
        "x-speakeasy-group": "SSFReceiverStream",
        "x-speakeasy-name-override": "Test"
      }
    },
    "/api/v1/ssf-receiver-streams/{stream_id}/events": {
      "get": {
        "description": "List returns a paginated list of events received on a specific SSF receiver stream, ordered by receipt time.",
        "operationId": "c1.api.ssf_receiver.v1.SSFReceiverEventService.List",
        "parameters": [
          {
            "in": "path",
            "name": "stream_id",
            "required": true,
            "schema": {
              "description": "The ID of the SSF receiver stream to list events for.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Maximum number of events to return per page.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Token from a previous ListResponse to fetch the next page of results.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ssf_receiver.v1.SSFReceiverEventServiceListResponse"
                }
              }
            },
            "description": "SSFReceiverEventServiceListResponse contains a page of received SSF events."
          }
        },
        "summary": "List",
        "tags": [
          "SSF Receiver"
        ],
        "x-speakeasy-group": "SSFReceiverEvent",
        "x-speakeasy-name-override": "List"
      }
    },
    "/api/v1/ssf-receiver-streams/{stream_id}/stats": {
      "get": {
        "description": "GetStats retrieves event processing statistics for a specific SSF receiver stream, including counts of received, acted-on, and failed events.",
        "operationId": "c1.api.ssf_receiver.v1.SSFReceiverStreamService.GetStats",
        "parameters": [
          {
            "in": "path",
            "name": "stream_id",
            "required": true,
            "schema": {
              "description": "The ID of the SSF receiver stream to get stats for.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ssf_receiver.v1.SSFReceiverStreamServiceGetStatsResponse"
                }
              }
            },
            "description": "SSFReceiverStreamServiceGetStatsResponse contains the event processing statistics for the stream."
          }
        },
        "summary": "Get Stats",
        "tags": [
          "SSF Receiver"
        ],
        "x-speakeasy-group": "SSFReceiverStream",
        "x-speakeasy-name-override": "GetStats"
      }
    },
    "/api/v1/sso/applications/saml/parse-sp-metadata": {
      "post": {
        "description": "ParseSAMLServiceProviderMetadata parses one uploaded SAML service-provider\n metadata document and returns the SAML configuration it implies, without\n creating or changing anything. The document is not stored. Use it to\n preview an SP's capabilities before creating a SAML application; edit the\n returned configuration before passing it to Create. Only upload or paste a\n customer-supplied document -- C1 does not fetch metadata URLs.",
        "operationId": "c1.api.sso.v1.SSOApplicationService.ParseSAMLServiceProviderMetadata",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationServiceParseSAMLServiceProviderMetadataRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.sso.v1.SSOApplicationServiceParseSAMLServiceProviderMetadataResponse"
                }
              }
            },
            "description": "SSOApplicationServiceParseSAMLServiceProviderMetadataResponse returns the\n SAML configuration derived from one metadata document and every finding the\n parser raised about it."
          }
        },
        "summary": "Parse Saml Service Provider Metadata",
        "tags": [
          "SSO"
        ],
        "x-speakeasy-group": "SSOApplication",
        "x-speakeasy-name-override": "ParseSAMLServiceProviderMetadata"
      }
    },
    "/api/v1/step-up/providers": {
      "get": {
        "description": "List returns all step-up authentication providers configured for the tenant.",
        "operationId": "c1.api.stepup.v1.StepUpProviderService.List",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.stepup.v1.ListStepUpProvidersResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List",
        "tags": [
          "Step Up Authentication Providers"
        ],
        "x-speakeasy-group": "StepUpProvider",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Create registers a new step-up authentication provider for the tenant.",
        "operationId": "c1.api.stepup.v1.StepUpProviderService.Create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.stepup.v1.CreateStepUpProviderRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.stepup.v1.CreateStepUpProviderResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create",
        "tags": [
          "Step Up Authentication Providers"
        ],
        "x-speakeasy-group": "StepUpProvider",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/step-up/providers/{id}": {
      "delete": {
        "description": "Delete removes a step-up authentication provider from the tenant.",
        "operationId": "c1.api.stepup.v1.StepUpProviderService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The unique identifier of the step-up provider to delete.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.stepup.v1.DeleteStepUpProviderRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.stepup.v1.DeleteStepUpProviderResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete",
        "tags": [
          "Step Up Authentication Providers"
        ],
        "x-speakeasy-group": "StepUpProvider",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get retrieves a single step-up authentication provider by its ID.",
        "operationId": "c1.api.stepup.v1.StepUpProviderService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The unique identifier of the step-up provider to retrieve.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.stepup.v1.GetStepUpProviderResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "Step Up Authentication Providers"
        ],
        "x-speakeasy-group": "StepUpProvider",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update modifies an existing step-up authentication provider's configuration. Use the update mask to specify which fields to change.",
        "operationId": "c1.api.stepup.v1.StepUpProviderService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The unique identifier of the step-up provider.",
              "readOnly": true,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.stepup.v1.UpdateStepUpProviderRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.stepup.v1.UpdateStepUpProviderResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update",
        "tags": [
          "Step Up Authentication Providers"
        ],
        "x-speakeasy-group": "StepUpProvider",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/step-up/providers/{id}/secret": {
      "post": {
        "description": "UpdateSecret rotates the client secret for a step-up authentication provider without modifying other settings.",
        "operationId": "c1.api.stepup.v1.StepUpProviderService.UpdateSecret",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The unique identifier of the step-up provider whose secret is being rotated.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.stepup.v1.UpdateStepUpProviderSecretRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.stepup.v1.UpdateStepUpProviderSecretResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update Secret",
        "tags": [
          "Step Up Authentication Providers"
        ],
        "x-speakeasy-group": "StepUpProvider",
        "x-speakeasy-name-override": "UpdateSecret"
      }
    },
    "/api/v1/step-up/providers/{id}/test": {
      "post": {
        "description": "Test initiates a test authentication flow against a step-up provider and returns a redirect URL for the caller to complete verification.",
        "operationId": "c1.api.stepup.v1.StepUpProviderService.Test",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The unique identifier of the step-up provider to test.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.stepup.v1.TestStepUpProviderRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.stepup.v1.TestStepUpProviderResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Test",
        "tags": [
          "Step Up Authentication Providers"
        ],
        "x-speakeasy-group": "StepUpProvider",
        "x-speakeasy-name-override": "Test"
      }
    },
    "/api/v1/step-up/transactions/{id}": {
      "get": {
        "description": "Get retrieves a specific step-up transaction by ID",
        "operationId": "c1.api.stepup.v1.StepUpTransactionService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "ID of the transaction to retrieve",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.stepup.v1.GetStepUpTransactionResponse"
                }
              }
            },
            "description": "Response message containing the requested step-up transaction"
          }
        },
        "summary": "Get",
        "tags": [
          "Step Up Authentication Transactions"
        ],
        "x-speakeasy-group": "StepUpTransaction",
        "x-speakeasy-name-override": "Get"
      }
    },
    "/api/v1/systemlog/events": {
      "post": {
        "description": "ListEvents pulls Events from the ConductorOne system.\n\n This endpoint should be used to synchronize the\n system log events to external systems.",
        "operationId": "c1.api.systemlog.v1.SystemLogService.ListEvents",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.systemlog.v1.SystemLogServiceListEventsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.systemlog.v1.SystemLogServiceListEventsResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Events",
        "tags": [
          "System Log"
        ],
        "x-speakeasy-group": "SystemLog",
        "x-speakeasy-name-override": "ListEvents"
      }
    },
    "/api/v1/systemlog/exports": {
      "get": {
        "description": "List Exports.",
        "operationId": "c1.api.systemlog.v1.ExportService.List",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.systemlog.v1.ExportServiceListResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List",
        "tags": [
          "System Log Exporter"
        ],
        "x-speakeasy-group": "Export",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Create a system log export.",
        "operationId": "c1.api.systemlog.v1.ExportService.Create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.systemlog.v1.ExportServiceCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.systemlog.v1.ExportServiceCreateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create",
        "tags": [
          "System Log Exporter"
        ],
        "x-speakeasy-group": "Export",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/systemlog/exports/{export_id}": {
      "delete": {
        "description": "Delete a system log export by ID.",
        "operationId": "c1.api.systemlog.v1.ExportService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "export_id",
            "required": true,
            "schema": {
              "description": "The exportId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.systemlog.v1.ExportServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.systemlog.v1.ExportServiceDeleteResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete",
        "tags": [
          "System Log Exporter"
        ],
        "x-speakeasy-group": "Export",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get a system log export by ID",
        "operationId": "c1.api.systemlog.v1.ExportService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "export_id",
            "required": true,
            "schema": {
              "description": "The exportId field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.systemlog.v1.ExportServiceGetResponse"
                }
              }
            },
            "description": "The ExportServiceGetResponse message contains the system log exporter object."
          }
        },
        "summary": "Get",
        "tags": [
          "System Log Exporter"
        ],
        "x-speakeasy-group": "Export",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update a system log export by providing an export object and an update mask.",
        "operationId": "c1.api.systemlog.v1.ExportService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "export_id",
            "required": true,
            "schema": {
              "description": "The exportId field.",
              "readOnly": true,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.systemlog.v1.ExportServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.systemlog.v1.ExportServiceUpdateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update",
        "tags": [
          "System Log Exporter"
        ],
        "x-speakeasy-group": "Export",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/systemlog/exports/{export_id}/events": {
      "post": {
        "description": "List audit events belonging to a specific system log export.",
        "operationId": "c1.api.systemlog.v1.ExportService.ListEvents",
        "parameters": [
          {
            "in": "path",
            "name": "export_id",
            "required": true,
            "schema": {
              "description": "The ID of the system log export whose events are being listed.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.systemlog.v1.ExportServiceListEventsRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.systemlog.v1.ExportServiceListEventsResponse"
                }
              }
            },
            "description": "ExportServiceListEventsResponse is the response containing audit events for an export."
          }
        },
        "summary": "List Events",
        "tags": [
          "System Log Exporter"
        ],
        "x-speakeasy-group": "Export",
        "x-speakeasy-name-override": "ListEvents"
      }
    },
    "/api/v1/task/action": {
      "post": {
        "description": "Create an action task: request a \"request action\" (requestable automation).",
        "operationId": "c1.api.task.v1.TaskService.CreateActionTask",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskServiceCreateActionRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.task.v1.TaskServiceCreateActionResponse"
                }
              }
            },
            "description": "The TaskServiceCreateActionResponse returns the created action task with optional expanded related objects."
          }
        },
        "summary": "Create Action Task",
        "tags": [
          "Task"
        ],
        "x-speakeasy-group": "Task",
        "x-speakeasy-name-override": "CreateActionTask"
      }
    },
    "/api/v1/task/audits": {
      "post": {
        "description": "List audit trail events for a task.",
        "operationId": "c1.api.task.v1.TaskAudit.List",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditListRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.task.v1.TaskAuditListResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List",
        "tags": [
          "Task"
        ],
        "x-speakeasy-group": "TaskAudit",
        "x-speakeasy-name-override": "List"
      }
    },
    "/api/v1/task/grant": {
      "post": {
        "description": "Create a task to grant access. Specify the recipient using identityUserId (a C1 user ID) or appUserId (an application account ID); the recipient is not inferred from the caller.",
        "operationId": "c1.api.task.v1.TaskService.CreateGrantTask",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskServiceCreateGrantRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.task.v1.TaskServiceCreateGrantResponse"
                }
              }
            },
            "description": "The TaskServiceCreateGrantResponse returns a task view which has a task including JSONPATHs to the expanded items in the expanded array."
          }
        },
        "summary": "Create Grant Task",
        "tags": [
          "Task"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "TaskGrant#create"
        },
        "x-speakeasy-group": "Task",
        "x-speakeasy-name-override": "CreateGrantTask"
      }
    },
    "/api/v1/task/offboarding": {
      "post": {
        "description": "Create an offboarding task to remove a user's access across applications.",
        "operationId": "c1.api.task.v1.TaskService.CreateOffboardingTask",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskServiceCreateOffboardingRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.task.v1.TaskServiceCreateOffboardingResponse"
                }
              }
            },
            "description": "The TaskServiceCreateOffboardingResponse returns the created offboarding task with optional expanded related objects."
          }
        },
        "summary": "Create Offboarding Task",
        "tags": [
          "Task"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "TaskOffboarding#create"
        },
        "x-speakeasy-group": "Task",
        "x-speakeasy-name-override": "CreateOffboardingTask"
      }
    },
    "/api/v1/task/resource-action": {
      "post": {
        "description": "Create a task that executes a connector resource-create action, for example\n creating a group in a connected application from a group template. The action\n must be enabled, visible to the caller, and target a connector action of type\n resource-create. Form values are validated against the connector's schema at\n request time.",
        "operationId": "c1.api.task.v1.TaskService.CreateResourceActionTask",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskServiceCreateResourceActionRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.task.v1.TaskServiceCreateResourceActionResponse"
                }
              }
            },
            "description": "The TaskServiceCreateResourceActionResponse returns the created action task with optional expanded related objects."
          }
        },
        "summary": "Create Resource Action Task",
        "tags": [
          "Task"
        ],
        "x-speakeasy-group": "Task",
        "x-speakeasy-name-override": "CreateResourceActionTask"
      }
    },
    "/api/v1/task/revoke": {
      "post": {
        "description": "Create a task to revoke access. Specify the target using identityUserId (a C1 user ID) or appUserId (an application account ID); the target is not inferred from the caller.",
        "operationId": "c1.api.task.v1.TaskService.CreateRevokeTask",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskServiceCreateRevokeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.task.v1.TaskServiceCreateRevokeResponse"
                }
              }
            },
            "description": "The TaskServiceCreateRevokeResponse returns a task view which has a task including JSONPATHs to the expanded items in the expanded array."
          }
        },
        "summary": "Create Revoke Task",
        "tags": [
          "Task"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "TaskRevoke#create"
        },
        "x-speakeasy-group": "Task",
        "x-speakeasy-name-override": "CreateRevokeTask"
      }
    },
    "/api/v1/task/spend-remedy": {
      "post": {
        "description": "Request a precise spending change for a refusal delivered to this caller.\n Repeated submissions return the canonical task; personal app restrictions need no approval.",
        "operationId": "c1.api.task.v1.TaskService.CreateSpendRemedyTask",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskServiceCreateSpendRemedyRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.task.v1.TaskServiceCreateSpendRemedyResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create Spend Remedy Task",
        "tags": [
          "Task"
        ],
        "x-speakeasy-group": "Task",
        "x-speakeasy-name-override": "CreateSpendRemedyTask"
      }
    },
    "/api/v1/tasks/{id}": {
      "get": {
        "description": "Get a task by ID",
        "operationId": "c1.api.task.v1.TaskService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.task.v1.TaskServiceGetResponse"
                }
              }
            },
            "description": "The TaskServiceGetResponse returns a task view which has a task including JSONPATHs to the expanded items in the expanded array."
          }
        },
        "summary": "Get",
        "tags": [
          "Task"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": null,
          "terraform-resource": "Task#read"
        },
        "x-speakeasy-group": "Task",
        "x-speakeasy-name-override": "Get"
      }
    },
    "/api/v1/tasks/{task_id}/action/approve": {
      "post": {
        "description": "Approve the specified policy step on a task.",
        "operationId": "c1.api.task.v1.TaskActionsService.Approve",
        "parameters": [
          {
            "in": "path",
            "name": "task_id",
            "required": true,
            "schema": {
              "description": "The ID of the task to approve.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskActionsServiceApproveRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.task.v1.TaskActionsServiceApproveResponse"
                }
              }
            },
            "description": "The TaskActionsServiceApproveResponse returns a task view with paths indicating the location of expanded items in the array."
          }
        },
        "summary": "Approve",
        "tags": [
          "Task"
        ],
        "x-speakeasy-group": "TaskActions",
        "x-speakeasy-name-override": "Approve"
      }
    },
    "/api/v1/tasks/{task_id}/action/approve-with-step-up": {
      "post": {
        "description": "Approve a task that requires step-up authentication. If a verified step-up transaction ID is provided, the approval is processed immediately. Otherwise, a redirect URL is returned for the caller to complete authentication first.",
        "operationId": "c1.api.task.v1.TaskActionsService.ApproveWithStepUp",
        "parameters": [
          {
            "in": "path",
            "name": "task_id",
            "required": true,
            "schema": {
              "description": "The ID of the task to approve with step-up.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskActionsServiceApproveWithStepUpRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.task.v1.TaskActionsServiceApproveWithStepUpResponse"
                }
              }
            },
            "description": "TaskActionsServiceApproveWithStepUpResponse is the response for approving a task with step-up authentication"
          }
        },
        "summary": "Approve With Step Up",
        "tags": [
          "Task"
        ],
        "x-speakeasy-group": "TaskActions",
        "x-speakeasy-name-override": "ApproveWithStepUp"
      }
    },
    "/api/v1/tasks/{task_id}/action/close": {
      "post": {
        "description": "Close a task, ending its workflow. Async — returns a ticketActionId on\n accept and queues the close; the task's state field is not updated\n synchronously. Poll task_service_get to observe the transition to\n TASK_STATE_CLOSED. When the task has an active provision step, close\n may no-op — finish or cancel the provision step first\n (mark_provision_complete / _errored / _cancelled) before closing.",
        "operationId": "c1.api.task.v1.TaskActionsService.Close",
        "parameters": [
          {
            "in": "path",
            "name": "task_id",
            "required": true,
            "schema": {
              "description": "The ID of the task to close.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskActionsServiceCloseRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.task.v1.TaskActionsServiceCloseResponse"
                }
              }
            },
            "description": "The TaskActionsServiceCloseResponse returns a task view with paths indicating the location of expanded items in the array."
          }
        },
        "summary": "Close",
        "tags": [
          "Task"
        ],
        "x-speakeasy-group": "TaskActions",
        "x-speakeasy-name-override": "Close"
      }
    },
    "/api/v1/tasks/{task_id}/action/comment": {
      "post": {
        "description": "Post a comment on a task without changing its state.",
        "operationId": "c1.api.task.v1.TaskActionsService.Comment",
        "parameters": [
          {
            "in": "path",
            "name": "task_id",
            "required": true,
            "schema": {
              "description": "The ID of the task to be commented on",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskActionsServiceCommentRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.task.v1.TaskActionsServiceCommentResponse"
                }
              }
            },
            "description": "Task actions service comment response returns the task view inluding the expanded array of items that are indicated by the expand mask on the request."
          }
        },
        "summary": "Comment",
        "tags": [
          "Task"
        ],
        "x-speakeasy-group": "TaskActions",
        "x-speakeasy-name-override": "Comment"
      }
    },
    "/api/v1/tasks/{task_id}/action/deny": {
      "post": {
        "description": "Deny the specified policy step on a task. In multi-step policies, this may route to fallback steps rather than finalizing the task outcome.",
        "operationId": "c1.api.task.v1.TaskActionsService.Deny",
        "parameters": [
          {
            "in": "path",
            "name": "task_id",
            "required": true,
            "schema": {
              "description": "The ID of the task to be denied.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskActionsServiceDenyRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.task.v1.TaskActionsServiceDenyResponse"
                }
              }
            },
            "description": "The TaskActionsServiceDenyResponse returns a task view with paths indicating the location of expanded items in the array."
          }
        },
        "summary": "Deny",
        "tags": [
          "Task"
        ],
        "x-speakeasy-group": "TaskActions",
        "x-speakeasy-name-override": "Deny"
      }
    },
    "/api/v1/tasks/{task_id}/action/escalate": {
      "post": {
        "description": "Escalate a grant task to use the emergency access policy, bypassing the normal approval flow. Only valid for grant tasks.",
        "operationId": "c1.api.task.v1.TaskActionsService.EscalateToEmergencyAccess",
        "parameters": [
          {
            "in": "path",
            "name": "task_id",
            "required": true,
            "schema": {
              "description": "The ID of the task to escalate.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskActionsServiceEscalateToEmergencyAccessRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.task.v1.TaskServiceActionResponse"
                }
              }
            },
            "description": "A generic response for task action endpoints, containing the updated task and the ID of the action that was created."
          }
        },
        "summary": "Escalate To Emergency Access",
        "tags": [
          "Task"
        ],
        "x-speakeasy-group": "TaskActions",
        "x-speakeasy-name-override": "EscalateToEmergencyAccess"
      }
    },
    "/api/v1/tasks/{task_id}/action/process": {
      "post": {
        "description": "Trigger immediate processing of a task, bypassing any scheduled wait. For tasks linked to an external system, this also attempts to sync the external state.",
        "operationId": "c1.api.task.v1.TaskActionsService.ProcessNow",
        "parameters": [
          {
            "in": "path",
            "name": "task_id",
            "required": true,
            "schema": {
              "description": "The ID of the task to process now.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskActionsServiceProcessNowRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.task.v1.TaskActionsServiceProcessNowResponse"
                }
              }
            },
            "description": "The TaskActionsServiceProcessNowResponse returns the task view after triggering immediate processing."
          }
        },
        "summary": "Process Now",
        "tags": [
          "Task"
        ],
        "x-speakeasy-group": "TaskActions",
        "x-speakeasy-name-override": "ProcessNow"
      }
    },
    "/api/v1/tasks/{task_id}/action/reassign": {
      "post": {
        "description": "Reassign a task's current policy step to a different set of users. The target step must be an approval, provision, or form step.",
        "operationId": "c1.api.task.v1.TaskActionsService.Reassign",
        "parameters": [
          {
            "in": "path",
            "name": "task_id",
            "required": true,
            "schema": {
              "description": "The ID of the task to reassign.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskActionsServiceReassignRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.task.v1.TaskActionsServiceReassignResponse"
                }
              }
            },
            "description": "The TaskActionsServiceReassignResponse returns a task view with paths indicating the location of expanded items in the array."
          }
        },
        "summary": "Reassign",
        "tags": [
          "Task"
        ],
        "x-speakeasy-group": "TaskActions",
        "x-speakeasy-name-override": "Reassign"
      }
    },
    "/api/v1/tasks/{task_id}/action/reset": {
      "post": {
        "description": "Reset a task and recalculate its policy from scratch. Unlike Restart, this re-evaluates which policy applies to the task.",
        "operationId": "c1.api.task.v1.TaskActionsService.HardReset",
        "parameters": [
          {
            "in": "path",
            "name": "task_id",
            "required": true,
            "schema": {
              "description": "The ID of the task to reset.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskActionsServiceHardResetRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.task.v1.TaskActionsServiceHardResetResponse"
                }
              }
            },
            "description": "The TaskActionsServiceHardResetResponse returns the updated task after a hard reset."
          }
        },
        "summary": "Hard Reset",
        "tags": [
          "Task"
        ],
        "x-speakeasy-group": "TaskActions",
        "x-speakeasy-name-override": "HardReset"
      }
    },
    "/api/v1/tasks/{task_id}/action/restart": {
      "post": {
        "description": "Restart a task, returning it to the beginning of its current policy workflow.",
        "operationId": "c1.api.task.v1.TaskActionsService.Restart",
        "parameters": [
          {
            "in": "path",
            "name": "task_id",
            "required": true,
            "schema": {
              "description": "The ID of the task to restart.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskActionsServiceRestartRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.task.v1.TaskActionsServiceRestartResponse"
                }
              }
            },
            "description": "The TaskActionsServiceRestartResponse returns the updated task after restarting."
          }
        },
        "summary": "Restart",
        "tags": [
          "Task"
        ],
        "x-speakeasy-group": "TaskActions",
        "x-speakeasy-name-override": "Restart"
      }
    },
    "/api/v1/tasks/{task_id}/action/retry-provisioning": {
      "post": {
        "description": "Retry the provisioning of a task whose connector provisioning failed. Resets the\n failed connector actions and re-drives the connector, preserving the already-collected\n approvals. Only valid when the task's current provision step ended in an error.",
        "operationId": "c1.api.task.v1.TaskActionsService.RetryProvisioning",
        "parameters": [
          {
            "in": "path",
            "name": "task_id",
            "required": true,
            "schema": {
              "description": "The ID of the task to retry provisioning for.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskActionsServiceRetryProvisioningRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.task.v1.TaskServiceActionResponse"
                }
              }
            },
            "description": "A generic response for task action endpoints, containing the updated task and the ID of the action that was created."
          }
        },
        "summary": "Retry Provisioning",
        "tags": [
          "Task"
        ],
        "x-speakeasy-group": "TaskActions",
        "x-speakeasy-name-override": "RetryProvisioning"
      }
    },
    "/api/v1/tasks/{task_id}/action/skip-step": {
      "post": {
        "description": "Skip a specific policy step in a task, advancing the task to the next step in the workflow.",
        "operationId": "c1.api.task.v1.TaskActionsService.SkipStep",
        "parameters": [
          {
            "in": "path",
            "name": "task_id",
            "required": true,
            "schema": {
              "description": "The ID of the task containing the step to skip.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskActionsServiceSkipStepRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.task.v1.TaskServiceActionResponse"
                }
              }
            },
            "description": "A generic response for task action endpoints, containing the updated task and the ID of the action that was created."
          }
        },
        "summary": "Skip Step",
        "tags": [
          "Task"
        ],
        "x-speakeasy-group": "TaskActions",
        "x-speakeasy-name-override": "SkipStep"
      }
    },
    "/api/v1/tasks/{task_id}/action/update-grant-duration": {
      "post": {
        "description": "Update the grant duration for a task. Only applies to grant tasks with a single entitlement that are not in a provision step. The new duration must not exceed the entitlement's maximum allowed provision time.",
        "operationId": "c1.api.task.v1.TaskActionsService.UpdateGrantDuration",
        "parameters": [
          {
            "in": "path",
            "name": "task_id",
            "required": true,
            "schema": {
              "description": "The ID of the task to update the grant duration for.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskActionsServiceUpdateGrantDurationRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.task.v1.TaskServiceActionResponse"
                }
              }
            },
            "description": "A generic response for task action endpoints, containing the updated task and the ID of the action that was created."
          }
        },
        "summary": "Update Grant Duration",
        "tags": [
          "Task"
        ],
        "x-speakeasy-group": "TaskActions",
        "x-speakeasy-name-override": "UpdateGrantDuration"
      }
    },
    "/api/v1/tasks/{task_id}/action/update-request-data": {
      "post": {
        "description": "Update the request data on a task that is currently in a form step. The submitted data is validated against the form schema before being applied.",
        "operationId": "c1.api.task.v1.TaskActionsService.UpdateRequestData",
        "parameters": [
          {
            "in": "path",
            "name": "task_id",
            "required": true,
            "schema": {
              "description": "The ID of the task containing the request data to update.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.task.v1.TaskActionsServiceUpdateRequestDataRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.task.v1.TaskServiceActionResponse"
                }
              }
            },
            "description": "A generic response for task action endpoints, containing the updated task and the ID of the action that was created."
          }
        },
        "summary": "Update Request Data",
        "tags": [
          "Task"
        ],
        "x-speakeasy-group": "TaskActions",
        "x-speakeasy-name-override": "UpdateRequestData"
      }
    },
    "/api/v1/tasks/{task_id}/spend-remedy-review": {
      "get": {
        "description": "Read the requester's own immutable terms or reviewer-authorized financial context.\n Requesters never receive shared controls; former decision-makers receive frozen history only.",
        "operationId": "c1.api.task.v1.TaskService.GetSpendRemedyReview",
        "parameters": [
          {
            "in": "path",
            "name": "task_id",
            "required": true,
            "schema": {
              "description": "The taskId field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.task.v1.TaskServiceGetSpendRemedyReviewResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Spend Remedy Review",
        "tags": [
          "Task"
        ],
        "x-speakeasy-group": "Task",
        "x-speakeasy-name-override": "GetSpendRemedyReview"
      }
    },
    "/api/v1/terraform-export/schema": {
      "get": {
        "description": "GetSchema returns the field-by-field Terraform mapping for one C1\n API object type. Cacheable by (object_fqn, block_kind,\n provider_version).",
        "operationId": "c1.api.terraform_export.v1.TerraformExportService.GetSchema",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.terraform_export.v1.GetSchemaResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Schema",
        "tags": [
          "Terraform Export"
        ],
        "x-speakeasy-group": "TerraformExport",
        "x-speakeasy-name-override": "GetSchema"
      }
    },
    "/api/v1/tool_gates": {
      "get": {
        "description": "List returns tool gates for the tenant, paginated.",
        "operationId": "c1.api.ai_governance.v1.ToolGatesService.List",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.ToolGatesServiceListResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List",
        "tags": [
          "Tool Gates"
        ],
        "x-speakeasy-group": "ToolGates",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Create creates a tool gate.",
        "operationId": "c1.api.ai_governance.v1.ToolGatesService.Create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.ToolGatesServiceCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.ToolGatesServiceCreateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create",
        "tags": [
          "Tool Gates"
        ],
        "x-speakeasy-group": "ToolGates",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/tool_gates/{id}": {
      "get": {
        "description": "Get returns a tool gate by ID.",
        "operationId": "c1.api.ai_governance.v1.ToolGatesService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.ToolGatesServiceGetResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "Tool Gates"
        ],
        "x-speakeasy-group": "ToolGates",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update modifies a tool gate's mutable fields.",
        "operationId": "c1.api.ai_governance.v1.ToolGatesService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.ToolGatesServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.ToolGatesServiceUpdateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update",
        "tags": [
          "Tool Gates"
        ],
        "x-speakeasy-group": "ToolGates",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/tool_gates/{id}/delete": {
      "post": {
        "description": "Delete removes a tool gate by ID.",
        "operationId": "c1.api.ai_governance.v1.ToolGatesService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.ToolGatesServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.ToolGatesServiceDeleteResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete",
        "tags": [
          "Tool Gates"
        ],
        "x-speakeasy-group": "ToolGates",
        "x-speakeasy-name-override": "Delete"
      }
    },
    "/api/v1/user-attribute-mappings": {
      "get": {
        "description": "List the user attribute mappings configured for the tenant. Results are sorted within each page, but no ordering is guaranteed across page boundaries.",
        "operationId": "c1.api.user.v1.UserAttributeManagementService.List",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeManagementServiceListResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List",
        "tags": [
          "UserAttributeMappings"
        ],
        "x-speakeasy-group": "UserAttributeManagement",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Create a user attribute mapping.",
        "operationId": "c1.api.user.v1.UserAttributeManagementService.Create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeManagementServiceCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeManagementServiceCreateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create",
        "tags": [
          "UserAttributeMappings"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "UserAttributeMapping#create"
        },
        "x-speakeasy-group": "UserAttributeManagement",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/user-attribute-mappings/{id}": {
      "delete": {
        "description": "Delete a user attribute mapping by its mapping ID.",
        "operationId": "c1.api.user.v1.UserAttributeManagementService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeManagementServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeManagementServiceDeleteResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete",
        "tags": [
          "UserAttributeMappings"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "UserAttributeMapping#delete"
        },
        "x-speakeasy-group": "UserAttributeManagement",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get a user attribute mapping by its mapping ID.",
        "operationId": "c1.api.user.v1.UserAttributeManagementService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeManagementServiceGetResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "UserAttributeMappings"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "UserAttributeMapping#read",
          "terraform-resource": "UserAttributeMapping#read"
        },
        "x-speakeasy-group": "UserAttributeManagement",
        "x-speakeasy-name-override": "Get"
      },
      "put": {
        "description": "Update a user attribute mapping by its mapping ID. The display name and app user profile attribute key are derived from attribute_type. Profile type bindings are updated only when update_mask contains profile_type_ids.",
        "operationId": "c1.api.user.v1.UserAttributeManagementService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeManagementServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeManagementServiceUpdateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update",
        "tags": [
          "UserAttributeMappings"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "UserAttributeMapping#update"
        },
        "x-speakeasy-group": "UserAttributeManagement",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/user-attribute-types": {
      "get": {
        "description": "List the well-known and custom user attribute types available for configuring mappings.",
        "operationId": "c1.api.user.v1.UserAttributeManagementService.ListAttributeTypes",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.user.v1.UserAttributeManagementServiceListAttributeTypesResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Attribute Types",
        "tags": [
          "UserAttributeMappings"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "UserAttributeTypes#read",
          "terraform-resource": null
        },
        "x-speakeasy-group": "UserAttributeManagement",
        "x-speakeasy-name-override": "ListAttributeTypes"
      }
    },
    "/api/v1/users": {
      "get": {
        "description": "List users.",
        "operationId": "c1.api.user.v1.UserService.List",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.user.v1.UserServiceListResponse"
                }
              }
            },
            "description": "The UserServiceListResponse message contains a list of results and a nextPageToken if applicable."
          }
        },
        "summary": "List",
        "tags": [
          "User"
        ],
        "x-speakeasy-group": "User",
        "x-speakeasy-name-override": "List"
      }
    },
    "/api/v1/users/introspect": {
      "post": {
        "description": "Introspect returns the calling user's full UserView (profile, manager, attributes)\n resolved from the passport on the request.",
        "operationId": "c1.api.user.v1.UserService.Introspect",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.user.v1.IntrospectRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.user.v1.IntrospectResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Introspect",
        "tags": [
          "User"
        ],
        "x-speakeasy-group": "User",
        "x-speakeasy-name-override": "Introspect"
      }
    },
    "/api/v1/users/{id}": {
      "get": {
        "description": "Get a user by ID.",
        "operationId": "c1.api.user.v1.UserService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.user.v1.UserServiceGetResponse"
                }
              }
            },
            "description": "The UserServiceGetResponse returns a user view which has a user including JSONPATHs to the expanded items in the expanded array."
          }
        },
        "summary": "Get",
        "tags": [
          "User"
        ],
        "x-speakeasy-group": "User",
        "x-speakeasy-name-override": "Get"
      }
    },
    "/api/v1/users/{user_id}/effective-session-policy": {
      "get": {
        "description": "Returns the single effective session policy for a user and why it applies:\n the assigned policy with the highest priority, else the tenant default,\n else none. Read-only and diagnostic: it reflects current assignment state\n rather than the resolver's cached resolution.",
        "operationId": "c1.api.session_policy.v1.SessionPolicyService.GetEffectiveSessionPolicy",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The user whose effective session policy to resolve.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.session_policy.v1.SessionPolicyServiceGetEffectiveSessionPolicyResponse"
                }
              }
            },
            "description": "SessionPolicyServiceGetEffectiveSessionPolicyResponse carries the effective\n policy and why it applies."
          }
        },
        "summary": "Get Effective Session Policy",
        "tags": [
          "Session Policy"
        ],
        "x-speakeasy-group": "SessionPolicy",
        "x-speakeasy-name-override": "GetEffectiveSessionPolicy",
        "x-stability-level": "alpha"
      }
    },
    "/api/v1/users/{user_id}/mcp_toolsets/requestable_connectors": {
      "get": {
        "description": "ListRequestableConnectors returns the (app_id, connector_id) pairs that\n have at least one requestable toolset (access profile) for the given user.",
        "operationId": "c1.api.ai_governance.v1.MCPAccessProfileService.ListRequestableConnectors",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The user ID to check requestable profiles for.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfileServiceListRequestableConnectorsResponse"
                }
              }
            },
            "description": "MCPAccessProfileServiceListRequestableConnectorsResponse returns connector references\n that have requestable MCP access profiles."
          }
        },
        "summary": "List Requestable Connectors",
        "tags": [
          "MCP Toolsets"
        ],
        "x-speakeasy-group": "MCPAccessProfile",
        "x-speakeasy-name-override": "ListRequestableConnectors"
      }
    },
    "/api/v1/users/{user_id}/mcp_toolsets/requestable_connectors/search": {
      "get": {
        "description": "SearchRequestableConnectors returns card-ready entries — one per MCP\n connector the user can browse and request tools for — with server-side\n visibility + policy filtering, grant-enrollment-status filtering, text\n search over the connector display name, and pagination. Backs the\n Requests -\u003e AI tools connector cards. Held connectors are surfaced even\n when no longer requestable so \"My tools\" reflects what the user actually\n holds.",
        "operationId": "c1.api.ai_governance.v1.MCPAccessProfileService.SearchRequestableConnectors",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The user the requestable set is scoped to.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "grant_enrollment_status",
            "schema": {
              "description": "Filters by whether the user already holds the connector's tools.\n UNSPECIFIED = all, FULLY_GRANTED = held, NOT_GRANTED = available.",
              "enum": [
                "GRANT_ENROLLMENT_STATUS_UNSPECIFIED",
                "GRANT_ENROLLMENT_STATUS_FULLY_GRANTED",
                "GRANT_ENROLLMENT_STATUS_NOT_GRANTED",
                "GRANT_ENROLLMENT_STATUS_PARTIALLY_GRANTED"
              ],
              "type": "string",
              "x-speakeasy-unknown-values": "allow"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Page size (max 100).",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Page token for pagination.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "query",
            "schema": {
              "description": "Case-insensitive search over the connector display name.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.MCPAccessProfileServiceSearchRequestableConnectorsResponse"
                }
              }
            },
            "description": "MCPAccessProfileServiceSearchRequestableConnectorsResponse returns one page\n of card-ready requestable-connector entries."
          }
        },
        "summary": "Search Requestable Connectors",
        "tags": [
          "MCP Toolsets"
        ],
        "x-speakeasy-group": "MCPAccessProfile",
        "x-speakeasy-name-override": "SearchRequestableConnectors"
      }
    },
    "/api/v1/users/{user_id}/profile-types": {
      "get": {
        "description": "Retrieve the profile types associated with a user across their connected apps.",
        "operationId": "c1.api.user.v1.UserService.GetUserProfileTypes",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The ID of the user whose profile types are being retrieved.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.user.v1.GetUserProfileTypesResponse"
                }
              }
            },
            "description": "GetUserProfileTypesResponse is the response containing the profile types for a user."
          }
        },
        "summary": "Get User Profile Types",
        "tags": [
          "User"
        ],
        "x-speakeasy-group": "User",
        "x-speakeasy-name-override": "GetUserProfileTypes"
      }
    },
    "/api/v1/users/{user_id}/session-policies": {
      "get": {
        "description": "Lists every session policy that applies to a user — direct,\n group-conferred, and the tenant default when set — each with its source.\n Candidates are returned in assignment order; the resolver's priority\n tie-break happens at evaluation, not here.",
        "operationId": "c1.api.session_policy.v1.SessionPolicyService.ListUserPolicies",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The user whose candidate session policies to list.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.session_policy.v1.SessionPolicyServiceListUserPoliciesResponse"
                }
              }
            },
            "description": "SessionPolicyServiceListUserPoliciesResponse carries every policy that\n applies to the user. Unpaginated: the candidate set is the user's assigned\n policies plus at most one tenant default."
          }
        },
        "summary": "List User Policies",
        "tags": [
          "Session Policy"
        ],
        "x-speakeasy-group": "SessionPolicy",
        "x-speakeasy-name-override": "ListUserPolicies",
        "x-stability-level": "alpha"
      }
    },
    "/api/v1/users/{user_id}/set-delegation-by-admin": {
      "post": {
        "description": "Set or update an expiring delegation binding for a user, allowing an admin to designate a temporary delegate.",
        "operationId": "c1.api.user.v1.UserService.SetExpiringUserDelegationBindingByAdmin",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The ID of the user whose tasks will be delegated.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.user.v1.SetExpiringUserDelegationBindingByAdminRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.user.v1.SetExpiringUserDelegationBindingByAdminResponse"
                }
              }
            },
            "description": "SetExpiringUserDelegationBindingByAdminResponse is the response containing the created or updated delegation binding."
          }
        },
        "summary": "Set Expiring User Delegation Binding By Admin",
        "tags": [
          "User"
        ],
        "x-speakeasy-group": "User",
        "x-speakeasy-name-override": "SetExpiringUserDelegationBindingByAdmin"
      }
    },
    "/api/v1/vaults": {
      "post": {
        "description": "Create provisions a new external secret storage vault and returns it.",
        "operationId": "c1.api.vault.v1.VaultService.Create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.vault.v1.VaultServiceCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.vault.v1.VaultServiceCreateResponse"
                }
              }
            },
            "description": "VaultServiceCreateResponse is the response message for creating a new vault."
          }
        },
        "summary": "Create",
        "tags": [
          "Vault"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Vault#create"
        },
        "x-speakeasy-group": "Vault",
        "x-speakeasy-name-override": "Create",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/vaults/{id}": {
      "delete": {
        "description": "Delete a vault by its ID. Active connectors using this vault will no longer be able to access their stored credentials.",
        "operationId": "c1.api.vault.v1.VaultService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The unique identifier of the vault to delete.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.vault.v1.VaultServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.vault.v1.VaultServiceDeleteResponse"
                }
              }
            },
            "description": "Empty response body. Status code indicates success."
          }
        },
        "summary": "Delete",
        "tags": [
          "Vault"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Vault#delete"
        },
        "x-speakeasy-group": "Vault",
        "x-speakeasy-name-override": "Delete",
        "x-stability-level": "draft"
      },
      "get": {
        "description": "Get returns a single vault by its ID.",
        "operationId": "c1.api.vault.v1.VaultService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The unique identifier of the vault to retrieve.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.vault.v1.VaultServiceGetResponse"
                }
              }
            },
            "description": "VaultServiceGetResponse is the response message containing the requested vault."
          }
        },
        "summary": "Get",
        "tags": [
          "Vault"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": null,
          "terraform-resource": "Vault#read"
        },
        "x-speakeasy-group": "Vault",
        "x-speakeasy-name-override": "Get",
        "x-stability-level": "draft"
      },
      "post": {
        "description": "Update modifies an existing vault's properties using a field mask.",
        "operationId": "c1.api.vault.v1.VaultService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The unique identifier of the vault.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.vault.v1.VaultServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.vault.v1.VaultServiceUpdateResponse"
                }
              }
            },
            "description": "VaultServiceUpdateResponse is the response message containing the updated vault."
          }
        },
        "summary": "Update",
        "tags": [
          "Vault"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Vault#update"
        },
        "x-speakeasy-group": "Vault",
        "x-speakeasy-name-override": "Update",
        "x-stability-level": "draft"
      }
    },
    "/api/v1/virtual_mcp_servers": {
      "get": {
        "description": "List the tenant's Virtual MCP Servers.",
        "operationId": "c1.api.ai_governance.v1.VirtualMCPServerService.List",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Maximum number of results to return. The maximum is 100.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Pagination token returned by a previous request.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPServerServiceListResponse"
                }
              }
            },
            "description": "VirtualMCPServerServiceListResponse contains one page of Virtual MCP Servers."
          }
        },
        "summary": "List",
        "tags": [
          "Virtual MCP Servers"
        ],
        "x-speakeasy-group": "VirtualMCPServer",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Create creates a Raw-tools Virtual MCP Server from one Hosted or External\n MCP source or an initially empty Assigned-tools catalog.",
        "operationId": "c1.api.ai_governance.v1.VirtualMCPServerService.Create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPServerServiceCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPServerServiceCreateResponse"
                }
              }
            },
            "description": "VirtualMCPServerServiceCreateResponse contains the created Virtual MCP Server."
          }
        },
        "summary": "Create",
        "tags": [
          "Virtual MCP Servers"
        ],
        "x-speakeasy-group": "VirtualMCPServer",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/virtual_mcp_servers/{id}": {
      "delete": {
        "description": "Delete a Virtual MCP Server. Its route slugs can be reassigned later\n without transferring the deleted server's `use` grants.",
        "operationId": "c1.api.ai_governance.v1.VirtualMCPServerService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Immutable Virtual MCP Server identifier.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPServerServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPServerServiceDeleteResponse"
                }
              }
            },
            "description": "VirtualMCPServerServiceDeleteResponse confirms deletion."
          }
        },
        "summary": "Delete",
        "tags": [
          "Virtual MCP Servers"
        ],
        "x-speakeasy-group": "VirtualMCPServer",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Get a Virtual MCP Server by ID.",
        "operationId": "c1.api.ai_governance.v1.VirtualMCPServerService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Immutable Virtual MCP Server identifier.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPServerServiceGetResponse"
                }
              }
            },
            "description": "VirtualMCPServerServiceGetResponse contains the requested Virtual MCP Server."
          }
        },
        "summary": "Get",
        "tags": [
          "Virtual MCP Servers"
        ],
        "x-speakeasy-group": "VirtualMCPServer",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update mutable fields on a Virtual MCP Server. Renaming preserves the\n previous route as an alias until it is reused; the server ID never changes.",
        "operationId": "c1.api.ai_governance.v1.VirtualMCPServerService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "Immutable unique identifier for this Virtual MCP Server.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPServerServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPServerServiceUpdateResponse"
                }
              }
            },
            "description": "VirtualMCPServerServiceUpdateResponse contains the updated Virtual MCP Server."
          }
        },
        "summary": "Update",
        "tags": [
          "Virtual MCP Servers"
        ],
        "x-speakeasy-group": "VirtualMCPServer",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/virtual_mcp_servers/{virtual_mcp_server_id}/tool_bindings": {
      "get": {
        "description": "List returns one page of individual tools assigned directly to an Assigned-tools Virtual MCP Server.",
        "operationId": "c1.api.ai_governance.v1.VirtualMCPToolBindingService.List",
        "parameters": [
          {
            "in": "path",
            "name": "virtual_mcp_server_id",
            "required": true,
            "schema": {
              "description": "Immutable identifier of the Virtual MCP Server.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Maximum number of results to return. The maximum is 100.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Pagination token returned by a previous request.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPToolBindingServiceListResponse"
                }
              }
            },
            "description": "VirtualMCPToolBindingServiceListResponse contains one page of tool assignments."
          }
        },
        "summary": "List",
        "tags": [
          "Virtual MCP Servers"
        ],
        "x-speakeasy-group": "VirtualMCPToolBinding",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "CreateBindings assigns up to 100 enabled, visible tools to an Assigned-tools Virtual MCP Server.\n Existing assignments are unchanged and previously deleted assignments are restored.",
        "operationId": "c1.api.ai_governance.v1.VirtualMCPToolBindingService.CreateBindings",
        "parameters": [
          {
            "in": "path",
            "name": "virtual_mcp_server_id",
            "required": true,
            "schema": {
              "description": "Immutable identifier of the Virtual MCP Server.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPToolBindingServiceCreateBindingsRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPToolBindingServiceCreateBindingsResponse"
                }
              }
            },
            "description": "VirtualMCPToolBindingServiceCreateBindingsResponse contains the resulting assignments."
          }
        },
        "summary": "Create Bindings",
        "tags": [
          "Virtual MCP Servers"
        ],
        "x-speakeasy-group": "VirtualMCPToolBinding",
        "x-speakeasy-name-override": "CreateBindings"
      }
    },
    "/api/v1/virtual_mcp_servers/{virtual_mcp_server_id}/tool_bindings/delete": {
      "post": {
        "description": "DeleteBindings removes up to 100 individual-tool assignments from an Assigned-tools Virtual MCP Server.",
        "operationId": "c1.api.ai_governance.v1.VirtualMCPToolBindingService.DeleteBindings",
        "parameters": [
          {
            "in": "path",
            "name": "virtual_mcp_server_id",
            "required": true,
            "schema": {
              "description": "Immutable identifier of the Virtual MCP Server.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPToolBindingServiceDeleteBindingsRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPToolBindingServiceDeleteBindingsResponse"
                }
              }
            },
            "description": "VirtualMCPToolBindingServiceDeleteBindingsResponse confirms the assignments were deleted."
          }
        },
        "summary": "Delete Bindings",
        "tags": [
          "Virtual MCP Servers"
        ],
        "x-speakeasy-group": "VirtualMCPToolBinding",
        "x-speakeasy-name-override": "DeleteBindings"
      }
    },
    "/api/v1/virtual_mcp_servers/{virtual_mcp_server_id}/toolset_bindings": {
      "get": {
        "description": "List returns one page of Toolsets assigned directly to an Assigned-tools Virtual MCP Server.",
        "operationId": "c1.api.ai_governance.v1.VirtualMCPToolsetBindingService.List",
        "parameters": [
          {
            "in": "path",
            "name": "virtual_mcp_server_id",
            "required": true,
            "schema": {
              "description": "Immutable identifier of the Virtual MCP Server.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Maximum number of results to return. The maximum is 100.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Pagination token returned by a previous request.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPToolsetBindingServiceListResponse"
                }
              }
            },
            "description": "VirtualMCPToolsetBindingServiceListResponse contains one page of Toolset assignments."
          }
        },
        "summary": "List",
        "tags": [
          "Virtual MCP Servers"
        ],
        "x-speakeasy-group": "VirtualMCPToolsetBinding",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "CreateBindings assigns up to 100 Toolsets to an Assigned-tools Virtual MCP Server.\n Existing assignments are unchanged and previously deleted assignments are restored.",
        "operationId": "c1.api.ai_governance.v1.VirtualMCPToolsetBindingService.CreateBindings",
        "parameters": [
          {
            "in": "path",
            "name": "virtual_mcp_server_id",
            "required": true,
            "schema": {
              "description": "Immutable identifier of the Virtual MCP Server.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPToolsetBindingServiceCreateBindingsRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPToolsetBindingServiceCreateBindingsResponse"
                }
              }
            },
            "description": "VirtualMCPToolsetBindingServiceCreateBindingsResponse contains the resulting assignments."
          }
        },
        "summary": "Create Bindings",
        "tags": [
          "Virtual MCP Servers"
        ],
        "x-speakeasy-group": "VirtualMCPToolsetBinding",
        "x-speakeasy-name-override": "CreateBindings"
      }
    },
    "/api/v1/virtual_mcp_servers/{virtual_mcp_server_id}/toolset_bindings/delete": {
      "post": {
        "description": "DeleteBindings removes up to 100 Toolset assignments from an Assigned-tools Virtual MCP Server.",
        "operationId": "c1.api.ai_governance.v1.VirtualMCPToolsetBindingService.DeleteBindings",
        "parameters": [
          {
            "in": "path",
            "name": "virtual_mcp_server_id",
            "required": true,
            "schema": {
              "description": "Immutable identifier of the Virtual MCP Server.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPToolsetBindingServiceDeleteBindingsRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.ai_governance.v1.VirtualMCPToolsetBindingServiceDeleteBindingsResponse"
                }
              }
            },
            "description": "VirtualMCPToolsetBindingServiceDeleteBindingsResponse confirms the assignments were deleted."
          }
        },
        "summary": "Delete Bindings",
        "tags": [
          "Virtual MCP Servers"
        ],
        "x-speakeasy-group": "VirtualMCPToolsetBinding",
        "x-speakeasy-name-override": "DeleteBindings"
      }
    },
    "/api/v1/webhooks": {
      "get": {
        "description": "List all webhook subscriptions in the tenant, with pagination.",
        "operationId": "c1.api.webhooks.v1.WebhooksService.List",
        "parameters": [
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The maximum number of webhooks to return per page.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pagination token from a previous list response to fetch the next page.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.webhooks.v1.WebhooksServiceListResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List",
        "tags": [
          "Webhook"
        ],
        "x-speakeasy-group": "Webhooks",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Create a new webhook subscription to receive event notifications at the specified URL.",
        "operationId": "c1.api.webhooks.v1.WebhooksService.Create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.webhooks.v1.WebhooksServiceCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.webhooks.v1.WebhooksServiceCreateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create",
        "tags": [
          "Webhook"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Webhook#create"
        },
        "x-speakeasy-group": "Webhooks",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/webhooks/{id}": {
      "delete": {
        "description": "Delete a webhook subscription, stopping all future event deliveries to its URL.",
        "operationId": "c1.api.webhooks.v1.WebhooksService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the webhook to delete.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.webhooks.v1.WebhooksServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.webhooks.v1.WebhooksServiceDeleteResponse"
                }
              }
            },
            "description": "Empty response body. Status code indicates success."
          }
        },
        "summary": "Delete",
        "tags": [
          "Webhook"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Webhook#delete"
        },
        "x-speakeasy-group": "Webhooks",
        "x-speakeasy-name-override": "Delete"
      },
      "get": {
        "description": "Retrieve a single webhook by its ID.",
        "operationId": "c1.api.webhooks.v1.WebhooksService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the webhook to retrieve.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.webhooks.v1.WebhooksServiceGetResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get",
        "tags": [
          "Webhook"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": null,
          "terraform-resource": "Webhook#read"
        },
        "x-speakeasy-group": "Webhooks",
        "x-speakeasy-name-override": "Get"
      },
      "post": {
        "description": "Update an existing webhook subscription's properties, such as its URL or display name.",
        "operationId": "c1.api.webhooks.v1.WebhooksService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The unique identifier of the webhook.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.webhooks.v1.WebhooksServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.webhooks.v1.WebhooksServiceUpdateResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update",
        "tags": [
          "Webhook"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Webhook#update"
        },
        "x-speakeasy-group": "Webhooks",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/webhooks/{id}/test": {
      "post": {
        "description": "Send a sample event to the webhook URL to verify that the endpoint is reachable and responding correctly.",
        "operationId": "c1.api.webhooks.v1.WebhooksService.Test",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the webhook to send a test event to.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.webhooks.v1.WebhooksServiceTestRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.webhooks.v1.WebhooksServiceTestResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Test",
        "tags": [
          "Webhook"
        ],
        "x-speakeasy-group": "Webhooks",
        "x-speakeasy-name-override": "Test"
      }
    },
    "/api/v1/workload_federation/providers": {
      "get": {
        "description": "ListProviders lists all providers for the tenant.",
        "operationId": "c1.api.workload_federation.v1.WorkloadFederationService.ListProviders",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.workload_federation.v1.WorkloadFederationServiceListProvidersResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "List Providers",
        "tags": [
          "Workload Federation"
        ],
        "x-speakeasy-group": "WorkloadFederation",
        "x-speakeasy-name-override": "ListProviders"
      },
      "post": {
        "description": "CreateProvider registers a new external OIDC issuer for the tenant.\n Validates the issuer URL via OIDC discovery synchronously.",
        "operationId": "c1.api.workload_federation.v1.WorkloadFederationService.CreateProvider",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.workload_federation.v1.WorkloadFederationServiceCreateProviderRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.workload_federation.v1.WorkloadFederationServiceCreateProviderResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Create Provider",
        "tags": [
          "Workload Federation"
        ],
        "x-speakeasy-group": "WorkloadFederation",
        "x-speakeasy-name-override": "CreateProvider"
      }
    },
    "/api/v1/workload_federation/providers/{id}": {
      "delete": {
        "description": "DeleteProvider deletes a provider. Fails if active trusts reference it.",
        "operationId": "c1.api.workload_federation.v1.WorkloadFederationService.DeleteProvider",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.workload_federation.v1.WorkloadFederationServiceDeleteProviderRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.workload_federation.v1.WorkloadFederationServiceDeleteProviderResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Delete Provider",
        "tags": [
          "Workload Federation"
        ],
        "x-speakeasy-group": "WorkloadFederation",
        "x-speakeasy-name-override": "DeleteProvider"
      },
      "get": {
        "description": "GetProvider returns a provider by ID.",
        "operationId": "c1.api.workload_federation.v1.WorkloadFederationService.GetProvider",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.workload_federation.v1.WorkloadFederationServiceGetProviderResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Get Provider",
        "tags": [
          "Workload Federation"
        ],
        "x-speakeasy-group": "WorkloadFederation",
        "x-speakeasy-name-override": "GetProvider"
      },
      "patch": {
        "description": "UpdateProvider updates a provider's mutable fields (display_name, description, disabled).\n The issuer_url is immutable after creation.",
        "operationId": "c1.api.workload_federation.v1.WorkloadFederationService.UpdateProvider",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The unique ID of the provider.",
              "readOnly": true,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.workload_federation.v1.WorkloadFederationServiceUpdateProviderRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.workload_federation.v1.WorkloadFederationServiceUpdateProviderResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Update Provider",
        "tags": [
          "Workload Federation"
        ],
        "x-speakeasy-group": "WorkloadFederation",
        "x-speakeasy-name-override": "UpdateProvider"
      }
    },
    "/api/v1/workload_federation/test-cel": {
      "post": {
        "description": "TestCEL evaluates a CEL expression against provided claims without\n requiring a JWT, provider, or trust. Used for expression authoring.",
        "operationId": "c1.api.workload_federation.v1.WorkloadFederationService.TestCEL",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.workload_federation.v1.WorkloadFederationServiceTestCELRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.workload_federation.v1.WorkloadFederationServiceTestCELResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "summary": "Test Cel",
        "tags": [
          "Workload Federation"
        ],
        "x-speakeasy-group": "WorkloadFederation",
        "x-speakeasy-name-override": "TestCEL"
      }
    },
    "/api/v1/xaa/resource_servers/{client_audience_mapping_xaa_resource_server_id}/client_audience_mappings/update": {
      "post": {
        "description": "Update a mapping's editable fields via update_mask. The resource server\n and client key identify the mapping and are immutable. Editable paths:\n audience_client_id, disabled.",
        "operationId": "c1.api.cross_app_access.v1.XAAClientAudienceMappingService.Update",
        "parameters": [
          {
            "in": "path",
            "name": "client_audience_mapping_xaa_resource_server_id",
            "required": true,
            "schema": {
              "description": "The resource server this mapping applies to.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAClientAudienceMappingServiceUpdateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAClientAudienceMappingServiceUpdateResponse"
                }
              }
            },
            "description": "XAAClientAudienceMappingServiceUpdateResponse returns the updated mapping."
          }
        },
        "summary": "Update",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAAClientAudienceMapping",
        "x-speakeasy-name-override": "Update"
      }
    },
    "/api/v1/xaa/resource_servers/{xaa_resource_server_id}/client_audience_mappings": {
      "get": {
        "description": "List the client audience mappings for a resource server, one page at a\n time.",
        "operationId": "c1.api.cross_app_access.v1.XAAClientAudienceMappingService.List",
        "parameters": [
          {
            "in": "path",
            "name": "xaa_resource_server_id",
            "required": true,
            "schema": {
              "description": "The resource server to list mappings for.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Page size (max 100).",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Page token for pagination.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAClientAudienceMappingServiceListResponse"
                }
              }
            },
            "description": "XAAClientAudienceMappingServiceListResponse returns a page of mappings."
          }
        },
        "summary": "List",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAAClientAudienceMapping",
        "x-speakeasy-name-override": "List"
      },
      "post": {
        "description": "Create a client audience mapping under a resource server.",
        "operationId": "c1.api.cross_app_access.v1.XAAClientAudienceMappingService.Create",
        "parameters": [
          {
            "in": "path",
            "name": "xaa_resource_server_id",
            "required": true,
            "schema": {
              "description": "The resource server this mapping applies to.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAClientAudienceMappingServiceCreateRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAClientAudienceMappingServiceCreateResponse"
                }
              }
            },
            "description": "XAAClientAudienceMappingServiceCreateResponse returns the created mapping."
          }
        },
        "summary": "Create",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAAClientAudienceMapping",
        "x-speakeasy-name-override": "Create"
      }
    },
    "/api/v1/xaa/resource_servers/{xaa_resource_server_id}/client_audience_mappings/by_client_key": {
      "get": {
        "description": "Get a client audience mapping by resource server + client key. The client\n key is passed as a query parameter because it may be a URL.",
        "operationId": "c1.api.cross_app_access.v1.XAAClientAudienceMappingService.Get",
        "parameters": [
          {
            "in": "path",
            "name": "xaa_resource_server_id",
            "required": true,
            "schema": {
              "description": "The resource server this mapping applies to.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "client_key",
            "schema": {
              "description": "The client key identifying the mapping.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAClientAudienceMappingServiceGetResponse"
                }
              }
            },
            "description": "XAAClientAudienceMappingServiceGetResponse returns a single mapping."
          }
        },
        "summary": "Get",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAAClientAudienceMapping",
        "x-speakeasy-name-override": "Get"
      }
    },
    "/api/v1/xaa/resource_servers/{xaa_resource_server_id}/client_audience_mappings/delete": {
      "post": {
        "description": "Delete a mapping (soft delete). Uses a POST .../delete action route\n because the client key travels in the request body, which HTTP DELETE does\n not reliably support.",
        "operationId": "c1.api.cross_app_access.v1.XAAClientAudienceMappingService.Delete",
        "parameters": [
          {
            "in": "path",
            "name": "xaa_resource_server_id",
            "required": true,
            "schema": {
              "description": "The resource server this mapping applies to.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAClientAudienceMappingServiceDeleteRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAClientAudienceMappingServiceDeleteResponse"
                }
              }
            },
            "description": "XAAClientAudienceMappingServiceDeleteResponse confirms deletion."
          }
        },
        "summary": "Delete",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAAClientAudienceMapping",
        "x-speakeasy-name-override": "Delete"
      }
    },
    "/api/v1/xaa/resource_servers/{xaa_resource_server_id}/client_audience_mappings/history": {
      "get": {
        "description": "ListHistory returns the change history (newest first) for a single client\n audience mapping — each entry is a snapshot plus who/when metadata. The\n client key is passed as a query parameter because it may be a URL.",
        "operationId": "c1.api.cross_app_access.v1.XAAClientAudienceMappingService.ListHistory",
        "parameters": [
          {
            "in": "path",
            "name": "xaa_resource_server_id",
            "required": true,
            "schema": {
              "description": "The resource server this mapping applies to.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "client_key",
            "schema": {
              "description": "Stable client registration key identifying the mapping.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "Page size (max 200).",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "Page token for pagination.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.cross_app_access.v1.XAAClientAudienceMappingServiceListHistoryResponse"
                }
              }
            },
            "description": "XAAClientAudienceMappingServiceListHistoryResponse returns client audience\n mapping history entries."
          }
        },
        "summary": "List History",
        "tags": [
          "Cross-App Access"
        ],
        "x-speakeasy-group": "XAAClientAudienceMapping",
        "x-speakeasy-name-override": "ListHistory"
      }
    },
    "/api/v2/apps/{app_id}/connectors/{connector_id}/owners": {
      "put": {
        "description": "Set replaces all owners for a given connector and role.",
        "operationId": "c1.api.app.v2.ConnectorOwners.Set",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "The connectorId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v2.SetConnectorOwnersV2RequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.SetConnectorOwnersV2Response"
                }
              }
            },
            "description": "SetConnectorOwnersV2Response is the empty response for setting connector owners."
          }
        },
        "summary": "Set",
        "tags": [
          "Connector Owner V2"
        ],
        "x-speakeasy-group": "ConnectorOwnersV2",
        "x-speakeasy-name-override": "Set",
        "x-stability-level": "draft"
      }
    },
    "/api/v2/apps/{app_id}/connectors/{connector_id}/owners/entitlements": {
      "get": {
        "description": "SearchEntitlementOwners searches for entitlement ownership sources for a connector.",
        "operationId": "c1.api.app.v2.ConnectorOwners.SearchEntitlementOwners",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "The connectorId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "role_slug",
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.SearchConnectorEntitlementOwnersResponse"
                }
              }
            },
            "description": "SearchConnectorEntitlementOwnersResponse is the response for searching entitlement ownership sources on a connector."
          }
        },
        "summary": "Search Entitlement Owners",
        "tags": [
          "Connector Owner V2"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "Connector_Owner_Entitlement#read",
          "terraform-resource": null
        },
        "x-speakeasy-group": "ConnectorOwnersV2",
        "x-speakeasy-name-override": "SearchEntitlementOwners",
        "x-stability-level": "draft"
      }
    },
    "/api/v2/apps/{app_id}/connectors/{connector_id}/owners/entitlements/{role_slug}/{app_entitlement_ref_app_id}/{app_entitlement_ref_id}": {
      "delete": {
        "description": "DeleteEntitlementOwner deletes an entitlement ownership source for a connector.",
        "operationId": "c1.api.app.v2.ConnectorOwners.DeleteEntitlementOwner",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "The connectorId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_slug",
            "required": true,
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_ref_app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_ref_id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v2.DeleteConnectorEntitlementOwnerRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.DeleteConnectorEntitlementOwnerResponse"
                }
              }
            },
            "description": "DeleteConnectorEntitlementOwnerResponse is the empty response for deleting an entitlement ownership source on a connector."
          }
        },
        "summary": "Delete Entitlement Owner",
        "tags": [
          "Connector Owner V2"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Connector_Owner_Entitlement#delete"
        },
        "x-speakeasy-group": "ConnectorOwnersV2",
        "x-speakeasy-name-override": "DeleteEntitlementOwner",
        "x-stability-level": "draft"
      },
      "get": {
        "description": "GetEntitlementOwner gets an entitlement ownership source for a connector.",
        "operationId": "c1.api.app.v2.ConnectorOwners.GetEntitlementOwner",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "The connectorId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_slug",
            "required": true,
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_ref_app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_ref_id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.GetConnectorEntitlementOwnerResponse"
                }
              }
            },
            "description": "GetConnectorEntitlementOwnerResponse is the response for getting an entitlement ownership source on a connector."
          }
        },
        "summary": "Get Entitlement Owner",
        "tags": [
          "Connector Owner V2"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": null,
          "terraform-resource": "Connector_Owner_Entitlement#read"
        },
        "x-speakeasy-group": "ConnectorOwnersV2",
        "x-speakeasy-name-override": "GetEntitlementOwner",
        "x-stability-level": "draft"
      },
      "post": {
        "description": "CreateEntitlementOwner creates an entitlement ownership source for a connector.",
        "operationId": "c1.api.app.v2.ConnectorOwners.CreateEntitlementOwner",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "The connectorId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_slug",
            "required": true,
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_ref_app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_ref_id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v2.CreateConnectorEntitlementOwnerRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.CreateConnectorEntitlementOwnerResponse"
                }
              }
            },
            "description": "CreateConnectorEntitlementOwnerResponse is the response for creating an entitlement ownership source on a connector."
          }
        },
        "summary": "Create Entitlement Owner",
        "tags": [
          "Connector Owner V2"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Connector_Owner_Entitlement#create"
        },
        "x-speakeasy-group": "ConnectorOwnersV2",
        "x-speakeasy-name-override": "CreateEntitlementOwner",
        "x-stability-level": "draft"
      }
    },
    "/api/v2/apps/{app_id}/connectors/{connector_id}/owners/users": {
      "get": {
        "description": "SearchUserOwners searches for user ownership sources for a connector.",
        "operationId": "c1.api.app.v2.ConnectorOwners.SearchUserOwners",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "The connectorId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "role_slug",
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.SearchConnectorUserOwnersResponse"
                }
              }
            },
            "description": "SearchConnectorUserOwnersResponse is the response for searching user ownership sources on a connector."
          }
        },
        "summary": "Search User Owners",
        "tags": [
          "Connector Owner V2"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "Connector_Owner_User#read",
          "terraform-resource": null
        },
        "x-speakeasy-group": "ConnectorOwnersV2",
        "x-speakeasy-name-override": "SearchUserOwners",
        "x-stability-level": "draft"
      }
    },
    "/api/v2/apps/{app_id}/connectors/{connector_id}/owners/users/{role_slug}/{user_ref_id}": {
      "delete": {
        "description": "DeleteUserOwner deletes a user ownership source for a connector.",
        "operationId": "c1.api.app.v2.ConnectorOwners.DeleteUserOwner",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "The connectorId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_slug",
            "required": true,
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_ref_id",
            "required": true,
            "schema": {
              "description": "The id of the user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v2.DeleteConnectorUserOwnerRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.DeleteConnectorUserOwnerResponse"
                }
              }
            },
            "description": "DeleteConnectorUserOwnerResponse is the empty response for deleting a user ownership source on a connector."
          }
        },
        "summary": "Delete User Owner",
        "tags": [
          "Connector Owner V2"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Connector_Owner_User#delete"
        },
        "x-speakeasy-group": "ConnectorOwnersV2",
        "x-speakeasy-name-override": "DeleteUserOwner",
        "x-stability-level": "draft"
      },
      "get": {
        "description": "GetUserOwner gets a user ownership source for a connector.",
        "operationId": "c1.api.app.v2.ConnectorOwners.GetUserOwner",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "The connectorId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_slug",
            "required": true,
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_ref_id",
            "required": true,
            "schema": {
              "description": "The id of the user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.GetConnectorUserOwnerResponse"
                }
              }
            },
            "description": "GetConnectorUserOwnerResponse is the response for getting a user ownership source on a connector."
          }
        },
        "summary": "Get User Owner",
        "tags": [
          "Connector Owner V2"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": null,
          "terraform-resource": "Connector_Owner_User#read"
        },
        "x-speakeasy-group": "ConnectorOwnersV2",
        "x-speakeasy-name-override": "GetUserOwner",
        "x-stability-level": "draft"
      },
      "post": {
        "description": "CreateUserOwner creates a user ownership source for a connector.",
        "operationId": "c1.api.app.v2.ConnectorOwners.CreateUserOwner",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "description": "The connectorId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_slug",
            "required": true,
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_ref_id",
            "required": true,
            "schema": {
              "description": "The id of the user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v2.CreateConnectorUserOwnerRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.CreateConnectorUserOwnerResponse"
                }
              }
            },
            "description": "CreateConnectorUserOwnerResponse is the response for creating a user ownership source on a connector."
          }
        },
        "summary": "Create User Owner",
        "tags": [
          "Connector Owner V2"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "Connector_Owner_User#create"
        },
        "x-speakeasy-group": "ConnectorOwnersV2",
        "x-speakeasy-name-override": "CreateUserOwner",
        "x-stability-level": "draft"
      }
    },
    "/api/v2/apps/{app_id}/entitlements/{entitlement_id}/owners": {
      "put": {
        "description": "Set replaces all owners for a given app entitlement and role.",
        "operationId": "c1.api.app.v2.AppEntitlementOwners.Set",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "entitlement_id",
            "required": true,
            "schema": {
              "description": "The entitlementId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v2.SetAppEntitlementOwnersRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.SetAppEntitlementOwnersResponse"
                }
              }
            },
            "description": "SetAppEntitlementOwnersResponse is the empty response for setting app entitlement owners."
          }
        },
        "summary": "Set",
        "tags": [
          "App Entitlement Owner V2"
        ],
        "x-speakeasy-group": "AppEntitlementOwnersV2",
        "x-speakeasy-name-override": "Set",
        "x-stability-level": "stable"
      }
    },
    "/api/v2/apps/{app_id}/entitlements/{entitlement_id}/owners/entitlements": {
      "get": {
        "description": "SearchEntitlementOwners searches for entitlement ownership sources for an app entitlement.",
        "operationId": "c1.api.app.v2.AppEntitlementOwners.SearchEntitlementOwners",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "entitlement_id",
            "required": true,
            "schema": {
              "description": "The entitlementId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "role_slug",
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.SearchAppEntitlementEntitlementOwnersResponse"
                }
              }
            },
            "description": "SearchAppEntitlementEntitlementOwnersResponse is the response for searching entitlement ownership sources on an entitlement."
          }
        },
        "summary": "Search Entitlement Owners",
        "tags": [
          "App Entitlement Owner V2"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "App_Entitlement_Owner_Entitlement#read",
          "terraform-resource": null
        },
        "x-speakeasy-group": "AppEntitlementOwnersV2",
        "x-speakeasy-name-override": "SearchEntitlementOwners",
        "x-stability-level": "stable"
      }
    },
    "/api/v2/apps/{app_id}/entitlements/{entitlement_id}/owners/entitlements/{role_slug}/{app_entitlement_ref_app_id}/{app_entitlement_ref_id}": {
      "delete": {
        "description": "DeleteEntitlementOwner deletes an entitlement ownership source for an app entitlement.",
        "operationId": "c1.api.app.v2.AppEntitlementOwners.DeleteEntitlementOwner",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "entitlement_id",
            "required": true,
            "schema": {
              "description": "The entitlementId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_slug",
            "required": true,
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_ref_app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_ref_id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v2.DeleteAppEntitlementEntitlementOwnerRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.DeleteAppEntitlementEntitlementOwnerResponse"
                }
              }
            },
            "description": "DeleteAppEntitlementEntitlementOwnerResponse is the empty response for deleting an entitlement ownership source on an entitlement."
          }
        },
        "summary": "Delete Entitlement Owner",
        "tags": [
          "App Entitlement Owner V2"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "App_Entitlement_Owner_Entitlement#delete"
        },
        "x-speakeasy-group": "AppEntitlementOwnersV2",
        "x-speakeasy-name-override": "DeleteEntitlementOwner",
        "x-stability-level": "stable"
      },
      "get": {
        "description": "GetEntitlementOwner gets an entitlement ownership source for an app entitlement.",
        "operationId": "c1.api.app.v2.AppEntitlementOwners.GetEntitlementOwner",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "entitlement_id",
            "required": true,
            "schema": {
              "description": "The entitlementId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_slug",
            "required": true,
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_ref_app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_ref_id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.GetAppEntitlementEntitlementOwnerResponse"
                }
              }
            },
            "description": "GetAppEntitlementEntitlementOwnerResponse is the response for getting an entitlement ownership source on an entitlement."
          }
        },
        "summary": "Get Entitlement Owner",
        "tags": [
          "App Entitlement Owner V2"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": null,
          "terraform-resource": "App_Entitlement_Owner_Entitlement#read"
        },
        "x-speakeasy-group": "AppEntitlementOwnersV2",
        "x-speakeasy-name-override": "GetEntitlementOwner",
        "x-stability-level": "stable"
      },
      "post": {
        "description": "CreateEntitlementOwner creates an entitlement ownership source for an app entitlement.",
        "operationId": "c1.api.app.v2.AppEntitlementOwners.CreateEntitlementOwner",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "entitlement_id",
            "required": true,
            "schema": {
              "description": "The entitlementId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_slug",
            "required": true,
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_ref_app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_ref_id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v2.CreateAppEntitlementEntitlementOwnerRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.CreateAppEntitlementEntitlementOwnerResponse"
                }
              }
            },
            "description": "CreateAppEntitlementEntitlementOwnerResponse is the response for creating an entitlement ownership source on an entitlement."
          }
        },
        "summary": "Create Entitlement Owner",
        "tags": [
          "App Entitlement Owner V2"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "App_Entitlement_Owner_Entitlement#create"
        },
        "x-speakeasy-group": "AppEntitlementOwnersV2",
        "x-speakeasy-name-override": "CreateEntitlementOwner",
        "x-stability-level": "stable"
      }
    },
    "/api/v2/apps/{app_id}/entitlements/{entitlement_id}/owners/users": {
      "get": {
        "description": "SearchUserOwners searches for user ownership sources of this app entitlement.",
        "operationId": "c1.api.app.v2.AppEntitlementOwners.SearchUserOwners",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "entitlement_id",
            "required": true,
            "schema": {
              "description": "The entitlementId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "role_slug",
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.SearchAppEntitlementUserOwnersResponse"
                }
              }
            },
            "description": "SearchAppEntitlementUserOwnersResponse is the response for searching user ownership sources on an entitlement."
          }
        },
        "summary": "Search User Owners",
        "tags": [
          "App Entitlement Owner V2"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "App_Entitlement_Owner_User#read",
          "terraform-resource": null
        },
        "x-speakeasy-group": "AppEntitlementOwnersV2",
        "x-speakeasy-name-override": "SearchUserOwners",
        "x-stability-level": "stable"
      }
    },
    "/api/v2/apps/{app_id}/entitlements/{entitlement_id}/owners/users/{role_slug}/{user_ref_id}": {
      "delete": {
        "description": "DeleteUserOwner deletes a user ownership source for an app entitlement.",
        "operationId": "c1.api.app.v2.AppEntitlementOwners.DeleteUserOwner",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "entitlement_id",
            "required": true,
            "schema": {
              "description": "The entitlementId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_slug",
            "required": true,
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_ref_id",
            "required": true,
            "schema": {
              "description": "The id of the user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v2.DeleteAppEntitlementUserOwnerRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.DeleteAppEntitlementUserOwnerResponse"
                }
              }
            },
            "description": "DeleteAppEntitlementUserOwnerResponse is the empty response for deleting a user ownership source on an entitlement."
          }
        },
        "summary": "Delete User Owner",
        "tags": [
          "App Entitlement Owner V2"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "App_Entitlement_Owner_User#delete"
        },
        "x-speakeasy-group": "AppEntitlementOwnersV2",
        "x-speakeasy-name-override": "DeleteUserOwner",
        "x-stability-level": "stable"
      },
      "get": {
        "description": "GetUserOwner gets a user ownership source for an app entitlement.",
        "operationId": "c1.api.app.v2.AppEntitlementOwners.GetUserOwner",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "entitlement_id",
            "required": true,
            "schema": {
              "description": "The entitlementId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_slug",
            "required": true,
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_ref_id",
            "required": true,
            "schema": {
              "description": "The id of the user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.GetAppEntitlementUserOwnerResponse"
                }
              }
            },
            "description": "GetAppEntitlementUserOwnerResponse is the response for getting a user ownership source on an entitlement."
          }
        },
        "summary": "Get User Owner",
        "tags": [
          "App Entitlement Owner V2"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": null,
          "terraform-resource": "App_Entitlement_Owner_User#read"
        },
        "x-speakeasy-group": "AppEntitlementOwnersV2",
        "x-speakeasy-name-override": "GetUserOwner",
        "x-stability-level": "stable"
      },
      "post": {
        "description": "CreateUserOwner creates a user ownership source for an app entitlement.",
        "operationId": "c1.api.app.v2.AppEntitlementOwners.CreateUserOwner",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "entitlement_id",
            "required": true,
            "schema": {
              "description": "The entitlementId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_slug",
            "required": true,
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_ref_id",
            "required": true,
            "schema": {
              "description": "The id of the user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v2.CreateAppEntitlementUserOwnerRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.CreateAppEntitlementUserOwnerResponse"
                }
              }
            },
            "description": "CreateAppEntitlementUserOwnerResponse is the response for creating a user ownership source on an entitlement."
          }
        },
        "summary": "Create User Owner",
        "tags": [
          "App Entitlement Owner V2"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "App_Entitlement_Owner_User#create"
        },
        "x-speakeasy-group": "AppEntitlementOwnersV2",
        "x-speakeasy-name-override": "CreateUserOwner",
        "x-stability-level": "stable"
      }
    },
    "/api/v2/apps/{app_id}/owners": {
      "put": {
        "description": "Set replaces all user owners for a given app and role.",
        "operationId": "c1.api.app.v2.AppOwners.Set",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v2.SetAppOwnersRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.SetAppOwnersResponse"
                }
              }
            },
            "description": "SetAppOwnersResponse is the empty response for setting app owners."
          }
        },
        "summary": "Set",
        "tags": [
          "App Owner V2"
        ],
        "x-speakeasy-group": "AppOwnersV2",
        "x-speakeasy-name-override": "Set",
        "x-stability-level": "stable"
      }
    },
    "/api/v2/apps/{app_id}/owners/entitlements": {
      "get": {
        "description": "SearchEntitlementOwners searches for entitlement ownership sources for an app.",
        "operationId": "c1.api.app.v2.AppOwners.SearchEntitlementOwners",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "role_slug",
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.SearchAppEntitlementOwnersResponse"
                }
              }
            },
            "description": "SearchEntitlementOwnersResponse is the response for searching entitlement ownership sources."
          }
        },
        "summary": "Search Entitlement Owners",
        "tags": [
          "App Owner V2"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "App_Owner_Entitlement#read",
          "terraform-resource": null
        },
        "x-speakeasy-group": "AppOwnersV2",
        "x-speakeasy-name-override": "SearchEntitlementOwners",
        "x-stability-level": "stable"
      }
    },
    "/api/v2/apps/{app_id}/owners/entitlements/{role_slug}/{app_entitlement_ref_app_id}/{app_entitlement_ref_id}": {
      "delete": {
        "description": "DeleteEntitlementOwner deletes an entitlement ownership source for an app.",
        "operationId": "c1.api.app.v2.AppOwners.DeleteEntitlementOwner",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_slug",
            "required": true,
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_ref_app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_ref_id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v2.DeleteAppEntitlementOwnerRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.DeleteAppEntitlementOwnerResponse"
                }
              }
            },
            "description": "DeleteEntitlementOwnerResponse is the empty response for deleting an entitlement ownership source."
          }
        },
        "summary": "Delete Entitlement Owner",
        "tags": [
          "App Owner V2"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "App_Owner_Entitlement#delete"
        },
        "x-speakeasy-group": "AppOwnersV2",
        "x-speakeasy-name-override": "DeleteEntitlementOwner",
        "x-stability-level": "stable"
      },
      "get": {
        "description": "GetEntitlementOwner gets an entitlement ownership source for an app.",
        "operationId": "c1.api.app.v2.AppOwners.GetEntitlementOwner",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_slug",
            "required": true,
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_ref_app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_ref_id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.GetAppEntitlementOwnerResponse"
                }
              }
            },
            "description": "GetEntitlementOwnerResponse is the response for getting an entitlement ownership source."
          }
        },
        "summary": "Get Entitlement Owner",
        "tags": [
          "App Owner V2"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": null,
          "terraform-resource": "App_Owner_Entitlement#read"
        },
        "x-speakeasy-group": "AppOwnersV2",
        "x-speakeasy-name-override": "GetEntitlementOwner",
        "x-stability-level": "stable"
      },
      "post": {
        "description": "CreateEntitlementOwner creates an entitlement ownership source for an app.",
        "operationId": "c1.api.app.v2.AppOwners.CreateEntitlementOwner",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_slug",
            "required": true,
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_ref_app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_ref_id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v2.CreateAppEntitlementOwnerRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.CreateAppEntitlementOwnerResponse"
                }
              }
            },
            "description": "CreateEntitlementOwnerResponse is the response for creating an entitlement ownership source."
          }
        },
        "summary": "Create Entitlement Owner",
        "tags": [
          "App Owner V2"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "App_Owner_Entitlement#create"
        },
        "x-speakeasy-group": "AppOwnersV2",
        "x-speakeasy-name-override": "CreateEntitlementOwner",
        "x-stability-level": "stable"
      }
    },
    "/api/v2/apps/{app_id}/owners/users": {
      "get": {
        "description": "SearchUserOwners searches for user ownership sources for an app.",
        "operationId": "c1.api.app.v2.AppOwners.SearchUserOwners",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "role_slug",
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.SearchAppUserOwnersResponse"
                }
              }
            },
            "description": "SearchUserOwnersResponse is the response for searching user ownership sources."
          }
        },
        "summary": "Search User Owners",
        "tags": [
          "App Owner V2"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "App_Owner_User#read",
          "terraform-resource": null
        },
        "x-speakeasy-group": "AppOwnersV2",
        "x-speakeasy-name-override": "SearchUserOwners",
        "x-stability-level": "stable"
      }
    },
    "/api/v2/apps/{app_id}/owners/users/{role_slug}/{user_ref_id}": {
      "delete": {
        "description": "DeleteUserOwner deletes a user ownership source for an app.",
        "operationId": "c1.api.app.v2.AppOwners.DeleteUserOwner",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_slug",
            "required": true,
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_ref_id",
            "required": true,
            "schema": {
              "description": "The id of the user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v2.DeleteAppUserOwnerRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.DeleteAppUserOwnerResponse"
                }
              }
            },
            "description": "DeleteUserOwnerResponse is the empty response for deleting a user ownership source."
          }
        },
        "summary": "Delete User Owner",
        "tags": [
          "App Owner V2"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "App_Owner_User#delete"
        },
        "x-speakeasy-group": "AppOwnersV2",
        "x-speakeasy-name-override": "DeleteUserOwner",
        "x-stability-level": "stable"
      },
      "get": {
        "description": "GetUserOwner gets a user ownership source for an app.",
        "operationId": "c1.api.app.v2.AppOwners.GetUserOwner",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_slug",
            "required": true,
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_ref_id",
            "required": true,
            "schema": {
              "description": "The id of the user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.GetAppUserOwnerResponse"
                }
              }
            },
            "description": "GetUserOwnerResponse is the response for getting a user ownership source."
          }
        },
        "summary": "Get User Owner",
        "tags": [
          "App Owner V2"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": null,
          "terraform-resource": "App_Owner_User#read"
        },
        "x-speakeasy-group": "AppOwnersV2",
        "x-speakeasy-name-override": "GetUserOwner",
        "x-stability-level": "stable"
      },
      "post": {
        "description": "CreateUserOwner creates a user ownership source for an app.",
        "operationId": "c1.api.app.v2.AppOwners.CreateUserOwner",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_slug",
            "required": true,
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_ref_id",
            "required": true,
            "schema": {
              "description": "The id of the user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v2.CreateAppUserOwnerRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.CreateAppUserOwnerResponse"
                }
              }
            },
            "description": "CreateUserOwnerResponse is the response for creating a user ownership source."
          }
        },
        "summary": "Create User Owner",
        "tags": [
          "App Owner V2"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "App_Owner_User#create"
        },
        "x-speakeasy-group": "AppOwnersV2",
        "x-speakeasy-name-override": "CreateUserOwner",
        "x-stability-level": "stable"
      }
    },
    "/api/v2/apps/{app_id}/resource_types/{resource_type_id}/resources/{resource_id}/owners": {
      "put": {
        "description": "Set replaces all owners for a given app resource and role.",
        "operationId": "c1.api.app.v2.AppResourceOwnersV2.Set",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource_type_id",
            "required": true,
            "schema": {
              "description": "The resourceTypeId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource_id",
            "required": true,
            "schema": {
              "description": "The resourceId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v2.SetAppResourceOwnersV2RequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.SetAppResourceOwnersV2Response"
                }
              }
            },
            "description": "SetAppResourceOwnersV2Response is the empty response for setting app resource owners."
          }
        },
        "summary": "Set",
        "tags": [
          "App Resource Owner V2"
        ],
        "x-speakeasy-group": "AppResourceOwnersV2",
        "x-speakeasy-name-override": "Set",
        "x-stability-level": "stable"
      }
    },
    "/api/v2/apps/{app_id}/resource_types/{resource_type_id}/resources/{resource_id}/owners/entitlements": {
      "get": {
        "description": "SearchEntitlementOwners searches for entitlement ownership sources of this app resource.",
        "operationId": "c1.api.app.v2.AppResourceOwnersV2.SearchEntitlementOwners",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource_type_id",
            "required": true,
            "schema": {
              "description": "The resourceTypeId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource_id",
            "required": true,
            "schema": {
              "description": "The resourceId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "role_slug",
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.SearchAppResourceEntitlementOwnersResponse"
                }
              }
            },
            "description": "SearchAppResourceEntitlementOwnersResponse is the response for searching entitlement ownership sources on a resource."
          }
        },
        "summary": "Search Entitlement Owners",
        "tags": [
          "App Resource Owner V2"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "App_Resource_Owner_Entitlement#read",
          "terraform-resource": null
        },
        "x-speakeasy-group": "AppResourceOwnersV2",
        "x-speakeasy-name-override": "SearchEntitlementOwners",
        "x-stability-level": "stable"
      }
    },
    "/api/v2/apps/{app_id}/resource_types/{resource_type_id}/resources/{resource_id}/owners/entitlements/{role_slug}/{app_entitlement_ref_app_id}/{app_entitlement_ref_id}": {
      "delete": {
        "description": "DeleteEntitlementOwner deletes an entitlement ownership source for an app resource.",
        "operationId": "c1.api.app.v2.AppResourceOwnersV2.DeleteEntitlementOwner",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource_type_id",
            "required": true,
            "schema": {
              "description": "The resourceTypeId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource_id",
            "required": true,
            "schema": {
              "description": "The resourceId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_slug",
            "required": true,
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_ref_app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_ref_id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v2.DeleteAppResourceEntitlementOwnerRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.DeleteAppResourceEntitlementOwnerResponse"
                }
              }
            },
            "description": "DeleteAppResourceEntitlementOwnerResponse is the empty response for deleting an entitlement ownership source on a resource."
          }
        },
        "summary": "Delete Entitlement Owner",
        "tags": [
          "App Resource Owner V2"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "App_Resource_Owner_Entitlement#delete"
        },
        "x-speakeasy-group": "AppResourceOwnersV2",
        "x-speakeasy-name-override": "DeleteEntitlementOwner",
        "x-stability-level": "stable"
      },
      "get": {
        "description": "GetEntitlementOwner gets an entitlement ownership source for an app resource.",
        "operationId": "c1.api.app.v2.AppResourceOwnersV2.GetEntitlementOwner",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource_type_id",
            "required": true,
            "schema": {
              "description": "The resourceTypeId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource_id",
            "required": true,
            "schema": {
              "description": "The resourceId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_slug",
            "required": true,
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_ref_app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_ref_id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.GetAppResourceEntitlementOwnerResponse"
                }
              }
            },
            "description": "GetAppResourceEntitlementOwnerResponse is the response for getting an entitlement ownership source on a resource."
          }
        },
        "summary": "Get Entitlement Owner",
        "tags": [
          "App Resource Owner V2"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": null,
          "terraform-resource": "App_Resource_Owner_Entitlement#read"
        },
        "x-speakeasy-group": "AppResourceOwnersV2",
        "x-speakeasy-name-override": "GetEntitlementOwner",
        "x-stability-level": "stable"
      },
      "post": {
        "description": "CreateEntitlementOwner creates an entitlement ownership source for an app resource.",
        "operationId": "c1.api.app.v2.AppResourceOwnersV2.CreateEntitlementOwner",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource_type_id",
            "required": true,
            "schema": {
              "description": "The resourceTypeId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource_id",
            "required": true,
            "schema": {
              "description": "The resourceId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_slug",
            "required": true,
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_ref_app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_ref_id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v2.CreateAppResourceEntitlementOwnerRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.CreateAppResourceEntitlementOwnerResponse"
                }
              }
            },
            "description": "CreateAppResourceEntitlementOwnerResponse is the response for creating an entitlement ownership source on a resource."
          }
        },
        "summary": "Create Entitlement Owner",
        "tags": [
          "App Resource Owner V2"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "App_Resource_Owner_Entitlement#create"
        },
        "x-speakeasy-group": "AppResourceOwnersV2",
        "x-speakeasy-name-override": "CreateEntitlementOwner",
        "x-stability-level": "stable"
      }
    },
    "/api/v2/apps/{app_id}/resource_types/{resource_type_id}/resources/{resource_id}/owners/users": {
      "get": {
        "description": "SearchUserOwners searches for user ownership sources of this app resource.",
        "operationId": "c1.api.app.v2.AppResourceOwnersV2.SearchUserOwners",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource_type_id",
            "required": true,
            "schema": {
              "description": "The resourceTypeId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource_id",
            "required": true,
            "schema": {
              "description": "The resourceId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "role_slug",
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.SearchAppResourceUserOwnersResponse"
                }
              }
            },
            "description": "SearchAppResourceUserOwnersResponse is the response for searching user ownership sources on a resource."
          }
        },
        "summary": "Search User Owners",
        "tags": [
          "App Resource Owner V2"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": "App_Resource_Owner_User#read",
          "terraform-resource": null
        },
        "x-speakeasy-group": "AppResourceOwnersV2",
        "x-speakeasy-name-override": "SearchUserOwners",
        "x-stability-level": "stable"
      }
    },
    "/api/v2/apps/{app_id}/resource_types/{resource_type_id}/resources/{resource_id}/owners/users/{role_slug}/{user_ref_id}": {
      "delete": {
        "description": "DeleteUserOwner deletes a user ownership source for an app resource.",
        "operationId": "c1.api.app.v2.AppResourceOwnersV2.DeleteUserOwner",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource_type_id",
            "required": true,
            "schema": {
              "description": "The resourceTypeId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource_id",
            "required": true,
            "schema": {
              "description": "The resourceId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_slug",
            "required": true,
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_ref_id",
            "required": true,
            "schema": {
              "description": "The id of the user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v2.DeleteAppResourceUserOwnerRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.DeleteAppResourceUserOwnerResponse"
                }
              }
            },
            "description": "DeleteAppResourceUserOwnerResponse is the empty response for deleting a user ownership source on a resource."
          }
        },
        "summary": "Delete User Owner",
        "tags": [
          "App Resource Owner V2"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "App_Resource_Owner_User#delete"
        },
        "x-speakeasy-group": "AppResourceOwnersV2",
        "x-speakeasy-name-override": "DeleteUserOwner",
        "x-stability-level": "stable"
      },
      "get": {
        "description": "GetUserOwner gets a user ownership source for an app resource.",
        "operationId": "c1.api.app.v2.AppResourceOwnersV2.GetUserOwner",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource_type_id",
            "required": true,
            "schema": {
              "description": "The resourceTypeId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource_id",
            "required": true,
            "schema": {
              "description": "The resourceId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_slug",
            "required": true,
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_ref_id",
            "required": true,
            "schema": {
              "description": "The id of the user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.GetAppResourceUserOwnerResponse"
                }
              }
            },
            "description": "GetAppResourceUserOwnerResponse is the response for getting a user ownership source on a resource."
          }
        },
        "summary": "Get User Owner",
        "tags": [
          "App Resource Owner V2"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-datasource": null,
          "terraform-resource": "App_Resource_Owner_User#read"
        },
        "x-speakeasy-group": "AppResourceOwnersV2",
        "x-speakeasy-name-override": "GetUserOwner",
        "x-stability-level": "stable"
      },
      "post": {
        "description": "CreateUserOwner creates a user ownership source for an app resource.",
        "operationId": "c1.api.app.v2.AppResourceOwnersV2.CreateUserOwner",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource_type_id",
            "required": true,
            "schema": {
              "description": "The resourceTypeId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "resource_id",
            "required": true,
            "schema": {
              "description": "The resourceId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_slug",
            "required": true,
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_ref_id",
            "required": true,
            "schema": {
              "description": "The id of the user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v2.CreateAppResourceUserOwnerRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.CreateAppResourceUserOwnerResponse"
                }
              }
            },
            "description": "CreateAppResourceUserOwnerResponse is the response for creating a user ownership source on a resource."
          }
        },
        "summary": "Create User Owner",
        "tags": [
          "App Resource Owner V2"
        ],
        "x-speakeasy-entity-missing-codes": [
          404
        ],
        "x-speakeasy-entity-operation": {
          "terraform-resource": "App_Resource_Owner_User#create"
        },
        "x-speakeasy-group": "AppResourceOwnersV2",
        "x-speakeasy-name-override": "CreateUserOwner",
        "x-stability-level": "stable"
      }
    },
    "/api/v2/apps/{app_id}/users/{user_id}/owners": {
      "put": {
        "description": "Set replaces all owners for a given app user and role.",
        "operationId": "c1.api.app.v2.AppUserOwnersV2.Set",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The userId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v2.SetAppUserOwnersV2RequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.SetAppUserOwnersV2Response"
                }
              }
            },
            "description": "SetAppUserOwnersV2Response is the empty response for setting app user owners."
          }
        },
        "summary": "Set",
        "tags": [
          "App User Owner V2"
        ],
        "x-speakeasy-group": "AppUserOwnersV2",
        "x-speakeasy-name-override": "Set",
        "x-stability-level": "draft"
      }
    },
    "/api/v2/apps/{app_id}/users/{user_id}/owners/entitlements": {
      "get": {
        "description": "SearchEntitlementOwners searches for entitlement ownership sources of this app user.",
        "operationId": "c1.api.app.v2.AppUserOwnersV2.SearchEntitlementOwners",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The userId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "role_slug",
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.SearchAppUserEntitlementOwnersResponse"
                }
              }
            },
            "description": "SearchAppUserEntitlementOwnersResponse is the response for searching entitlement ownership sources on an app user."
          }
        },
        "summary": "Search Entitlement Owners",
        "tags": [
          "App User Owner V2"
        ],
        "x-speakeasy-group": "AppUserOwnersV2",
        "x-speakeasy-name-override": "SearchEntitlementOwners",
        "x-stability-level": "draft"
      }
    },
    "/api/v2/apps/{app_id}/users/{user_id}/owners/entitlements/{role_slug}/{app_entitlement_ref_app_id}/{app_entitlement_ref_id}": {
      "delete": {
        "description": "DeleteEntitlementOwner deletes an entitlement ownership source for an app user.",
        "operationId": "c1.api.app.v2.AppUserOwnersV2.DeleteEntitlementOwner",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The userId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_slug",
            "required": true,
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_ref_app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_ref_id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v2.DeleteAppUserEntitlementOwnerRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.DeleteAppUserEntitlementOwnerResponse"
                }
              }
            },
            "description": "DeleteAppUserEntitlementOwnerResponse is the empty response for deleting an entitlement ownership source on an app user."
          }
        },
        "summary": "Delete Entitlement Owner",
        "tags": [
          "App User Owner V2"
        ],
        "x-speakeasy-group": "AppUserOwnersV2",
        "x-speakeasy-name-override": "DeleteEntitlementOwner",
        "x-stability-level": "draft"
      },
      "post": {
        "description": "CreateEntitlementOwner creates an entitlement ownership source for an app user.",
        "operationId": "c1.api.app.v2.AppUserOwnersV2.CreateEntitlementOwner",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The userId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_slug",
            "required": true,
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_ref_app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_ref_id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v2.CreateAppUserEntitlementOwnerRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.CreateAppUserEntitlementOwnerResponse"
                }
              }
            },
            "description": "CreateAppUserEntitlementOwnerResponse is the response for creating an entitlement ownership source on an app user."
          }
        },
        "summary": "Create Entitlement Owner",
        "tags": [
          "App User Owner V2"
        ],
        "x-speakeasy-group": "AppUserOwnersV2",
        "x-speakeasy-name-override": "CreateEntitlementOwner",
        "x-stability-level": "draft"
      }
    },
    "/api/v2/apps/{app_id}/users/{user_id}/owners/users": {
      "get": {
        "description": "SearchUserOwners searches for user ownership sources of this app user.",
        "operationId": "c1.api.app.v2.AppUserOwnersV2.SearchUserOwners",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The userId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "role_slug",
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.SearchAppUserUserOwnersResponse"
                }
              }
            },
            "description": "SearchAppUserUserOwnersResponse is the response for searching user ownership sources on an app user."
          }
        },
        "summary": "Search User Owners",
        "tags": [
          "App User Owner V2"
        ],
        "x-speakeasy-group": "AppUserOwnersV2",
        "x-speakeasy-name-override": "SearchUserOwners",
        "x-stability-level": "draft"
      }
    },
    "/api/v2/apps/{app_id}/users/{user_id}/owners/users/{role_slug}/{user_ref_id}": {
      "delete": {
        "description": "DeleteUserOwner deletes a user ownership source for an app user.",
        "operationId": "c1.api.app.v2.AppUserOwnersV2.DeleteUserOwner",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The userId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_slug",
            "required": true,
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_ref_id",
            "required": true,
            "schema": {
              "description": "The id of the user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v2.DeleteAppUserUserOwnerRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.DeleteAppUserUserOwnerResponse"
                }
              }
            },
            "description": "DeleteAppUserUserOwnerResponse is the empty response for deleting a user ownership source on an app user."
          }
        },
        "summary": "Delete User Owner",
        "tags": [
          "App User Owner V2"
        ],
        "x-speakeasy-group": "AppUserOwnersV2",
        "x-speakeasy-name-override": "DeleteUserOwner",
        "x-stability-level": "draft"
      },
      "post": {
        "description": "CreateUserOwner creates a user ownership source for an app user.",
        "operationId": "c1.api.app.v2.AppUserOwnersV2.CreateUserOwner",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The userId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_slug",
            "required": true,
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_ref_id",
            "required": true,
            "schema": {
              "description": "The id of the user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.app.v2.CreateAppUserUserOwnerRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.app.v2.CreateAppUserUserOwnerResponse"
                }
              }
            },
            "description": "CreateAppUserUserOwnerResponse is the response for creating a user ownership source on an app user."
          }
        },
        "summary": "Create User Owner",
        "tags": [
          "App User Owner V2"
        ],
        "x-speakeasy-group": "AppUserOwnersV2",
        "x-speakeasy-name-override": "CreateUserOwner",
        "x-stability-level": "draft"
      }
    },
    "/api/v2/users/{user_id}/owners": {
      "put": {
        "description": "Set replaces all owners for a given user (service account) and role.",
        "operationId": "c1.api.user.v2.UserOwnersV2.Set",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The userId field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.user.v2.SetUserOwnersV2RequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.user.v2.SetUserOwnersV2Response"
                }
              }
            },
            "description": "SetUserOwnersV2Response is the empty response for setting user owners."
          }
        },
        "summary": "Set",
        "tags": [
          "User Owner V2"
        ],
        "x-speakeasy-group": "UserOwnersV2",
        "x-speakeasy-name-override": "Set",
        "x-stability-level": "draft"
      }
    },
    "/api/v2/users/{user_id}/owners/entitlements": {
      "get": {
        "description": "SearchEntitlementOwners searches for entitlement ownership sources of this user (service account).",
        "operationId": "c1.api.user.v2.UserOwnersV2.SearchEntitlementOwners",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The userId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "role_slug",
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.user.v2.SearchUserEntitlementOwnersResponse"
                }
              }
            },
            "description": "SearchUserEntitlementOwnersResponse is the response for searching entitlement ownership sources on a user (service account)."
          }
        },
        "summary": "Search Entitlement Owners",
        "tags": [
          "User Owner V2"
        ],
        "x-speakeasy-group": "UserOwnersV2",
        "x-speakeasy-name-override": "SearchEntitlementOwners",
        "x-stability-level": "draft"
      }
    },
    "/api/v2/users/{user_id}/owners/entitlements/{role_slug}/{app_entitlement_ref_app_id}/{app_entitlement_ref_id}": {
      "delete": {
        "description": "DeleteEntitlementOwner deletes an entitlement ownership source for a user (service account).",
        "operationId": "c1.api.user.v2.UserOwnersV2.DeleteEntitlementOwner",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The userId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_slug",
            "required": true,
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_ref_app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_ref_id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.user.v2.DeleteUserEntitlementOwnerRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.user.v2.DeleteUserEntitlementOwnerResponse"
                }
              }
            },
            "description": "DeleteUserEntitlementOwnerResponse is the empty response for deleting an entitlement ownership source on a user (service account)."
          }
        },
        "summary": "Delete Entitlement Owner",
        "tags": [
          "User Owner V2"
        ],
        "x-speakeasy-group": "UserOwnersV2",
        "x-speakeasy-name-override": "DeleteEntitlementOwner",
        "x-stability-level": "draft"
      },
      "post": {
        "description": "CreateEntitlementOwner creates an entitlement ownership source for a user (service account).",
        "operationId": "c1.api.user.v2.UserOwnersV2.CreateEntitlementOwner",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The userId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_slug",
            "required": true,
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_ref_app_id",
            "required": true,
            "schema": {
              "description": "The appId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "app_entitlement_ref_id",
            "required": true,
            "schema": {
              "description": "The id field.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.user.v2.CreateUserEntitlementOwnerRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.user.v2.CreateUserEntitlementOwnerResponse"
                }
              }
            },
            "description": "CreateUserEntitlementOwnerResponse is the response for creating an entitlement ownership source on a user (service account)."
          }
        },
        "summary": "Create Entitlement Owner",
        "tags": [
          "User Owner V2"
        ],
        "x-speakeasy-group": "UserOwnersV2",
        "x-speakeasy-name-override": "CreateEntitlementOwner",
        "x-stability-level": "draft"
      }
    },
    "/api/v2/users/{user_id}/owners/users": {
      "get": {
        "description": "SearchUserOwners searches for user ownership sources of this user (service account).",
        "operationId": "c1.api.user.v2.UserOwnersV2.SearchUserOwners",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The userId field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "schema": {
              "description": "The pageSize field.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_token",
            "schema": {
              "description": "The pageToken field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "role_slug",
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.user.v2.SearchUserOwnersResponse"
                }
              }
            },
            "description": "SearchUserOwnersResponse is the response for searching user ownership sources on a user (service account)."
          }
        },
        "summary": "Search User Owners",
        "tags": [
          "User Owner V2"
        ],
        "x-speakeasy-group": "UserOwnersV2",
        "x-speakeasy-name-override": "SearchUserOwners",
        "x-stability-level": "draft"
      }
    },
    "/api/v2/users/{user_id}/owners/users/{role_slug}/{user_ref_id}": {
      "delete": {
        "description": "DeleteUserOwner deletes a user ownership source for a user (service account).",
        "operationId": "c1.api.user.v2.UserOwnersV2.DeleteUserOwner",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The userId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_slug",
            "required": true,
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_ref_id",
            "required": true,
            "schema": {
              "description": "The id of the user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.user.v2.DeleteUserUserOwnerRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.user.v2.DeleteUserUserOwnerResponse"
                }
              }
            },
            "description": "DeleteUserUserOwnerResponse is the empty response for deleting a user ownership source on a user (service account)."
          }
        },
        "summary": "Delete User Owner",
        "tags": [
          "User Owner V2"
        ],
        "x-speakeasy-group": "UserOwnersV2",
        "x-speakeasy-name-override": "DeleteUserOwner",
        "x-stability-level": "draft"
      },
      "post": {
        "description": "CreateUserOwner creates a user ownership source for a user (service account).",
        "operationId": "c1.api.user.v2.UserOwnersV2.CreateUserOwner",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "The userId field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_slug",
            "required": true,
            "schema": {
              "description": "The roleSlug field.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_ref_id",
            "required": true,
            "schema": {
              "description": "The id of the user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/c1.api.user.v2.CreateUserUserOwnerRequestInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/c1.api.user.v2.CreateUserUserOwnerResponse"
                }
              }
            },
            "description": "CreateUserUserOwnerResponse is the response for creating a user ownership source on a user (service account)."
          }
        },
        "summary": "Create User Owner",
        "tags": [
          "User Owner V2"
        ],
        "x-speakeasy-group": "UserOwnersV2",
        "x-speakeasy-name-override": "CreateUserOwner",
        "x-stability-level": "draft"
      }
    }
  },
  "security": [
    {
      "bearerAuth": [],
      "oauth": []
    }
  ],
  "servers": [
    {
      "description": "The C1 API server for the current tenant.",
      "url": "https://{tenantDomain}.conductor.one",
      "variables": {
        "tenantDomain": {
          "default": "example",
          "description": "The domain of the tenant to use for this request."
        }
      }
    }
  ]
}