type: object
properties:
  id:
    type: string
    readOnly: true
    description: the id of the Source
    example: "2c91808568c529c60168cca6f90c1324"
  description:
    type: string
    description: Human-readable description of the source
    example: "This is the corporate directory."
  owner:
    description: Reference to an owning Identity Object
    type: object
    properties:
      type:
        description: The type of object being referenced
        type: string
        enum:
          - IDENTITY
        example: IDENTITY
      id:
        type: string
        description: ID of the identity
        example: 2c91808568c529c60168cca6f90c1313
      name:
        type: string
        description: Human-readable display name of the identity
        example: MyName
  cluster:
    description: Reference to the associated Cluster
    type: object
    properties:
      type:
        description: The type of object being referenced
        type: string
        enum:
          - CLUSTER
        example: CLUSTER
      id:
        type: string
        description: ID of the cluster
        example: 2c9180866166b5b0016167c32ef31a66
      name:
        type: string
        description: Human-readable display name of the cluster
        example: Corporate Cluster
  accountCorrelationConfig:
    description: Reference to an Account Correlation Config object
    type: object
    properties:
      type:
        description: The type of object being referenced
        type: string
        enum:
          - ACCOUNT_CORRELATION_CONFIG
        example: ACCOUNT_CORRELATION_CONFIG
      id:
        type: string
        description: ID of the account correlation config
        example: 2c9180855d191c59015d28583727245a
      name:
        type: string
        description: Human-readable display name of the account correlation config
        example: Directory [source-62867] Account Correlation
  accountCorrelationRule:
    description: >-
      Reference to a Rule that can do COMPLEX correlation, should only be used when accountCorrelationConfig can't
      be used.
    type: object
    properties:
      type:
        description: The type of object being referenced
        type: string
        enum:
          - RULE
        example: RULE
      id:
        type: string
        description: ID of the rule
        example: 2c918085708c274401708c2a8a760001
      name:
        type: string
        description: Human-readable display name of the rule
        example: Example Rule
  managerCorrelationMapping:
    $ref: '../../v3/schemas/ManagerCorrelationMapping.yaml'
    description: >-
      Filter Object used during manager correlation to match incoming manager values to an existing manager's
      Account/Identity
  managerCorrelationRule:
    description: >-
       Reference to the ManagerCorrelationRule, only used when a simple filter isn't sufficient.
    type: object
    properties:
      type:
        description: The type of object being referenced
        type: string
        enum:
          - RULE
        example: RULE
      id:
        type: string
        description: ID of the rule
        example: 2c918085708c274401708c2a8a760001
      name:
        type: string
        description: Human-readable display name of the rule
        example: Example Rule
  beforeProvisioningRule:
    description: >-
       Rule that runs on the CCG and allows for customization of provisioning plans before the connector is called.
    type: object
    properties:
      type:
        description: The type of object being referenced
        type: string
        enum:
          - RULE
        example: RULE
      id:
        type: string
        description: ID of the rule
        example: 2c918085708c274401708c2a8a760001
      name:
        type: string
        description: Human-readable display name of the rule
        example: Example Rule
  schemas:
    type: array
    items:
      type: object
      properties:
        type:
          description: The type of object being referenced
          type: string
          enum:
            - CONNECTOR_SCHEMA
          example: CONNECTOR_SCHEMA
        id:
          type: string
          description: ID of the schema
          example: 2c91808568c529c60168cca6f90c1777
        name:
          type: string
          description: Human-readable display name of the schema
          example: MySchema
    description: >-
      List of references to Schema objects
    example:
      - type: "CONNECTOR_SCHEMA"
        id: "2c9180835d191a86015d28455b4b232a"
        name: "account"
      - type: "CONNECTOR_SCHEMA"
        id: "2c9180835d191a86015d28455b4b232b"
        name: "group"
  passwordPolicies:
    type: array
    items:
      type: object
      properties:
        type:
          description: The type of object being referenced
          type: string
          enum:
            - PASSWORD_POLICY
          example: PASSWORD_POLICY
        id:
          type: string
          description: ID of the policy
          example: 2c91808568c529c60168cca6f90c1777
        name:
          type: string
          description: Human-readable display name of the policy
          example: My Password Policy
    description: >-
      List of references to the associated PasswordPolicy objects.
    example:
      - type: "PASSWORD_POLICY"
        id: "2c9180855d191c59015d291ceb053980"
        name: "Corporate Password Policy"
      - type: "PASSWORD_POLICY"
        id: "2c9180855d191c59015d291ceb057777"
        name: "Vendor Password Policy"
  features:
    type: array
    description: >-
      Optional features that can be supported by a source.
    items:
      $ref: '../../v3/schemas/SourceFeature.yaml'
    example: [
            "SYNC_PROVISIONING",
            "MANAGER_LOOKUP",
            "SEARCH",
            "PROVISIONING",
            "AUTHENTICATE",
            "GROUP_PROVISIONING",
            "PASSWORD"
        ]
  type:
    type: string
    description: >-
      Specifies the type of system being managed e.g. Active Directory, Workday, etc..
    example: "OpenLDAP - Direct"
  connector:
    type: string
    description: Connector script name.
    example: active-directory
  connectorClass:
    type: string
    description: >-
      The fully qualified name of the Java class that implements the connector interface.
    example: "sailpoint.connector.LDAPConnector"
  connectorAttributes:
    type: object
    description: >-
      Connector specific configuration; will differ from type to type.
    example:
      healthCheckTimeout: 30
      authSearchAttributes: [
                "cn",
                "uid",
                "mail"
            ]
  deleteThreshold:
    type: integer
    format: int32
    description: >-
      Number from 0 to 100 that specifies when to skip the delete phase.
    example: 10
  authoritative:
    type: boolean
    description: >-
      When true indicates the source is referenced by an IdentityProfile.
    example: false
  managementWorkgroup:
    description: Reference to Management Workgroup for this Source
    type: object
    properties:
      type:
        description: The type of object being referenced
        type: string
        enum:
          - GOVERNANCE_GROUP
        example: GOVERNANCE_GROUP
      id:
        type: string
        description: ID of the management workgroup
        example: 2c91808568c529c60168cca6f90c2222
      name:
        type: string
        description: Human-readable display name of the management workgroup
        example: My Management Workgroup
  healthy:
    type: boolean
    description: >-
      When true indicates a healthy source
    example: true
  status:
    type: string
    description: >-
      A status identifier, giving specific information on why a source is healthy or not
    example: "SOURCE_STATE_HEALTHY"
  since:
    type: string
    description: >-
      Timestamp showing when a source health check was last performed
    example: "2021-09-28T15:48:29.3801666300Z"
  connectorId:
    type: string
    description: The id of connector
    example: "active-directory"
  connectorName:
    type: string
    description: The name of the connector that was chosen on source creation
    example: "Active Directory"
  connectionType:
    type: string
    description: The type of connection (direct or file)
    example: "file"
  connectorImplementstionId:
    type: string
    description: The connector implementstion id
    example: "delimited-file"
