C1

C1 Policy API

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

Operations 8

GET /api/v1/policies List #
POST /api/v1/policies Create #
DELETE /api/v1/policies/{id} Delete #
GET /api/v1/policies/{id} Get #
POST /api/v1/policies/{id} Update #
POST /api/v1/policies/test-account-provision-policy Test #
POST /api/v1/policies/validate/cel Validate Cel #
POST /api/v1/search/policies Search #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/c1-policy-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

c1-policy-api-openapi.yml Raw ↑
openapi: 3.2.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.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"
      properties:
        action:
          $ref: '#/components/schemas/c1.api.policy.v1.ActionProvision'
        connector:
          $ref: '#/components/schemas/c1.api.policy.v1.ConnectorProvision'
        delegated:
          $ref: '#/components/schemas/c1.api.policy.v1.DelegatedProvision'
        externalTicket:
          $ref: '#/components/schemas/c1.api.policy.v1.ExternalTicketProvision'
        manual:
          $ref: '#/components/schemas/c1.api.policy.v1.ManualProvision'
        multiStep:
          $ref: '#/components/schemas/c1.api.policy.v1.MultiStep'
        unconfigured:
          $ref: '#/components/schemas/c1.api.policy.v1.UnconfiguredProvision'
        webhook:
          $ref: '#/components/schemas/c1.api.policy.v1.WebhookProvision'
      title: Provision Policy
      type: object
      x-speakeasy-name-override: ProvisionPolicy
    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:
          $ref: '#/components/schemas/c1.api.policy.v1.Policy'
        updateMask:
          nullable: true
          readOnly: false
          type: string
      title: Update Policy Request
      type: object
      x-speakeasy-name-override: UpdatePolicyRequest
    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.WebhookApproval:
      description: The WebhookApproval message.
      nullable: true
      properties:
        webhookId:
          description: The ID of the webhook to call for approval.
          readOnly: false
          type: string
      title: Webhook Approval
      type: object
      x-speakeasy-name-override: WebhookApproval
    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
    validate.BoolRules:
      description: BoolRules describes the constraints applied to `bool` values
      nullable: true
      properties:
        const:
          description: Const specifies that this field must be exactly the specified value
          readOnly: false
          type: boolean
      title: Bool Rules
      type: object
      x-speakeasy-name-override: BoolRules
    c1.api.policy.v1.Escalation.ReplacePolicy:
      description: The ReplacePolicy message.
      nullable: true
      properties:
        policyId:
          description: The policyId field.
          readOnly: false
          type: string
      title: Replace Policy
      type: object
      x-speakeasy-name-override: ReplacePolicy
    c1.api.form.v1.TextField:
      description: The TextField message.
      nullable: true
      properties:
        multiline:
          description: The multiline field.
          readOnly: false
          type: boolean
      title: Text Field
      type: object
      x-speakeasy-name-override: TextField
    c1.api.form.v1.ChipsField:
      description: The ChipsField message.
      nullable: true
      title: Chips Field
      type: object
      x-speakeasy-name-override: ChipsField
    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.
      nullable: true
      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.
          readOnly: false
          type: boolean
        assignedUserIds:
          description: The array of users determined to be the manager during processing time.
          items:
            type: string
          nullable: true
          readOnly: true
          type: array
        fallback:
          description: Configuration to allow a fallback if no manager is found.
          readOnly: false
          type: boolean
        fallbackUserIds:
          description: Configuration to specific which users to fallback to if fallback is enabled and no manager is found.
          items:
            type: string
          nullable: true
          readOnly: false
          type: array
      title: Manager Approval
      type: object
      x-speakeasy-name-override: ManagerApproval
    c1.api.policy.v1.ConnectorProvision.DoNotSave:
      description: The DoNotSave message.
      nullable: true
      title: Do Not Save
      type: object
      x-speakeasy-name-override: DoNotSave
    validate.UInt32Rules:
      description: UInt32Rules describes the constraints applied to `uint32` values
      nullable: true
      properties:
        const:
          description: Const specifies that this field must be exactly the specified value
          format: uint32
          readOnly: false
          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
          readOnly: false
          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
          readOnly: false
          type: integer
        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
        in:
          description: "In specifies that this field must be equal to one of the specified\n values"
          items:
            format: uint32
            type: integer
          nullable: true
          readOnly: false
          type: array
        lt:
          description: "Lt specifies that this field must be less than the specified value,\n exclusive"
          format: uint32
          readOnly: false
          type: integer
        lte:
          description: "Lte specifies that this field must be less than or equal to the\n specified value, inclusive"
          format: uint32
          readOnly: false
          type: integer
        notIn:
          description: "NotIn specifies that this field cannot be equal to one of the specified\n values"
          items:
            format: uint32
            type: integer
          nullable: true
          readOnly: false
          type: array
      title: U Int 32 Rules
      type: object
      x-speakeasy-name-override: UInt32Rules
    c1.api.policy.v1.PolicyStep:
      description: "The PolicyStep message.\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"
      properties:
        accept:
          $ref: '#/components/schemas/c1.api.policy.v1.Accept'
        approval:
          $ref: '#/components/schemas/c1.api.policy.v1.Approval'
        form:
          $ref: '#/components/schemas/c1.api.policy.v1.Form'
        provision:
          $ref: '#/components/schemas/c1.api.policy.v1.Provision'
        reject:
          $ref: '#/components/schemas/c1.api.policy.v1.Reject'
        wait:
          $ref: '#/components/schemas/c1.api.policy.v1.Wait'
      title: Policy Step
      type: object
      x-speakeasy-name-override: PolicyStep
    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\n\nThis message contains a oneof named _default_value. Only a single field of the following list may be set at a time:\n  - defaultValue\n\n\nThis message contains a oneof named _rules. Only a single field of the following list may be set at a time:\n  - rules\n"
      nullable: true
      properties:
        defaultValue:
          description: 'The defaultValue field.

            This field is part of the `_default_value` oneof.

            See the documentation for `c1.api.form.v1.Int64Field` for more details.'
          format: int64
          nullable: true
          readOnly: false
          type: string
        numberField:
          $ref: '#/components/schemas/c1.api.form.v1.NumberField'
        placeholder:
          description: The placeholder field.
          readOnly: false
          type: string
        rules:
          $ref: '#/components/schemas/validate.Int64Rules'
      title: Int 64 Field
      type: object
      x-speakeasy-name-override: Int64Field
    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
    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
    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.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.form.v1.CheckboxField:
      description: The CheckboxField message.
      nullable: true
      title: Checkbox Field
      type: object
      x-speakeasy-name-override: CheckboxField
    c1.api.policy.v1.ActionProvision:
      description: This provision step indicates that account lifecycle action should be called to provision this entitlement.
      nullable: true
      properties:
        actionName:
          description: The actionName field.
          readOnly: false
          type: string
        appId:
          description: The appId field.
          readOnly: false
          type: string
        connectorId:
          description: The connectorId field.
          readOnly: false
          type: string
        displayName:
          description: The displayName field.
          readOnly: false
          type: string
      title: Action Provision
      type: object
      x-speakeasy-name-override: ActionProvision
    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.Policy:
      description: A policy describes the behavior of the ConductorOne system when processing a task. You can describe the type, approvers, fallback behavior, and escalation processes.
      properties:
        createdAt:
          format: date-time
          readOnly: true
          type: string
        deletedAt:
          format: date-time
          readOnly: true
          type: string
        description:
          description: The description of the Policy.
          readOnly: false
          type: string
        displayName:
          description: The display name of the Policy.
          readOnly: false
          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 of string(policy type) to steps in a policy. This structure is leftover from a previous design, and should only ever have one key->value set.
          readOnly: false
          type: object
        policyType:
          description: Indicates the type of this policy. Can also be used to get the value from policySteps.
          enum:
          - POLICY_TYPE_UNSPECIFIED
          - POLICY_TYPE_GRANT
          - POLICY_TYPE_REVOKE
          - POLICY_TYPE_CERTIFY
          - POLICY_TYPE_ACCESS_REQUEST
          - POLICY_TYPE_PROVISION
          readOnly: false
          type: string
          x-speakeasy-unknown-values: allow
        postActions:
          description: An array of actions (ordered) to take place after a policy completes processing.
          items:
            $ref: '#/components/schemas/c1.api.policy.v1.PolicyPostActions'
          nullable: true
          readOnly: false
          type: array
        reassignTasksToDelegates:
          deprecated: true
          description: Deprecated. Use setting in policy step instead
          readOnly: false
          type: boolean
        rules:
          description: The rules field.
          items:
            $ref: '#/components/schemas/c1.api.policy.v1.Rule'
          nullable: true
          readOnly: false
          type: array
        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
      title: Policy
      type: object
      x-speakeasy-entity: Policy
      x-speakeasy-name-override: Policy
    c1.api.policy.v1.EditorValidateRequest:
      description: The EditorValidateRequest message.
      properties:
        text:
          description: The text field.
          readOnly: false
          type: string
      title: Editor Validate Request
      type: object
      x-speakeasy-name-override: EditorValidateRequest
    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
          readOnly: false
          type: boolean
        skip:
          description: "Skip specifies that the validation rules of this field should not be\n evaluated"
          readOnly: false
          type: boolean
      title: Message Rules
      type: object
      x-speakeasy-name-override: MessageRules
    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
    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"
      nullable: true
      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."
          nullable: true
          readOnly: false
          type: boolean
        const:
          description: Const specifies that this field must be exactly the specified value
          readOnly: false
          type: string
        contains:
          description: "Contains specifies that this field must have the specified substring\n anywhere in the string."
          readOnly: false
          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."
          nullable: true
          readOnly: false
          type: boolean
        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."
          nullable: true
          readOnly: false
          type: boolean
        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
        in:
          description: "In specifies that this field must be equal to one of the specified\n values"
          items:
            type: string
          nullable: true
          readOnly: false
          type: array
        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."
          nullable: true
          readOnly: false
          type: boolean
        ipv4:
          description: 'Ipv4 specifies that the field must be a valid IPv4 address.

            This field is part of the `well_known` oneof.

            See the documentation for `validate.StringRules` for more details.'
          nullable: true
          readOnly: false
          type: boolean
        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."
          nullable: true
          readOnly: false
          type: boolean
        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
          readOnly: false
          type: string
        lenBytes:
          description: "LenBytes specifies that this field must 

# --- 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