C1

C1 Policy API

The Policy API from C1 — 5 operation(s) for policy.

OpenAPI Specification

c1-policy-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  description: The ConductorOne API is a HTTP API for managing ConductorOne resources.
  title: ConductorOne Access Conflict Policy API
  version: 0.1.0-alpha
servers:
- description: The ConductorOne 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.
security:
- bearerAuth: []
  oauth: []
tags:
- name: Policy
paths:
  /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
          readOnly: false
          type: integer
      - in: query
        name: page_token
        schema:
          description: The pageToken field.
          readOnly: false
          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-operation:
        terraform-resource: Policy#create
      x-speakeasy-group: Policies
      x-speakeasy-name-override: Create
  /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.
          readOnly: false
          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-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.
          readOnly: false
          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-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-operation:
        terraform-resource: Policy#update
      x-speakeasy-group: Policies
      x-speakeasy-name-override: Update
  /api/v1/policies/test-account-provision-policy:
    post:
      description: Invokes the c1.api.policy.v1.AccountProvisionPolicyTest.Test method.
      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: Successful response
      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/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-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
components:
  schemas:
    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.
      nullable: true
      properties:
        rejectMessage:
          description: An optional message to include in the comments when a task is automatically rejected.
          readOnly: false
          type: string
      title: Reject
      type: object
      x-speakeasy-name-override: Reject
    c1.api.form.v1.SelectField:
      description: The SelectField message.
      nullable: true
      properties:
        options:
          description: The options field.
          items:
            $ref: '#/components/schemas/c1.api.form.v1.SelectOption'
          nullable: true
          readOnly: false
          type: array
      title: Select Field
      type: object
      x-speakeasy-name-override: SelectField
    c1.api.policy.v1.ConnectorProvision.DoNotSave:
      description: The DoNotSave message.
      nullable: true
      title: Do Not Save
      type: object
      x-speakeasy-name-override: DoNotSave
    c1.api.form.v1.RequiredTogether:
      description: The RequiredTogether message.
      nullable: true
      title: Required Together
      type: object
      x-speakeasy-name-override: RequiredTogether
    c1.api.policy.v1.Form:
      description: The Form message.
      nullable: true
      properties:
        form:
          $ref: '#/components/schemas/c1.api.form.v1.Form'
      title: Form
      type: object
      x-speakeasy-name-override: Form
    c1.api.policy.v1.AppEntitlementReference:
      description: This object references an app entitlement's ID and AppID.
      properties:
        appEntitlementId:
          description: The ID of the Entitlement.
          readOnly: false
          type: string
        appId:
          description: The ID of the App this entitlement belongs to.
          readOnly: false
          type: string
      title: App Entitlement Reference
      type: object
      x-speakeasy-name-override: AppEntitlementReference
    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:
          $ref: '#/components/schemas/validate.AnyRules'
        bool:
          $ref: '#/components/schemas/validate.BoolRules'
        bytes:
          $ref: '#/components/schemas/validate.BytesRules'
        double:
          $ref: '#/components/schemas/validate.DoubleRules'
        duration:
          $ref: '#/components/schemas/validate.DurationRules'
        enum:
          $ref: '#/components/schemas/validate.EnumRules'
        fixed32:
          $ref: '#/components/schemas/validate.Fixed32Rules'
        fixed64:
          $ref: '#/components/schemas/validate.Fixed64Rules'
        float:
          $ref: '#/components/schemas/validate.FloatRules'
        int32:
          $ref: '#/components/schemas/validate.Int32Rules'
        int64:
          $ref: '#/components/schemas/validate.Int64Rules'
        map:
          $ref: '#/components/schemas/validate.MapRules'
        message:
          $ref: '#/components/schemas/validate.MessageRules'
        repeated:
          $ref: '#/components/schemas/validate.RepeatedRules'
        sfixed32:
          $ref: '#/components/schemas/validate.SFixed32Rules'
        sfixed64:
          $ref: '#/components/schemas/validate.SFixed64Rules'
        sint32:
          $ref: '#/components/schemas/validate.SInt32Rules'
        sint64:
          $ref: '#/components/schemas/validate.SInt64Rules'
        string:
          $ref: '#/components/schemas/validate.StringRules'
        timestamp:
          $ref: '#/components/schemas/validate.TimestampRules'
        uint32:
          $ref: '#/components/schemas/validate.UInt32Rules'
        uint64:
          $ref: '#/components/schemas/validate.UInt64Rules'
      title: Field Rules
      type: object
      x-speakeasy-name-override: FieldRules
    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.AppGroupApproval:
      description: The AppGroupApproval object provides the configuration for setting a group as the approvers of an approval policy step.
      nullable: true
      properties:
        allowSelfApproval:
          description: Configuration to allow self approval if the target user is a member of the group during this step.
          readOnly: false
          type: boolean
        appGroupId:
          description: The ID of the group specified for approval.
          readOnly: false
          type: string
        appId:
          description: The ID of the app that contains the group specified for approval.
          readOnly: false
          type: string
        fallback:
          description: Configuration to allow a fallback if the group is empty.
          readOnly: false
          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'
          nullable: true
          readOnly: false
          type: array
        fallbackUserIds:
          description: Configuration to specific which users to fallback to if fallback is enabled and the group is empty.
          items:
            type: string
          nullable: true
          readOnly: false
          type: array
        isGroupFallbackEnabled:
          description: Configuration to enable fallback for group fallback.
          readOnly: false
          type: boolean
      title: App Group Approval
      type: object
      x-speakeasy-name-override: AppGroupApproval
    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.
          readOnly: false
          type: string
        excludePolicyIds:
          description: The policy IDs to exclude from the search.
          items:
            type: string
          nullable: true
          readOnly: false
          type: array
        includeDeleted:
          description: The includeDeleted field.
          readOnly: false
          type: boolean
        pageSize:
          description: The pageSize where 0 <= pageSize <= 100. Values < 10 will be set to 10. A value of 0 returns the default page size (currently 25)
          format: int32
          readOnly: false
          type: integer
        pageToken:
          description: The pageToken field.
          readOnly: false
          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
          nullable: true
          readOnly: false
          type: array
        query:
          description: Query the policies with a fuzzy search on display name and description.
          readOnly: false
          type: string
        refs:
          description: The refs field.
          items:
            $ref: '#/components/schemas/c1.api.policy.v1.PolicyRef'
          nullable: true
          readOnly: false
          type: array
      title: Search Policies Request
      type: object
      x-speakeasy-name-override: SearchPoliciesRequest
    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"
      nullable: true
      properties:
        account:
          $ref: '#/components/schemas/c1.api.policy.v1.ConnectorProvision.AccountProvision'
        defaultBehavior:
          $ref: '#/components/schemas/c1.api.policy.v1.ConnectorProvision.DefaultBehavior'
        deleteAccount:
          $ref: '#/components/schemas/c1.api.policy.v1.ConnectorProvision.DeleteAccount'
      title: Connector Provision
      type: object
      x-speakeasy-name-override: ConnectorProvision
    c1.api.policy.v1.PolicyPostActions:
      description: "These are actions to happen after a policy is complete.\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 when used in a CERTIFY Ticket Type:\n Causes any deprovision or change in a grant to be applied when Certify Ticket is closed.\nThis field is part of the `action` oneof.\nSee the documentation for `c1.api.policy.v1.PolicyPostActions` for more details."
          nullable: true
          readOnly: false
          type: boolean
      title: Policy Post Actions
      type: object
      x-speakeasy-name-override: PolicyPostActions
    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\n\nThis message contains a oneof named _max_file_size. Only a single field of the following list may be set at a time:\n  - maxFileSize\n"
      nullable: true
      properties:
        acceptedFileTypes:
          description: The acceptedFileTypes field.
          items:
            type: string
          nullable: true
          readOnly: false
          type: array
        fileInputField:
          $ref: '#/components/schemas/c1.api.form.v1.FileInputField'
        maxFileSize:
          description: 'The maxFileSize field.

            This field is part of the `_max_file_size` oneof.

            See the documentation for `c1.api.form.v1.FileField` for more details.'
          format: int64
          nullable: true
          readOnly: false
          type: string
      title: File Field
      type: object
      x-speakeasy-name-override: FileField
    c1.api.policy.v1.ManualProvision:
      description: Manual provisioning indicates that a human must intervene for the provisioning of this step.
      nullable: true
      properties:
        instructions:
          description: This field indicates a text body of instructions for the provisioner to indicate.
          readOnly: false
          type: string
        userIds:
          description: An array of users that are required to provision during this step.
          items:
            type: string
          nullable: true
          readOnly: false
          type: array
      title: Manual Provision
      type: object
      x-speakeasy-name-override: ManualProvision
    c1.api.policy.v1.PolicySteps:
      description: The PolicySteps message.
      properties:
        steps:
          description: An array of policy steps indicating the processing flow of a policy. These steps are oneOfs, and only one property may be set for each array index at a time.
          items:
            $ref: '#/components/schemas/c1.api.policy.v1.PolicyStep'
          nullable: true
          readOnly: false
          type: array
      title: Policy Steps
      type: object
      x-speakeasy-name-override: PolicySteps
    c1.api.policy.v1.WaitCondition:
      description: The WaitCondition message.
      nullable: true
      properties:
        condition:
          description: The condition that has to be true for this wait condition to continue.
          readOnly: false
          type: string
      title: Wait Condition
      type: object
      x-speakeasy-name-override: WaitCondition
    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.
      nullable: true
      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
          nullable: true
          readOnly: true
          type: array
        fallback:
          description: Configuration to allow a fallback if the identity user of the target app user cannot be determined.
          readOnly: false
          type: boolean
        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
          nullable: true
          readOnly: false
          type: array
      title: Self Approval
      type: object
      x-speakeasy-name-override: SelfApproval
    c1.api.form.v1.AtLeastOne:
      description: The AtLeastOne message.
      nullable: true
      title: At Least One
      type: object
      x-speakeasy-name-override: AtLeastOne
    c1.api.form.v1.MutuallyExclusive:
      description: The MutuallyExclusive message.
      nullable: true
      title: Mutually Exclusive
      type: object
      x-speakeasy-name-override: MutuallyExclusive
    validate.EnumRules:
      description: EnumRules describe the constraints applied to enum values
      nullable: true
      properties:
        const:
          description: Const specifies that this field must be exactly the specified value
          format: int32
          readOnly: false
          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."
          readOnly: false
          type: boolean
        in:
          description: "In specifies that this field must be equal to one of the specified\n values"
          items:
            format: int32
            type: integer
          nullable: true
          readOnly: false
          type: array
        notIn:
          description: "NotIn specifies that this field cannot be equal to one of the specified\n values"
          items:
            format: int32
            type: integer
          nullable: true
          readOnly: false
          type: array
      title: Enum Rules
      type: object
      x-speakeasy-name-override: EnumRules
    validate.TimestampRules:
      description: "TimestampRules describe the constraints applied exclusively to the\n `google.protobuf.Timestamp` well-known type"
      nullable: true
      properties:
        const:
          format: date-time
          readOnly: false
          type: string
        gt:
          format: date-time
          readOnly: false
          type: string
        gtNow:
          description: "GtNow specifies that this must be greater than the current time. GtNow\n can only be used with the Within rule."
          readOnly: false
          type: boolean
        gte:
          format: date-time
          readOnly: false
          type: string
        lt:
          format: date-time
          readOnly: false
          type: string
        ltNow:
          description: "LtNow specifies that this must be less than the current time. LtNow\n can only be used with the Within rule."
          readOnly: false
          type: boolean
        lte:
          format: date-time
          readOnly: false
          type: string
        required:
          description: Required specifies that this field must be set
          readOnly: false
          type: boolean
        within:
          format: duration
          readOnly: false
          type: string
      title: Timestamp Rules
      type: object
      x-speakeasy-name-override: TimestampRules
    c1.api.policy.v1.Provision:
      description: The provision step references a provision policy for this step.
      nullable: true
      properties:
        assigned:
          description: A field indicating whether this step is assigned.
          readOnly: false
          type: boolean
        provisionPolicy:
          $ref: '#/components/schemas/c1.api.policy.v1.ProvisionPolicy'
        provisionTarget:
          $ref: '#/components/schemas/c1.api.policy.v1.ProvisionTarget'
      title: Provision
      type: object
      x-speakeasy-name-override: Provision
    c1.api.form.v1.PasswordField:
      description: The PasswordField message.
      nullable: true
      title: Password Field
      type: object
      x-speakeasy-name-override: PasswordField
    validate.RepeatedRules:
      description: RepeatedRules describe the constraints applied to `repeated` values
      nullable: true
      properties:
        ignoreEmpty:
          description: "IgnoreEmpty specifies that the validation rules of this field should be\n evaluated only if the field is not empty"
          readOnly: false
          type: boolean
        items:
          $ref: '#/components/schemas/validate.FieldRules'
        maxItems:
          description: "MaxItems specifies that this field must have the specified number of\n items at a maximum"
          format: uint64
          readOnly: false
          type: string
        minItems:
          description: "MinItems specifies that this field must have the specified number of\n items at a minimum"
          format: uint64
          readOnly: false
          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)."
          readOnly: false
          type: boolean
      title: Repeated Rules
      type: object
      x-speakeasy-name-override: RepeatedRules
    c1.api.policy.v1.AgentApproval:
      description: The agent to assign the task to.
      nullable: true
      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
          readOnly: false
          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
          readOnly: false
          type: string
          x-speakeasy-unknown-values: allow
        agentUserId:
          description: The agent user ID to assign the task to.
          readOnly: false
          type: string
        instructions:
          description: Instructions for the agent.
          readOnly: false
          type: string
        policyIds:
          description: The allow list of policy IDs to re-route the task to.
          items:
            type: string
          nullable: true
          readOnly: false
          type: array
        reassignToUserIds:
          description: The users to reassign the task to if the agent failure action is reassign to users.
          items:
            type: string
          nullable: true
          readOnly: false
          type: array
      title: Agent Approval
      type: object
      x-speakeasy-name-override: AgentApproval
    validate.DurationRules:
      description: "DurationRules describe the constraints applied exclusively to the\n `google.protobuf.Duration` well-known type"
      nullable: true
      properties:
        const:
          format: duration
          readOnly: false
          type: string
        gt:
          format: duration
          readOnly: false
          type: string
        gte:
          format: duration
          readOnly: false
          type: string
        in:
          description: "In specifies that this field must be equal to one of the specified\n values"
          items:
            format: duration
            readOnly: false
            type: string
          nullable: true
          readOnly: false
          type: array
        lt:
          format: duration
          readOnly: false
          type: string
        lte:
          format: duration
          readOnly: false
          type: string
        notIn:
          description: "NotIn specifies that this field cannot be equal to one of the specified\n values"
          items:
            format: duration
            readOnly: false
            type: string
          nullable: true
          readOnly: false
          type: array
        required:
          description: Required specifies that this field must be set
          readOnly: false
          type: boolean
      title: Duration Rules
      type: object
      x-speakeasy-name-override: DurationRules
    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"
      properties:
        atLeastOne:
          $ref: '#/components/schemas/c1.api.form.v1.AtLeastOne'
        fieldNames:
          description: The names of the fields that share this relationship
          items:
            type: string
          nullable: true
          readOnly: false
          type: array
        mutuallyExclusive:
          $ref: '#/components/schemas/c1.api.form.v1.MutuallyExclusive'
        requiredTogether:
          $ref: '#/components/schemas/c1.api.form.v1.RequiredTogether'
      title: Field Relationship
      type: object
      x-speakeasy-name-override: FieldRelationship
    c1.api.policy.v1.ResourceOwnerApproval:
      description: The resource owner approval allows configuration of the approval step when the target approvers are the resource owners.
      nullable: true
      properties:
        allowSelfApproval:
          description: Configuration to allow self approval if the target user is an resource owner during this step.
          readOnly: false
          type: boolean
        fallback:
          description: Configuration to allow a fallback if the resource owner cannot be identified.
          readOnly: false
          type: boolean
        fallbackUserIds:
          description: Configuration to specific which users to fallback to if fallback is enabled and the resource owner cannot be identified.
          items:
            type: string
          nullable: true
          readOnly: false
          type: array
      title: Resource Owner Approval
      type: object
      x-speakeasy-name-override: ResourceOwnerApproval
    c1.api.editor.v1.EditorMarker:
      description: The EditorMarker message.
      properties:
        endColumn:
          description: The endColumn field.
          format: int32
          readOnly: false
          type: integer
        endLineNumber:
          description: The endLineNumber field.
          format: int32
          readOnly: false
          type: integer
        message:
          description: The message field.
          readOnly: false
          type: string
        severity:
          description: The severity field.
          enum:
          - UNKNOWN
          - HINT
          - INFO
          - WARNING
          - ERROR
          readOnly: false
          type: string
          x-speakeasy-unknown-values: allow
        startColumn:
          description: The startColumn field.
          format: int32
          readOnly: false
          type: integer
        startLineNumber:
          description: The startLineNumber field.
          format: int32
          readOnly: false
          type: integer
      title: Editor Marker
      type: object
      x-speakeasy-name-override: EditorMarker
    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.
          readOnly: false
          type: string
        appId:
          description: The app in wh

# --- truncated at 32 KB (109 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/c1/refs/heads/main/openapi/c1-policy-api-openapi.yml