type: object
required:
- id
- name
- type
- inputSchema
- exampleInput
properties:
  id:
    type: string
    description: Unique identifier of the trigger.
    example: "idn:access-request-dynamic-approver"
  name:
    type: string
    description: Trigger Name.
    example: Access Request Dynamic Approver
  type:
    $ref: './TriggerType.yaml'
    example: REQUEST_RESPONSE
  description:
    type: string
    description: Trigger Description.
    example: Trigger for getting a dynamic approver.
  inputSchema:
    type: string
    description: The JSON schema of the payload that will be sent by the trigger to the subscribed service.
    example: "{\"definitions\":{\"record:AccessRequestDynamicApproverInput\":{\"type\":\"object\",\"required\":[\"accessRequestId\",\"requestedFor\",\"requestedItems\",\"requestedBy\"],\"additionalProperties\":true,\"properties\":{\"accessRequestId\":{\"type\":\"string\"},\"requestedFor\":{\"$ref\":\"#/definitions/record:requestedForIdentityRef\"},\"requestedItems\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/record:requestedObjectRef\"}},\"requestedBy\":{\"$ref\":\"#/definitions/record:requestedByIdentityRef\"}}},\"record:requestedForIdentityRef\":{\"type\":\"object\",\"required\":[\"id\",\"name\",\"type\"],\"additionalProperties\":true,\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"type\":{\"type\":\"string\"}}},\"record:requestedObjectRef\":{\"type\":\"object\",\"optional\":[\"description\",\"comment\"],\"required\":[\"id\",\"name\",\"type\",\"operation\"],\"additionalProperties\":true,\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"description\":{\"oneOf\":[{\"type\":\"null\"},{\"type\":\"string\"}]},\"type\":{\"type\":\"string\"},\"operation\":{\"type\":\"string\"},\"comment\":{\"oneOf\":[{\"type\":\"null\"},{\"type\":\"string\"}]}}},\"record:requestedByIdentityRef\":{\"type\":\"object\",\"required\":[\"type\",\"id\",\"name\"],\"additionalProperties\":true,\"properties\":{\"type\":{\"type\":\"string\"},\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}}}},\"$ref\":\"#/definitions/record:AccessRequestDynamicApproverInput\"}"
  exampleInput:
    description: An example of the JSON payload that will be sent by the trigger to the subscribed service.
    oneOf:
    - $ref: './trigger/example-input/AccessRequestDynamicApprover.yaml'
    - $ref: './trigger/example-input/AccessRequestPostApproval.yaml'
    - $ref: './trigger/example-input/AccessRequestPreApproval.yaml'
    - $ref: './trigger/example-input/AccountAggregationCompleted.yaml'
    - $ref: './trigger/example-input/AccountAttributesChanged.yaml'
    - $ref: './trigger/example-input/AccountCorrelated.yaml'
    - $ref: './trigger/example-input/AccountsCollectedForAggregation.yaml'
    - $ref: './trigger/example-input/AccountUncorrelated.yaml'
    - $ref: './trigger/example-input/CampaignActivated.yaml'
    - $ref: './trigger/example-input/CampaignEnded.yaml'
    - $ref: './trigger/example-input/CampaignGenerated.yaml'
    - $ref: './trigger/example-input/CertificationSignedOff.yaml'
    - $ref: './trigger/example-input/IdentityAttributesChanged.yaml'
    - $ref: './trigger/example-input/IdentityCreated.yaml'
    - $ref: './trigger/example-input/IdentityDeleted.yaml'
    - $ref: './trigger/example-input/ProvisioningCompleted.yaml'
    - $ref: './trigger/example-input/SavedSearchComplete.yaml'
    - $ref: './trigger/example-input/SourceAccountCreated.yaml'
    - $ref: './trigger/example-input/SourceAccountDeleted.yaml'
    - $ref: './trigger/example-input/SourceAccountUpdated.yaml'
    - $ref: './trigger/example-input/SourceCreated.yaml'
    - $ref: './trigger/example-input/SourceDeleted.yaml'
    - $ref: './trigger/example-input/SourceUpdated.yaml'
    - $ref: './trigger/example-input/VAClusterStatusChangeEvent.yaml'
  outputSchema:
    type: string
    description: The JSON schema of the response that will be sent by the subscribed service to the trigger in response to an event.  This only applies to a trigger type of `REQUEST_RESPONSE`.
    nullable: true
    example: "{\"definitions\":{\"record:AccessRequestDynamicApproverOutput\":{\"type\":[\"null\",\"object\"],\"required\":[\"id\",\"name\",\"type\"],\"additionalProperties\":true,\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"type\":{\"type\":\"string\"}}}},\"$ref\":\"#/definitions/record:AccessRequestDynamicApproverOutput\"}"
  exampleOutput:
    description: An example of the JSON payload that will be sent by the subscribed service to the trigger in response to an event.
    nullable: true
    oneOf:
    - $ref: './trigger/example-output/AccessRequestDynamicApprover.yaml'
    - $ref: './trigger/example-output/AccessRequestPreApproval.yaml'