Chilkat Online Tools

SQL Server / ForgeRock Identity Cloud Collection / Step 2: Handle "Registration" Journey Callback

Back to Collection Items

-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
    DECLARE @hr int
    DECLARE @iTmp0 int
    -- Important: Do not use nvarchar(max).  See the warning about using nvarchar(max).
    DECLARE @sTmp0 nvarchar(4000)
    -- This example assumes the Chilkat API to have been previously unlocked.
    -- See Global Unlock Sample for sample code.

    DECLARE @http int
    -- Use "Chilkat_9_5_0.Http" for versions of Chilkat < 10.0.0
    EXEC @hr = sp_OACreate 'Chilkat.Http', @http OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    DECLARE @success int

    -- Use this online tool to generate code from sample JSON: Generate Code to Create JSON

    -- The following JSON is sent in the request body.

    -- {
    --   "authId": "{{authId}}",
    --   "callbacks": [
    --     {
    --       "type": "ValidatedCreateUsernameCallback",
    --       "output": [
    --         {
    --           "name": "policies",
    --           "value": {
    --             "policyRequirements": [
    --               "REQUIRED",
    --               "MIN_LENGTH",
    --               "VALID_TYPE",
    --               "VALID_USERNAME",
    --               "CANNOT_CONTAIN_CHARACTERS",
    --               "MAX_LENGTH"
    --             ],
    --             "fallbackPolicies": null,
    --             "name": "userName",
    --             "policies": [
    --               {
    --                 "policyRequirements": [
    --                   "REQUIRED"
    --                 ],
    --                 "policyId": "required"
    --               },
    --               {
    --                 "policyRequirements": [
    --                   "REQUIRED"
    --                 ],
    --                 "policyId": "not-empty"
    --               },
    --               {
    --                 "policyRequirements": [
    --                   "MIN_LENGTH"
    --                 ],
    --                 "policyId": "minimum-length",
    --                 "params": {
    --                   "minLength": 1
    --                 }
    --               },
    --               {
    --                 "policyRequirements": [
    --                   "VALID_TYPE"
    --                 ],
    --                 "policyId": "valid-type",
    --                 "params": {
    --                   "types": [
    --                     "string"
    --                   ]
    --                 }
    --               },
    --               {
    --                 "policyId": "valid-username",
    --                 "policyRequirements": [
    --                   "VALID_USERNAME"
    --                 ]
    --               },
    --               {
    --                 "policyId": "cannot-contain-characters",
    --                 "params": {
    --                   "forbiddenChars": [
    --                     "/"
    --                   ]
    --                 },
    --                 "policyRequirements": [
    --                   "CANNOT_CONTAIN_CHARACTERS"
    --                 ]
    --               },
    --               {
    --                 "policyId": "minimum-length",
    --                 "params": {
    --                   "minLength": 1
    --                 },
    --                 "policyRequirements": [
    --                   "MIN_LENGTH"
    --                 ]
    --               },
    --               {
    --                 "policyId": "maximum-length",
    --                 "params": {
    --                   "maxLength": 255
    --                 },
    --                 "policyRequirements": [
    --                   "MAX_LENGTH"
    --                 ]
    --               }
    --             ],
    --             "conditionalPolicies": null
    --           }
    --         },
    --         {
    --           "name": "failedPolicies",
    --           "value": [
    --           ]
    --         },
    --         {
    --           "name": "validateOnly",
    --           "value": false
    --         },
    --         {
    --           "name": "prompt",
    --           "value": "Username"
    --         }
    --       ],
    --       "input": [
    --         {
    --           "name": "IDToken1",
    --           "value": "{{myRandomUsername}}"
    --         },
    --         {
    --           "name": "IDToken1validateOnly",
    --           "value": false
    --         }
    --       ],
    --       "_id": 0
    --     },
    --     {
    --       "type": "StringAttributeInputCallback",
    --       "output": [
    --         {
    --           "name": "name",
    --           "value": "givenName"
    --         },
    --         {
    --           "name": "prompt",
    --           "value": "First Name"
    --         },
    --         {
    --           "name": "required",
    --           "value": true
    --         },
    --         {
    --           "name": "policies",
    --           "value": {
    --             "policyRequirements": [
    --               "REQUIRED",
    --               "VALID_TYPE"
    --             ],
    --             "fallbackPolicies": null,
    --             "name": "givenName",
    --             "policies": [
    --               {
    --                 "policyRequirements": [
    --                   "REQUIRED"
    --                 ],
    --                 "policyId": "required"
    --               },
    --               {
    --                 "policyRequirements": [
    --                   "VALID_TYPE"
    --                 ],
    --                 "policyId": "valid-type",
    --                 "params": {
    --                   "types": [
    --                     "string"
    --                   ]
    --                 }
    --               }
    --             ],
    --             "conditionalPolicies": null
    --           }
    --         },
    --         {
    --           "name": "failedPolicies",
    --           "value": [
    --           ]
    --         },
    --         {
    --           "name": "validateOnly",
    --           "value": false
    --         },
    --         {
    --           "name": "value",
    --           "value": ""
    --         }
    --       ],
    --       "input": [
    --         {
    --           "name": "IDToken2",
    --           "value": "Postman"
    --         },
    --         {
    --           "name": "IDToken2validateOnly",
    --           "value": false
    --         }
    --       ],
    --       "_id": 1
    --     },
    --     {
    --       "type": "StringAttributeInputCallback",
    --       "output": [
    --         {
    --           "name": "name",
    --           "value": "sn"
    --         },
    --         {
    --           "name": "prompt",
    --           "value": "Last Name"
    --         },
    --         {
    --           "name": "required",
    --           "value": true
    --         },
    --         {
    --           "name": "policies",
    --           "value": {
    --             "policyRequirements": [
    --               "REQUIRED",
    --               "VALID_TYPE"
    --             ],
    --             "fallbackPolicies": null,
    --             "name": "sn",
    --             "policies": [
    --               {
    --                 "policyRequirements": [
    --                   "REQUIRED"
    --                 ],
    --                 "policyId": "required"
    --               },
    --               {
    --                 "policyRequirements": [
    --                   "VALID_TYPE"
    --                 ],
    --                 "policyId": "valid-type",
    --                 "params": {
    --                   "types": [
    --                     "string"
    --                   ]
    --                 }
    --               }
    --             ],
    --             "conditionalPolicies": null
    --           }
    --         },
    --         {
    --           "name": "failedPolicies",
    --           "value": [
    --           ]
    --         },
    --         {
    --           "name": "validateOnly",
    --           "value": false
    --         },
    --         {
    --           "name": "value",
    --           "value": ""
    --         }
    --       ],
    --       "input": [
    --         {
    --           "name": "IDToken3",
    --           "value": "Self-Service-User"
    --         },
    --         {
    --           "name": "IDToken3validateOnly",
    --           "value": false
    --         }
    --       ],
    --       "_id": 2
    --     },
    --     {
    --       "type": "StringAttributeInputCallback",
    --       "output": [
    --         {
    --           "name": "name",
    --           "value": "mail"
    --         },
    --         {
    --           "name": "prompt",
    --           "value": "Email Address"
    --         },
    --         {
    --           "name": "required",
    --           "value": true
    --         },
    --         {
    --           "name": "policies",
    --           "value": {
    --             "policyRequirements": [
    --               "REQUIRED",
    --               "VALID_TYPE",
    --               "VALID_EMAIL_ADDRESS_FORMAT"
    --             ],
    --             "fallbackPolicies": null,
    --             "name": "mail",
    --             "policies": [
    --               {
    --                 "policyRequirements": [
    --                   "REQUIRED"
    --                 ],
    --                 "policyId": "required"
    --               },
    --               {
    --                 "policyRequirements": [
    --                   "VALID_TYPE"
    --                 ],
    --                 "policyId": "valid-type",
    --                 "params": {
    --                   "types": [
    --                     "string"
    --                   ]
    --                 }
    --               },
    --               {
    --                 "policyId": "valid-email-address-format",
    --                 "policyRequirements": [
    --                   "VALID_EMAIL_ADDRESS_FORMAT"
    --                 ]
    --               }
    --             ],
    --             "conditionalPolicies": null
    --           }
    --         },
    --         {
    --           "name": "failedPolicies",
    --           "value": [
    --           ]
    --         },
    --         {
    --           "name": "validateOnly",
    --           "value": false
    --         },
    --         {
    --           "name": "value",
    --           "value": ""
    --         }
    --       ],
    --       "input": [
    --         {
    --           "name": "IDToken4",
    --           "value": "{{myRandomUsername}}@selfservice.example.com"
    --         },
    --         {
    --           "name": "IDToken4validateOnly",
    --           "value": false
    --         }
    --       ],
    --       "_id": 3
    --     },
    --     {
    --       "type": "BooleanAttributeInputCallback",
    --       "output": [
    --         {
    --           "name": "name",
    --           "value": "preferences/marketing"
    --         },
    --         {
    --           "name": "prompt",
    --           "value": "Send me special offers and services"
    --         },
    --         {
    --           "name": "required",
    --           "value": true
    --         },
    --         {
    --           "name": "policies",
    --           "value": {}
    --         },
    --         {
    --           "name": "failedPolicies",
    --           "value": [
    --           ]
    --         },
    --         {
    --           "name": "validateOnly",
    --           "value": false
    --         },
    --         {
    --           "name": "value",
    --           "value": false
    --         }
    --       ],
    --       "input": [
    --         {
    --           "name": "IDToken5",
    --           "value": "{{value}}"
    --         },
    --         {
    --           "name": "IDToken5validateOnly",
    --           "value": false
    --         }
    --       ],
    --       "_id": 4
    --     },
    --     {
    --       "type": "BooleanAttributeInputCallback",
    --       "output": [
    --         {
    --           "name": "name",
    --           "value": "preferences/updates"
    --         },
    --         {
    --           "name": "prompt",
    --           "value": "Send me news and updates"
    --         },
    --         {
    --           "name": "required",
    --           "value": true
    --         },
    --         {
    --           "name": "policies",
    --           "value": {}
    --         },
    --         {
    --           "name": "failedPolicies",
    --           "value": [
    --           ]
    --         },
    --         {
    --           "name": "validateOnly",
    --           "value": false
    --         },
    --         {
    --           "name": "value",
    --           "value": false
    --         }
    --       ],
    --       "input": [
    --         {
    --           "name": "IDToken6",
    --           "value": "{{value}}"
    --         },
    --         {
    --           "name": "IDToken6validateOnly",
    --           "value": false
    --         }
    --       ],
    --       "_id": 5
    --     },
    --     {
    --       "type": "ValidatedCreatePasswordCallback",
    --       "output": [
    --         {
    --           "name": "echoOn",
    --           "value": false
    --         },
    --         {
    --           "name": "policies",
    --           "value": {
    --             "policyRequirements": [
    --               "REQUIRED",
    --               "MIN_LENGTH",
    --               "VALID_TYPE",
    --               "AT_LEAST_X_CAPITAL_LETTERS",
    --               "AT_LEAST_X_NUMBERS",
    --               "CANNOT_CONTAIN_OTHERS"
    --             ],
    --             "fallbackPolicies": null,
    --             "name": "password",
    --             "policies": [
    --               {
    --                 "policyRequirements": [
    --                   "REQUIRED"
    --                 ],
    --                 "policyId": "not-empty"
    --               },
    --               {
    --                 "policyRequirements": [
    --                   "MIN_LENGTH"
    --                 ],
    --                 "policyId": "minimum-length",
    --                 "params": {
    --                   "minLength": 8
    --                 }
    --               },
    --               {
    --                 "policyRequirements": [
    --                   "VALID_TYPE"
    --                 ],
    --                 "policyId": "valid-type",
    --                 "params": {
    --                   "types": [
    --                     "string"
    --                   ]
    --                 }
    --               },
    --               {
    --                 "policyId": "at-least-X-capitals",
    --                 "params": {
    --                   "numCaps": 1
    --                 },
    --                 "policyRequirements": [
    --                   "AT_LEAST_X_CAPITAL_LETTERS"
    --                 ]
    --               },
    --               {
    --                 "policyId": "at-least-X-numbers",
    --                 "params": {
    --                   "numNums": 1
    --                 },
    --                 "policyRequirements": [
    --                   "AT_LEAST_X_NUMBERS"
    --                 ]
    --               },
    --               {
    --                 "policyId": "cannot-contain-others",
    --                 "params": {
    --                   "disallowedFields": [
    --                     "userName",
    --                     "givenName",
    --                     "sn"
    --                   ]
    --                 },
    --                 "policyRequirements": [
    --                   "CANNOT_CONTAIN_OTHERS"
    --                 ]
    --               }
    --             ],
    --             "conditionalPolicies": null
    --           }
    --         },
    --         {
    --           "name": "failedPolicies",
    --           "value": [
    --           ]
    --         },
    --         {
    --           "name": "validateOnly",
    --           "value": false
    --         },
    --         {
    --           "name": "prompt",
    --           "value": "Password"
    --         }
    --       ],
    --       "input": [
    --         {
    --           "name": "IDToken7",
    --           "value": "Password1!"
    --         },
    --         {
    --           "name": "IDToken7validateOnly",
    --           "value": false
    --         }
    --       ],
    --       "_id": 6
    --     },
    --     {
    --       "type": "KbaCreateCallback",
    --       "output": [
    --         {
    --           "name": "prompt",
    --           "value": "Select a security question"
    --         },
    --         {
    --           "name": "predefinedQuestions",
    --           "value": [
    --             "What's your favorite color?"
    --           ]
    --         }
    --       ],
    --       "input": [
    --         {
    --           "name": "IDToken8question",
    --           "value": "What's your favorite color?"
    --         },
    --         {
    --           "name": "IDToken8answer",
    --           "value": "Cornflower Blue"
    --         }
    --       ],
    --       "_id": 7
    --     },
    --     {
    --       "type": "TermsAndConditionsCallback",
    --       "output": [
    --         {
    --           "name": "version",
    --           "value": "0.0"
    --         },
    --         {
    --           "name": "terms",
    --           "value": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
    --         },
    --         {
    --           "name": "createDate",
    --           "value": "2019-10-28T04:20:11.320Z"
    --         }
    --       ],
    --       "input": [
    --         {
    --           "name": "IDToken9",
    --           "value": true
    --         }
    --       ],
    --       "_id": 8
    --     }
    --   ],
    --   "header": "Sign Up",
    --   "description": "Signing up is fast and easy.<br>Already have an account? <a href='#/service/Login'>Sign In</a>"
    -- }

    DECLARE @json int
    -- Use "Chilkat_9_5_0.JsonObject" for versions of Chilkat < 10.0.0
    EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @json OUT

    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'authId', '{{authId}}'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[0].type', 'ValidatedCreateUsernameCallback'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[0].output[0].name', 'policies'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[0].output[0].value.policyRequirements[0]', 'REQUIRED'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[0].output[0].value.policyRequirements[1]', 'MIN_LENGTH'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[0].output[0].value.policyRequirements[2]', 'VALID_TYPE'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[0].output[0].value.policyRequirements[3]', 'VALID_USERNAME'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[0].output[0].value.policyRequirements[4]', 'CANNOT_CONTAIN_CHARACTERS'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[0].output[0].value.policyRequirements[5]', 'MAX_LENGTH'
    EXEC sp_OAMethod @json, 'UpdateNull', @success OUT, 'callbacks[0].output[0].value.fallbackPolicies'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[0].output[0].value.name', 'userName'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[0].output[0].value.policies[0].policyRequirements[0]', 'REQUIRED'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[0].output[0].value.policies[0].policyId', 'required'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[0].output[0].value.policies[1].policyRequirements[0]', 'REQUIRED'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[0].output[0].value.policies[1].policyId', 'not-empty'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[0].output[0].value.policies[2].policyRequirements[0]', 'MIN_LENGTH'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[0].output[0].value.policies[2].policyId', 'minimum-length'
    EXEC sp_OAMethod @json, 'UpdateInt', @success OUT, 'callbacks[0].output[0].value.policies[2].params.minLength', 1
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[0].output[0].value.policies[3].policyRequirements[0]', 'VALID_TYPE'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[0].output[0].value.policies[3].policyId', 'valid-type'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[0].output[0].value.policies[3].params.types[0]', 'string'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[0].output[0].value.policies[4].policyId', 'valid-username'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[0].output[0].value.policies[4].policyRequirements[0]', 'VALID_USERNAME'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[0].output[0].value.policies[5].policyId', 'cannot-contain-characters'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[0].output[0].value.policies[5].params.forbiddenChars[0]', '/'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[0].output[0].value.policies[5].policyRequirements[0]', 'CANNOT_CONTAIN_CHARACTERS'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[0].output[0].value.policies[6].policyId', 'minimum-length'
    EXEC sp_OAMethod @json, 'UpdateInt', @success OUT, 'callbacks[0].output[0].value.policies[6].params.minLength', 1
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[0].output[0].value.policies[6].policyRequirements[0]', 'MIN_LENGTH'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[0].output[0].value.policies[7].policyId', 'maximum-length'
    EXEC sp_OAMethod @json, 'UpdateInt', @success OUT, 'callbacks[0].output[0].value.policies[7].params.maxLength', 255
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[0].output[0].value.policies[7].policyRequirements[0]', 'MAX_LENGTH'
    EXEC sp_OAMethod @json, 'UpdateNull', @success OUT, 'callbacks[0].output[0].value.conditionalPolicies'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[0].output[1].name', 'failedPolicies'
    EXEC sp_OAMethod @json, 'UpdateNewArray', @success OUT, 'callbacks[0].output[1].value'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[0].output[2].name', 'validateOnly'
    EXEC sp_OAMethod @json, 'UpdateBool', @success OUT, 'callbacks[0].output[2].value', 0
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[0].output[3].name', 'prompt'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[0].output[3].value', 'Username'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[0].input[0].name', 'IDToken1'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[0].input[0].value', '{{myRandomUsername}}'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[0].input[1].name', 'IDToken1validateOnly'
    EXEC sp_OAMethod @json, 'UpdateBool', @success OUT, 'callbacks[0].input[1].value', 0
    EXEC sp_OAMethod @json, 'UpdateInt', @success OUT, 'callbacks[0]._id', 0
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[1].type', 'StringAttributeInputCallback'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[1].output[0].name', 'name'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[1].output[0].value', 'givenName'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[1].output[1].name', 'prompt'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[1].output[1].value', 'First Name'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[1].output[2].name', 'required'
    EXEC sp_OAMethod @json, 'UpdateBool', @success OUT, 'callbacks[1].output[2].value', 1
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[1].output[3].name', 'policies'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[1].output[3].value.policyRequirements[0]', 'REQUIRED'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[1].output[3].value.policyRequirements[1]', 'VALID_TYPE'
    EXEC sp_OAMethod @json, 'UpdateNull', @success OUT, 'callbacks[1].output[3].value.fallbackPolicies'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[1].output[3].value.name', 'givenName'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[1].output[3].value.policies[0].policyRequirements[0]', 'REQUIRED'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[1].output[3].value.policies[0].policyId', 'required'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[1].output[3].value.policies[1].policyRequirements[0]', 'VALID_TYPE'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[1].output[3].value.policies[1].policyId', 'valid-type'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[1].output[3].value.policies[1].params.types[0]', 'string'
    EXEC sp_OAMethod @json, 'UpdateNull', @success OUT, 'callbacks[1].output[3].value.conditionalPolicies'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[1].output[4].name', 'failedPolicies'
    EXEC sp_OAMethod @json, 'UpdateNewArray', @success OUT, 'callbacks[1].output[4].value'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[1].output[5].name', 'validateOnly'
    EXEC sp_OAMethod @json, 'UpdateBool', @success OUT, 'callbacks[1].output[5].value', 0
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[1].output[6].name', 'value'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[1].output[6].value', ''
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[1].input[0].name', 'IDToken2'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[1].input[0].value', 'Postman'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[1].input[1].name', 'IDToken2validateOnly'
    EXEC sp_OAMethod @json, 'UpdateBool', @success OUT, 'callbacks[1].input[1].value', 0
    EXEC sp_OAMethod @json, 'UpdateInt', @success OUT, 'callbacks[1]._id', 1
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[2].type', 'StringAttributeInputCallback'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[2].output[0].name', 'name'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[2].output[0].value', 'sn'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[2].output[1].name', 'prompt'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[2].output[1].value', 'Last Name'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[2].output[2].name', 'required'
    EXEC sp_OAMethod @json, 'UpdateBool', @success OUT, 'callbacks[2].output[2].value', 1
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[2].output[3].name', 'policies'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[2].output[3].value.policyRequirements[0]', 'REQUIRED'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[2].output[3].value.policyRequirements[1]', 'VALID_TYPE'
    EXEC sp_OAMethod @json, 'UpdateNull', @success OUT, 'callbacks[2].output[3].value.fallbackPolicies'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[2].output[3].value.name', 'sn'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[2].output[3].value.policies[0].policyRequirements[0]', 'REQUIRED'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[2].output[3].value.policies[0].policyId', 'required'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[2].output[3].value.policies[1].policyRequirements[0]', 'VALID_TYPE'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[2].output[3].value.policies[1].policyId', 'valid-type'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[2].output[3].value.policies[1].params.types[0]', 'string'
    EXEC sp_OAMethod @json, 'UpdateNull', @success OUT, 'callbacks[2].output[3].value.conditionalPolicies'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[2].output[4].name', 'failedPolicies'
    EXEC sp_OAMethod @json, 'UpdateNewArray', @success OUT, 'callbacks[2].output[4].value'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[2].output[5].name', 'validateOnly'
    EXEC sp_OAMethod @json, 'UpdateBool', @success OUT, 'callbacks[2].output[5].value', 0
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[2].output[6].name', 'value'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[2].output[6].value', ''
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[2].input[0].name', 'IDToken3'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[2].input[0].value', 'Self-Service-User'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[2].input[1].name', 'IDToken3validateOnly'
    EXEC sp_OAMethod @json, 'UpdateBool', @success OUT, 'callbacks[2].input[1].value', 0
    EXEC sp_OAMethod @json, 'UpdateInt', @success OUT, 'callbacks[2]._id', 2
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[3].type', 'StringAttributeInputCallback'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[3].output[0].name', 'name'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[3].output[0].value', 'mail'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[3].output[1].name', 'prompt'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[3].output[1].value', 'Email Address'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[3].output[2].name', 'required'
    EXEC sp_OAMethod @json, 'UpdateBool', @success OUT, 'callbacks[3].output[2].value', 1
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[3].output[3].name', 'policies'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[3].output[3].value.policyRequirements[0]', 'REQUIRED'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[3].output[3].value.policyRequirements[1]', 'VALID_TYPE'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[3].output[3].value.policyRequirements[2]', 'VALID_EMAIL_ADDRESS_FORMAT'
    EXEC sp_OAMethod @json, 'UpdateNull', @success OUT, 'callbacks[3].output[3].value.fallbackPolicies'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[3].output[3].value.name', 'mail'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[3].output[3].value.policies[0].policyRequirements[0]', 'REQUIRED'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[3].output[3].value.policies[0].policyId', 'required'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[3].output[3].value.policies[1].policyRequirements[0]', 'VALID_TYPE'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[3].output[3].value.policies[1].policyId', 'valid-type'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[3].output[3].value.policies[1].params.types[0]', 'string'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[3].output[3].value.policies[2].policyId', 'valid-email-address-format'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[3].output[3].value.policies[2].policyRequirements[0]', 'VALID_EMAIL_ADDRESS_FORMAT'
    EXEC sp_OAMethod @json, 'UpdateNull', @success OUT, 'callbacks[3].output[3].value.conditionalPolicies'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[3].output[4].name', 'failedPolicies'
    EXEC sp_OAMethod @json, 'UpdateNewArray', @success OUT, 'callbacks[3].output[4].value'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[3].output[5].name', 'validateOnly'
    EXEC sp_OAMethod @json, 'UpdateBool', @success OUT, 'callbacks[3].output[5].value', 0
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[3].output[6].name', 'value'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[3].output[6].value', ''
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[3].input[0].name', 'IDToken4'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[3].input[0].value', '{{myRandomUsername}}@selfservice.example.com'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[3].input[1].name', 'IDToken4validateOnly'
    EXEC sp_OAMethod @json, 'UpdateBool', @success OUT, 'callbacks[3].input[1].value', 0
    EXEC sp_OAMethod @json, 'UpdateInt', @success OUT, 'callbacks[3]._id', 3
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[4].type', 'BooleanAttributeInputCallback'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[4].output[0].name', 'name'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[4].output[0].value', 'preferences/marketing'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[4].output[1].name', 'prompt'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[4].output[1].value', 'Send me special offers and services'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[4].output[2].name', 'required'
    EXEC sp_OAMethod @json, 'UpdateBool', @success OUT, 'callbacks[4].output[2].value', 1
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[4].output[3].name', 'policies'
    EXEC sp_OAMethod @json, 'UpdateNewObject', @success OUT, 'callbacks[4].output[3].value'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[4].output[4].name', 'failedPolicies'
    EXEC sp_OAMethod @json, 'UpdateNewArray', @success OUT, 'callbacks[4].output[4].value'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[4].output[5].name', 'validateOnly'
    EXEC sp_OAMethod @json, 'UpdateBool', @success OUT, 'callbacks[4].output[5].value', 0
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[4].output[6].name', 'value'
    EXEC sp_OAMethod @json, 'UpdateBool', @success OUT, 'callbacks[4].output[6].value', 0
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[4].input[0].name', 'IDToken5'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[4].input[0].value', '{{value}}'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[4].input[1].name', 'IDToken5validateOnly'
    EXEC sp_OAMethod @json, 'UpdateBool', @success OUT, 'callbacks[4].input[1].value', 0
    EXEC sp_OAMethod @json, 'UpdateInt', @success OUT, 'callbacks[4]._id', 4
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[5].type', 'BooleanAttributeInputCallback'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[5].output[0].name', 'name'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[5].output[0].value', 'preferences/updates'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[5].output[1].name', 'prompt'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[5].output[1].value', 'Send me news and updates'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[5].output[2].name', 'required'
    EXEC sp_OAMethod @json, 'UpdateBool', @success OUT, 'callbacks[5].output[2].value', 1
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[5].output[3].name', 'policies'
    EXEC sp_OAMethod @json, 'UpdateNewObject', @success OUT, 'callbacks[5].output[3].value'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[5].output[4].name', 'failedPolicies'
    EXEC sp_OAMethod @json, 'UpdateNewArray', @success OUT, 'callbacks[5].output[4].value'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[5].output[5].name', 'validateOnly'
    EXEC sp_OAMethod @json, 'UpdateBool', @success OUT, 'callbacks[5].output[5].value', 0
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[5].output[6].name', 'value'
    EXEC sp_OAMethod @json, 'UpdateBool', @success OUT, 'callbacks[5].output[6].value', 0
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[5].input[0].name', 'IDToken6'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[5].input[0].value', '{{value}}'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[5].input[1].name', 'IDToken6validateOnly'
    EXEC sp_OAMethod @json, 'UpdateBool', @success OUT, 'callbacks[5].input[1].value', 0
    EXEC sp_OAMethod @json, 'UpdateInt', @success OUT, 'callbacks[5]._id', 5
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[6].type', 'ValidatedCreatePasswordCallback'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[6].output[0].name', 'echoOn'
    EXEC sp_OAMethod @json, 'UpdateBool', @success OUT, 'callbacks[6].output[0].value', 0
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[6].output[1].name', 'policies'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[6].output[1].value.policyRequirements[0]', 'REQUIRED'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[6].output[1].value.policyRequirements[1]', 'MIN_LENGTH'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[6].output[1].value.policyRequirements[2]', 'VALID_TYPE'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[6].output[1].value.policyRequirements[3]', 'AT_LEAST_X_CAPITAL_LETTERS'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[6].output[1].value.policyRequirements[4]', 'AT_LEAST_X_NUMBERS'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[6].output[1].value.policyRequirements[5]', 'CANNOT_CONTAIN_OTHERS'
    EXEC sp_OAMethod @json, 'UpdateNull', @success OUT, 'callbacks[6].output[1].value.fallbackPolicies'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[6].output[1].value.name', 'password'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[6].output[1].value.policies[0].policyRequirements[0]', 'REQUIRED'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[6].output[1].value.policies[0].policyId', 'not-empty'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[6].output[1].value.policies[1].policyRequirements[0]', 'MIN_LENGTH'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[6].output[1].value.policies[1].policyId', 'minimum-length'
    EXEC sp_OAMethod @json, 'UpdateInt', @success OUT, 'callbacks[6].output[1].value.policies[1].params.minLength', 8
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[6].output[1].value.policies[2].policyRequirements[0]', 'VALID_TYPE'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[6].output[1].value.policies[2].policyId', 'valid-type'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[6].output[1].value.policies[2].params.types[0]', 'string'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[6].output[1].value.policies[3].policyId', 'at-least-X-capitals'
    EXEC sp_OAMethod @json, 'UpdateInt', @success OUT, 'callbacks[6].output[1].value.policies[3].params.numCaps', 1
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[6].output[1].value.policies[3].policyRequirements[0]', 'AT_LEAST_X_CAPITAL_LETTERS'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[6].output[1].value.policies[4].policyId', 'at-least-X-numbers'
    EXEC sp_OAMethod @json, 'UpdateInt', @success OUT, 'callbacks[6].output[1].value.policies[4].params.numNums', 1
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[6].output[1].value.policies[4].policyRequirements[0]', 'AT_LEAST_X_NUMBERS'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[6].output[1].value.policies[5].policyId', 'cannot-contain-others'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[6].output[1].value.policies[5].params.disallowedFields[0]', 'userName'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[6].output[1].value.policies[5].params.disallowedFields[1]', 'givenName'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[6].output[1].value.policies[5].params.disallowedFields[2]', 'sn'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[6].output[1].value.policies[5].policyRequirements[0]', 'CANNOT_CONTAIN_OTHERS'
    EXEC sp_OAMethod @json, 'UpdateNull', @success OUT, 'callbacks[6].output[1].value.conditionalPolicies'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[6].output[2].name', 'failedPolicies'
    EXEC sp_OAMethod @json, 'UpdateNewArray', @success OUT, 'callbacks[6].output[2].value'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[6].output[3].name', 'validateOnly'
    EXEC sp_OAMethod @json, 'UpdateBool', @success OUT, 'callbacks[6].output[3].value', 0
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[6].output[4].name', 'prompt'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[6].output[4].value', 'Password'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[6].input[0].name', 'IDToken7'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[6].input[0].value', 'Password1!'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[6].input[1].name', 'IDToken7validateOnly'
    EXEC sp_OAMethod @json, 'UpdateBool', @success OUT, 'callbacks[6].input[1].value', 0
    EXEC sp_OAMethod @json, 'UpdateInt', @success OUT, 'callbacks[6]._id', 6
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[7].type', 'KbaCreateCallback'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[7].output[0].name', 'prompt'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[7].output[0].value', 'Select a security question'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[7].output[1].name', 'predefinedQuestions'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[7].output[1].value[0]', 'What''s your favorite color?'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[7].input[0].name', 'IDToken8question'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[7].input[0].value', 'What''s your favorite color?'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[7].input[1].name', 'IDToken8answer'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[7].input[1].value', 'Cornflower Blue'
    EXEC sp_OAMethod @json, 'UpdateInt', @success OUT, 'callbacks[7]._id', 7
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[8].type', 'TermsAndConditionsCallback'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[8].output[0].name', 'version'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[8].output[0].value', '0.0'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[8].output[1].name', 'terms'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[8].output[1].value', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[8].output[2].name', 'createDate'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[8].output[2].value', '2019-10-28T04:20:11.320Z'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'callbacks[8].input[0].name', 'IDToken9'
    EXEC sp_OAMethod @json, 'UpdateBool', @success OUT, 'callbacks[8].input[0].value', 1
    EXEC sp_OAMethod @json, 'UpdateInt', @success OUT, 'callbacks[8]._id', 8
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'header', 'Sign Up'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'description', 'Signing up is fast and easy.<br>Already have an account? <a href=''#/service/Login''>Sign In</a>'

    EXEC sp_OAMethod @http, 'SetRequestHeader', NULL, 'Content-Type', 'application/json'
    EXEC sp_OAMethod @http, 'SetRequestHeader', NULL, 'Accept-API-Version', 'resource=2.0, protocol=1.0'

    DECLARE @resp int
    EXEC sp_OAMethod @http, 'PostJson3', @resp OUT, 'https://<tenant-name>.forgeblocks.com/am/json/realms/root/realms/alpha/authenticate?authIndexType=service&authIndexValue=Registration', 'application/json', @json
    EXEC sp_OAGetProperty @http, 'LastMethodSuccess', @iTmp0 OUT
    IF @iTmp0 = 0
      BEGIN
        EXEC sp_OAGetProperty @http, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @http
        EXEC @hr = sp_OADestroy @json
        RETURN
      END

    DECLARE @sbResponseBody int
    -- Use "Chilkat_9_5_0.StringBuilder" for versions of Chilkat < 10.0.0
    EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sbResponseBody OUT

    EXEC sp_OAMethod @resp, 'GetBodySb', @success OUT, @sbResponseBody

    DECLARE @jResp int
    -- Use "Chilkat_9_5_0.JsonObject" for versions of Chilkat < 10.0.0
    EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @jResp OUT

    EXEC sp_OAMethod @jResp, 'LoadSb', @success OUT, @sbResponseBody
    EXEC sp_OASetProperty @jResp, 'EmitCompact', 0


    PRINT 'Response Body:'
    EXEC sp_OAMethod @jResp, 'Emit', @sTmp0 OUT
    PRINT @sTmp0

    DECLARE @respStatusCode int
    EXEC sp_OAGetProperty @resp, 'StatusCode', @respStatusCode OUT

    PRINT 'Response Status Code = ' + @respStatusCode
    IF @respStatusCode >= 400
      BEGIN

        PRINT 'Response Header:'
        EXEC sp_OAGetProperty @resp, 'Header', @sTmp0 OUT
        PRINT @sTmp0

        PRINT 'Failed.'
        EXEC @hr = sp_OADestroy @resp

        EXEC @hr = sp_OADestroy @http
        EXEC @hr = sp_OADestroy @json
        EXEC @hr = sp_OADestroy @sbResponseBody
        EXEC @hr = sp_OADestroy @jResp
        RETURN
      END
    EXEC @hr = sp_OADestroy @resp

    -- Sample JSON response:
    -- (Sample code for parsing the JSON response is shown below)

    -- {
    --   "tokenId": "N60dPV99pcqVVI.*AAJTSQACMDEAAANDVFMAAlMxAAA.*",
    --   "successUrl": "/openam/console",
    --   "realm": "/"
    -- }

    -- Sample code for parsing the JSON response...
    -- Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code

    DECLARE @tokenId nvarchar(4000)
    EXEC sp_OAMethod @jResp, 'StringOf', @tokenId OUT, 'tokenId'
    DECLARE @successUrl nvarchar(4000)
    EXEC sp_OAMethod @jResp, 'StringOf', @successUrl OUT, 'successUrl'
    DECLARE @realm nvarchar(4000)
    EXEC sp_OAMethod @jResp, 'StringOf', @realm OUT, 'realm'

    EXEC @hr = sp_OADestroy @http
    EXEC @hr = sp_OADestroy @json
    EXEC @hr = sp_OADestroy @sbResponseBody
    EXEC @hr = sp_OADestroy @jResp


END
GO

Curl Command

curl -X POST
	-H "Content-Type: application/json"
	-H "Accept-API-Version: resource=2.0, protocol=1.0"
	-d '{
    "authId": "{{authId}}",
    "callbacks": [
        {
            "type": "ValidatedCreateUsernameCallback",
            "output": [
                {
                    "name": "policies",
                    "value": {
                        "policyRequirements": [
                            "REQUIRED",
                            "MIN_LENGTH",
                            "VALID_TYPE",
                            "VALID_USERNAME",
                            "CANNOT_CONTAIN_CHARACTERS",
                            "MAX_LENGTH"
                        ],
                        "fallbackPolicies": null,
                        "name": "userName",
                        "policies": [
                            {
                                "policyRequirements": [
                                    "REQUIRED"
                                ],
                                "policyId": "required"
                            },
                            {
                                "policyRequirements": [
                                    "REQUIRED"
                                ],
                                "policyId": "not-empty"
                            },
                            {
                                "policyRequirements": [
                                    "MIN_LENGTH"
                                ],
                                "policyId": "minimum-length",
                                "params": {
                                    "minLength": 1
                                }
                            },
                            {
                                "policyRequirements": [
                                    "VALID_TYPE"
                                ],
                                "policyId": "valid-type",
                                "params": {
                                    "types": [
                                        "string"
                                    ]
                                }
                            },
                            {
                                "policyId": "valid-username",
                                "policyRequirements": [
                                    "VALID_USERNAME"
                                ]
                            },
                            {
                                "policyId": "cannot-contain-characters",
                                "params": {
                                    "forbiddenChars": [
                                        "/"
                                    ]
                                },
                                "policyRequirements": [
                                    "CANNOT_CONTAIN_CHARACTERS"
                                ]
                            },
                            {
                                "policyId": "minimum-length",
                                "params": {
                                    "minLength": 1
                                },
                                "policyRequirements": [
                                    "MIN_LENGTH"
                                ]
                            },
                            {
                                "policyId": "maximum-length",
                                "params": {
                                    "maxLength": 255
                                },
                                "policyRequirements": [
                                    "MAX_LENGTH"
                                ]
                            }
                        ],
                        "conditionalPolicies": null
                    }
                },
                {
                    "name": "failedPolicies",
                    "value": []
                },
                {
                    "name": "validateOnly",
                    "value": false
                },
                {
                    "name": "prompt",
                    "value": "Username"
                }
            ],
            "input": [
                {
                    "name": "IDToken1",
                    "value": "{{myRandomUsername}}"
                },
                {
                    "name": "IDToken1validateOnly",
                    "value": false
                }
            ],
            "_id": 0
        },
        {
            "type": "StringAttributeInputCallback",
            "output": [
                {
                    "name": "name",
                    "value": "givenName"
                },
                {
                    "name": "prompt",
                    "value": "First Name"
                },
                {
                    "name": "required",
                    "value": true
                },
                {
                    "name": "policies",
                    "value": {
                        "policyRequirements": [
                            "REQUIRED",
                            "VALID_TYPE"
                        ],
                        "fallbackPolicies": null,
                        "name": "givenName",
                        "policies": [
                            {
                                "policyRequirements": [
                                    "REQUIRED"
                                ],
                                "policyId": "required"
                            },
                            {
                                "policyRequirements": [
                                    "VALID_TYPE"
                                ],
                                "policyId": "valid-type",
                                "params": {
                                    "types": [
                                        "string"
                                    ]
                                }
                            }
                        ],
                        "conditionalPolicies": null
                    }
                },
                {
                    "name": "failedPolicies",
                    "value": []
                },
                {
                    "name": "validateOnly",
                    "value": false
                },
                {
                    "name": "value",
                    "value": ""
                }
            ],
            "input": [
                {
                    "name": "IDToken2",
                    "value": "Postman"
                },
                {
                    "name": "IDToken2validateOnly",
                    "value": false
                }
            ],
            "_id": 1
        },
        {
            "type": "StringAttributeInputCallback",
            "output": [
                {
                    "name": "name",
                    "value": "sn"
                },
                {
                    "name": "prompt",
                    "value": "Last Name"
                },
                {
                    "name": "required",
                    "value": true
                },
                {
                    "name": "policies",
                    "value": {
                        "policyRequirements": [
                            "REQUIRED",
                            "VALID_TYPE"
                        ],
                        "fallbackPolicies": null,
                        "name": "sn",
                        "policies": [
                            {
                                "policyRequirements": [
                                    "REQUIRED"
                                ],
                                "policyId": "required"
                            },
                            {
                                "policyRequirements": [
                                    "VALID_TYPE"
                                ],
                                "policyId": "valid-type",
                                "params": {
                                    "types": [
                                        "string"
                                    ]
                                }
                            }
                        ],
                        "conditionalPolicies": null
                    }
                },
                {
                    "name": "failedPolicies",
                    "value": []
                },
                {
                    "name": "validateOnly",
                    "value": false
                },
                {
                    "name": "value",
                    "value": ""
                }
            ],
            "input": [
                {
                    "name": "IDToken3",
                    "value": "Self-Service-User"
                },
                {
                    "name": "IDToken3validateOnly",
                    "value": false
                }
            ],
            "_id": 2
        },
        {
            "type": "StringAttributeInputCallback",
            "output": [
                {
                    "name": "name",
                    "value": "mail"
                },
                {
                    "name": "prompt",
                    "value": "Email Address"
                },
                {
                    "name": "required",
                    "value": true
                },
                {
                    "name": "policies",
                    "value": {
                        "policyRequirements": [
                            "REQUIRED",
                            "VALID_TYPE",
                            "VALID_EMAIL_ADDRESS_FORMAT"
                        ],
                        "fallbackPolicies": null,
                        "name": "mail",
                        "policies": [
                            {
                                "policyRequirements": [
                                    "REQUIRED"
                                ],
                                "policyId": "required"
                            },
                            {
                                "policyRequirements": [
                                    "VALID_TYPE"
                                ],
                                "policyId": "valid-type",
                                "params": {
                                    "types": [
                                        "string"
                                    ]
                                }
                            },
                            {
                                "policyId": "valid-email-address-format",
                                "policyRequirements": [
                                    "VALID_EMAIL_ADDRESS_FORMAT"
                                ]
                            }
                        ],
                        "conditionalPolicies": null
                    }
                },
                {
                    "name": "failedPolicies",
                    "value": []
                },
                {
                    "name": "validateOnly",
                    "value": false
                },
                {
                    "name": "value",
                    "value": ""
                }
            ],
            "input": [
                {
                    "name": "IDToken4",
                    "value": "{{myRandomUsername}}@selfservice.example.com"
                },
                {
                    "name": "IDToken4validateOnly",
                    "value": false
                }
            ],
            "_id": 3
        },
        {
            "type": "BooleanAttributeInputCallback",
            "output": [
                {
                    "name": "name",
                    "value": "preferences/marketing"
                },
                {
                    "name": "prompt",
                    "value": "Send me special offers and services"
                },
                {
                    "name": "required",
                    "value": true
                },
                {
                    "name": "policies",
                    "value": {}
                },
                {
                    "name": "failedPolicies",
                    "value": []
                },
                {
                    "name": "validateOnly",
                    "value": false
                },
                {
                    "name": "value",
                    "value": false
                }
            ],
            "input": [
                {
                    "name": "IDToken5",
                    "value": {{$randomBoolean}}
                },
                {
                    "name": "IDToken5validateOnly",
                    "value": false
                }
            ],
            "_id": 4
        },
        {
            "type": "BooleanAttributeInputCallback",
            "output": [
                {
                    "name": "name",
                    "value": "preferences/updates"
                },
                {
                    "name": "prompt",
                    "value": "Send me news and updates"
                },
                {
                    "name": "required",
                    "value": true
                },
                {
                    "name": "policies",
                    "value": {}
                },
                {
                    "name": "failedPolicies",
                    "value": []
                },
                {
                    "name": "validateOnly",
                    "value": false
                },
                {
                    "name": "value",
                    "value": false
                }
            ],
            "input": [
                {
                    "name": "IDToken6",
                    "value": {{$randomBoolean}}
                },
                {
                    "name": "IDToken6validateOnly",
                    "value": false
                }
            ],
            "_id": 5
        },
        {
            "type": "ValidatedCreatePasswordCallback",
            "output": [
                {
                    "name": "echoOn",
                    "value": false
                },
                {
                    "name": "policies",
                    "value": {
                        "policyRequirements": [
                            "REQUIRED",
                            "MIN_LENGTH",
                            "VALID_TYPE",
                            "AT_LEAST_X_CAPITAL_LETTERS",
                            "AT_LEAST_X_NUMBERS",
                            "CANNOT_CONTAIN_OTHERS"
                        ],
                        "fallbackPolicies": null,
                        "name": "password",
                        "policies": [
                            {
                                "policyRequirements": [
                                    "REQUIRED"
                                ],
                                "policyId": "not-empty"
                            },
                            {
                                "policyRequirements": [
                                    "MIN_LENGTH"
                                ],
                                "policyId": "minimum-length",
                                "params": {
                                    "minLength": 8
                                }
                            },
                            {
                                "policyRequirements": [
                                    "VALID_TYPE"
                                ],
                                "policyId": "valid-type",
                                "params": {
                                    "types": [
                                        "string"
                                    ]
                                }
                            },
                            {
                                "policyId": "at-least-X-capitals",
                                "params": {
                                    "numCaps": 1
                                },
                                "policyRequirements": [
                                    "AT_LEAST_X_CAPITAL_LETTERS"
                                ]
                            },
                            {
                                "policyId": "at-least-X-numbers",
                                "params": {
                                    "numNums": 1
                                },
                                "policyRequirements": [
                                    "AT_LEAST_X_NUMBERS"
                                ]
                            },
                            {
                                "policyId": "cannot-contain-others",
                                "params": {
                                    "disallowedFields": [
                                        "userName",
                                        "givenName",
                                        "sn"
                                    ]
                                },
                                "policyRequirements": [
                                    "CANNOT_CONTAIN_OTHERS"
                                ]
                            }
                        ],
                        "conditionalPolicies": null
                    }
                },
                {
                    "name": "failedPolicies",
                    "value": []
                },
                {
                    "name": "validateOnly",
                    "value": false
                },
                {
                    "name": "prompt",
                    "value": "Password"
                }
            ],
            "input": [
                {
                    "name": "IDToken7",
                    "value": "Password1!"
                },
                {
                    "name": "IDToken7validateOnly",
                    "value": false
                }
            ],
            "_id": 6
        },
        {
            "type": "KbaCreateCallback",
            "output": [
                {
                    "name": "prompt",
                    "value": "Select a security question"
                },
                {
                    "name": "predefinedQuestions",
                    "value": [
                        "What\'s your favorite color?"
                    ]
                }
            ],
            "input": [
                {
                    "name": "IDToken8question",
                    "value": "What\'s your favorite color?"
                },
                {
                    "name": "IDToken8answer",
                    "value": "Cornflower Blue"
                }
            ],
            "_id": 7
        },
        {
            "type": "TermsAndConditionsCallback",
            "output": [
                {
                    "name": "version",
                    "value": "0.0"
                },
                {
                    "name": "terms",
                    "value": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
                },
                {
                    "name": "createDate",
                    "value": "2019-10-28T04:20:11.320Z"
                }
            ],
            "input": [
                {
                    "name": "IDToken9",
                    "value": true
                }
            ],
            "_id": 8
        }
    ],
    "header": "Sign Up",
    "description": "Signing up is fast and easy.<br>Already have an account? <a href=\'#/service/Login\'>Sign In</a>"
}'
https://<tenant-name>.forgeblocks.com/am/json/realms/root/realms/alpha/authenticate?authIndexType=service&authIndexValue=Registration

Postman Collection Item JSON

{
  "name": "Step 2: Handle \"Registration\" Journey Callback",
  "event": [
    {
      "listen": "test",
      "script": {
        "exec": [
          "const JSONResponse = JSON.parse(responseBody);",
          "",
          "// Did request return SSO Token?",
          "if(JSONResponse.tokenId && JSONResponse.tokenId != \"\")",
          "{",
          "",
          "  // Remove `authId` variable",
          "  pm.globals.unset(\"authId\");",
          "  ",
          "}",
          "",
          "// Tests",
          "",
          "pm.test(\"Status code is 200\", () => {",
          "  pm.expect(pm.response.code).to.eql(200);",
          "});",
          "",
          "pm.test(\"Response contains tokenId or authId\", function () {",
          "    pm.expect(JSONResponse).to.have.any.keys('tokenId', 'authId');",
          "});",
          ""
        ],
        "type": "text/javascript"
      }
    },
    {
      "listen": "prerequest",
      "script": {
        "exec": [
          "pm.variables.set(\"myRandomUsername\", pm.variables.replaceIn('{{$randomUserName}}'));"
        ],
        "type": "text/javascript"
      }
    }
  ],
  "protocolProfileBehavior": {
    "disableCookies": true
  },
  "request": {
    "method": "POST",
    "header": [
      {
        "key": "Content-Type",
        "value": "application/json",
        "description": "Specifies that the `/json/authenticate` endpoint uses JSON format for requests."
      },
      {
        "key": "Accept-API-Version",
        "value": "resource=2.0, protocol=1.0",
        "description": "Specifies the version of the `/json/authenticate` endpoint to use."
      }
    ],
    "body": {
      "mode": "raw",
      "raw": "{\n    \"authId\": \"{{authId}}\",\n    \"callbacks\": [\n        {\n            \"type\": \"ValidatedCreateUsernameCallback\",\n            \"output\": [\n                {\n                    \"name\": \"policies\",\n                    \"value\": {\n                        \"policyRequirements\": [\n                            \"REQUIRED\",\n                            \"MIN_LENGTH\",\n                            \"VALID_TYPE\",\n                            \"VALID_USERNAME\",\n                            \"CANNOT_CONTAIN_CHARACTERS\",\n                            \"MAX_LENGTH\"\n                        ],\n                        \"fallbackPolicies\": null,\n                        \"name\": \"userName\",\n                        \"policies\": [\n                            {\n                                \"policyRequirements\": [\n                                    \"REQUIRED\"\n                                ],\n                                \"policyId\": \"required\"\n                            },\n                            {\n                                \"policyRequirements\": [\n                                    \"REQUIRED\"\n                                ],\n                                \"policyId\": \"not-empty\"\n                            },\n                            {\n                                \"policyRequirements\": [\n                                    \"MIN_LENGTH\"\n                                ],\n                                \"policyId\": \"minimum-length\",\n                                \"params\": {\n                                    \"minLength\": 1\n                                }\n                            },\n                            {\n                                \"policyRequirements\": [\n                                    \"VALID_TYPE\"\n                                ],\n                                \"policyId\": \"valid-type\",\n                                \"params\": {\n                                    \"types\": [\n                                        \"string\"\n                                    ]\n                                }\n                            },\n                            {\n                                \"policyId\": \"valid-username\",\n                                \"policyRequirements\": [\n                                    \"VALID_USERNAME\"\n                                ]\n                            },\n                            {\n                                \"policyId\": \"cannot-contain-characters\",\n                                \"params\": {\n                                    \"forbiddenChars\": [\n                                        \"/\"\n                                    ]\n                                },\n                                \"policyRequirements\": [\n                                    \"CANNOT_CONTAIN_CHARACTERS\"\n                                ]\n                            },\n                            {\n                                \"policyId\": \"minimum-length\",\n                                \"params\": {\n                                    \"minLength\": 1\n                                },\n                                \"policyRequirements\": [\n                                    \"MIN_LENGTH\"\n                                ]\n                            },\n                            {\n                                \"policyId\": \"maximum-length\",\n                                \"params\": {\n                                    \"maxLength\": 255\n                                },\n                                \"policyRequirements\": [\n                                    \"MAX_LENGTH\"\n                                ]\n                            }\n                        ],\n                        \"conditionalPolicies\": null\n                    }\n                },\n                {\n                    \"name\": \"failedPolicies\",\n                    \"value\": []\n                },\n                {\n                    \"name\": \"validateOnly\",\n                    \"value\": false\n                },\n                {\n                    \"name\": \"prompt\",\n                    \"value\": \"Username\"\n                }\n            ],\n            \"input\": [\n                {\n                    \"name\": \"IDToken1\",\n                    \"value\": \"{{myRandomUsername}}\"\n                },\n                {\n                    \"name\": \"IDToken1validateOnly\",\n                    \"value\": false\n                }\n            ],\n            \"_id\": 0\n        },\n        {\n            \"type\": \"StringAttributeInputCallback\",\n            \"output\": [\n                {\n                    \"name\": \"name\",\n                    \"value\": \"givenName\"\n                },\n                {\n                    \"name\": \"prompt\",\n                    \"value\": \"First Name\"\n                },\n                {\n                    \"name\": \"required\",\n                    \"value\": true\n                },\n                {\n                    \"name\": \"policies\",\n                    \"value\": {\n                        \"policyRequirements\": [\n                            \"REQUIRED\",\n                            \"VALID_TYPE\"\n                        ],\n                        \"fallbackPolicies\": null,\n                        \"name\": \"givenName\",\n                        \"policies\": [\n                            {\n                                \"policyRequirements\": [\n                                    \"REQUIRED\"\n                                ],\n                                \"policyId\": \"required\"\n                            },\n                            {\n                                \"policyRequirements\": [\n                                    \"VALID_TYPE\"\n                                ],\n                                \"policyId\": \"valid-type\",\n                                \"params\": {\n                                    \"types\": [\n                                        \"string\"\n                                    ]\n                                }\n                            }\n                        ],\n                        \"conditionalPolicies\": null\n                    }\n                },\n                {\n                    \"name\": \"failedPolicies\",\n                    \"value\": []\n                },\n                {\n                    \"name\": \"validateOnly\",\n                    \"value\": false\n                },\n                {\n                    \"name\": \"value\",\n                    \"value\": \"\"\n                }\n            ],\n            \"input\": [\n                {\n                    \"name\": \"IDToken2\",\n                    \"value\": \"Postman\"\n                },\n                {\n                    \"name\": \"IDToken2validateOnly\",\n                    \"value\": false\n                }\n            ],\n            \"_id\": 1\n        },\n        {\n            \"type\": \"StringAttributeInputCallback\",\n            \"output\": [\n                {\n                    \"name\": \"name\",\n                    \"value\": \"sn\"\n                },\n                {\n                    \"name\": \"prompt\",\n                    \"value\": \"Last Name\"\n                },\n                {\n                    \"name\": \"required\",\n                    \"value\": true\n                },\n                {\n                    \"name\": \"policies\",\n                    \"value\": {\n                        \"policyRequirements\": [\n                            \"REQUIRED\",\n                            \"VALID_TYPE\"\n                        ],\n                        \"fallbackPolicies\": null,\n                        \"name\": \"sn\",\n                        \"policies\": [\n                            {\n                                \"policyRequirements\": [\n                                    \"REQUIRED\"\n                                ],\n                                \"policyId\": \"required\"\n                            },\n                            {\n                                \"policyRequirements\": [\n                                    \"VALID_TYPE\"\n                                ],\n                                \"policyId\": \"valid-type\",\n                                \"params\": {\n                                    \"types\": [\n                                        \"string\"\n                                    ]\n                                }\n                            }\n                        ],\n                        \"conditionalPolicies\": null\n                    }\n                },\n                {\n                    \"name\": \"failedPolicies\",\n                    \"value\": []\n                },\n                {\n                    \"name\": \"validateOnly\",\n                    \"value\": false\n                },\n                {\n                    \"name\": \"value\",\n                    \"value\": \"\"\n                }\n            ],\n            \"input\": [\n                {\n                    \"name\": \"IDToken3\",\n                    \"value\": \"Self-Service-User\"\n                },\n                {\n                    \"name\": \"IDToken3validateOnly\",\n                    \"value\": false\n                }\n            ],\n            \"_id\": 2\n        },\n        {\n            \"type\": \"StringAttributeInputCallback\",\n            \"output\": [\n                {\n                    \"name\": \"name\",\n                    \"value\": \"mail\"\n                },\n                {\n                    \"name\": \"prompt\",\n                    \"value\": \"Email Address\"\n                },\n                {\n                    \"name\": \"required\",\n                    \"value\": true\n                },\n                {\n                    \"name\": \"policies\",\n                    \"value\": {\n                        \"policyRequirements\": [\n                            \"REQUIRED\",\n                            \"VALID_TYPE\",\n                            \"VALID_EMAIL_ADDRESS_FORMAT\"\n                        ],\n                        \"fallbackPolicies\": null,\n                        \"name\": \"mail\",\n                        \"policies\": [\n                            {\n                                \"policyRequirements\": [\n                                    \"REQUIRED\"\n                                ],\n                                \"policyId\": \"required\"\n                            },\n                            {\n                                \"policyRequirements\": [\n                                    \"VALID_TYPE\"\n                                ],\n                                \"policyId\": \"valid-type\",\n                                \"params\": {\n                                    \"types\": [\n                                        \"string\"\n                                    ]\n                                }\n                            },\n                            {\n                                \"policyId\": \"valid-email-address-format\",\n                                \"policyRequirements\": [\n                                    \"VALID_EMAIL_ADDRESS_FORMAT\"\n                                ]\n                            }\n                        ],\n                        \"conditionalPolicies\": null\n                    }\n                },\n                {\n                    \"name\": \"failedPolicies\",\n                    \"value\": []\n                },\n                {\n                    \"name\": \"validateOnly\",\n                    \"value\": false\n                },\n                {\n                    \"name\": \"value\",\n                    \"value\": \"\"\n                }\n            ],\n            \"input\": [\n                {\n                    \"name\": \"IDToken4\",\n                    \"value\": \"{{myRandomUsername}}@selfservice.example.com\"\n                },\n                {\n                    \"name\": \"IDToken4validateOnly\",\n                    \"value\": false\n                }\n            ],\n            \"_id\": 3\n        },\n        {\n            \"type\": \"BooleanAttributeInputCallback\",\n            \"output\": [\n                {\n                    \"name\": \"name\",\n                    \"value\": \"preferences/marketing\"\n                },\n                {\n                    \"name\": \"prompt\",\n                    \"value\": \"Send me special offers and services\"\n                },\n                {\n                    \"name\": \"required\",\n                    \"value\": true\n                },\n                {\n                    \"name\": \"policies\",\n                    \"value\": {}\n                },\n                {\n                    \"name\": \"failedPolicies\",\n                    \"value\": []\n                },\n                {\n                    \"name\": \"validateOnly\",\n                    \"value\": false\n                },\n                {\n                    \"name\": \"value\",\n                    \"value\": false\n                }\n            ],\n            \"input\": [\n                {\n                    \"name\": \"IDToken5\",\n                    \"value\": {{$randomBoolean}}\n                },\n                {\n                    \"name\": \"IDToken5validateOnly\",\n                    \"value\": false\n                }\n            ],\n            \"_id\": 4\n        },\n        {\n            \"type\": \"BooleanAttributeInputCallback\",\n            \"output\": [\n                {\n                    \"name\": \"name\",\n                    \"value\": \"preferences/updates\"\n                },\n                {\n                    \"name\": \"prompt\",\n                    \"value\": \"Send me news and updates\"\n                },\n                {\n                    \"name\": \"required\",\n                    \"value\": true\n                },\n                {\n                    \"name\": \"policies\",\n                    \"value\": {}\n                },\n                {\n                    \"name\": \"failedPolicies\",\n                    \"value\": []\n                },\n                {\n                    \"name\": \"validateOnly\",\n                    \"value\": false\n                },\n                {\n                    \"name\": \"value\",\n                    \"value\": false\n                }\n            ],\n            \"input\": [\n                {\n                    \"name\": \"IDToken6\",\n                    \"value\": {{$randomBoolean}}\n                },\n                {\n                    \"name\": \"IDToken6validateOnly\",\n                    \"value\": false\n                }\n            ],\n            \"_id\": 5\n        },\n        {\n            \"type\": \"ValidatedCreatePasswordCallback\",\n            \"output\": [\n                {\n                    \"name\": \"echoOn\",\n                    \"value\": false\n                },\n                {\n                    \"name\": \"policies\",\n                    \"value\": {\n                        \"policyRequirements\": [\n                            \"REQUIRED\",\n                            \"MIN_LENGTH\",\n                            \"VALID_TYPE\",\n                            \"AT_LEAST_X_CAPITAL_LETTERS\",\n                            \"AT_LEAST_X_NUMBERS\",\n                            \"CANNOT_CONTAIN_OTHERS\"\n                        ],\n                        \"fallbackPolicies\": null,\n                        \"name\": \"password\",\n                        \"policies\": [\n                            {\n                                \"policyRequirements\": [\n                                    \"REQUIRED\"\n                                ],\n                                \"policyId\": \"not-empty\"\n                            },\n                            {\n                                \"policyRequirements\": [\n                                    \"MIN_LENGTH\"\n                                ],\n                                \"policyId\": \"minimum-length\",\n                                \"params\": {\n                                    \"minLength\": 8\n                                }\n                            },\n                            {\n                                \"policyRequirements\": [\n                                    \"VALID_TYPE\"\n                                ],\n                                \"policyId\": \"valid-type\",\n                                \"params\": {\n                                    \"types\": [\n                                        \"string\"\n                                    ]\n                                }\n                            },\n                            {\n                                \"policyId\": \"at-least-X-capitals\",\n                                \"params\": {\n                                    \"numCaps\": 1\n                                },\n                                \"policyRequirements\": [\n                                    \"AT_LEAST_X_CAPITAL_LETTERS\"\n                                ]\n                            },\n                            {\n                                \"policyId\": \"at-least-X-numbers\",\n                                \"params\": {\n                                    \"numNums\": 1\n                                },\n                                \"policyRequirements\": [\n                                    \"AT_LEAST_X_NUMBERS\"\n                                ]\n                            },\n                            {\n                                \"policyId\": \"cannot-contain-others\",\n                                \"params\": {\n                                    \"disallowedFields\": [\n                                        \"userName\",\n                                        \"givenName\",\n                                        \"sn\"\n                                    ]\n                                },\n                                \"policyRequirements\": [\n                                    \"CANNOT_CONTAIN_OTHERS\"\n                                ]\n                            }\n                        ],\n                        \"conditionalPolicies\": null\n                    }\n                },\n                {\n                    \"name\": \"failedPolicies\",\n                    \"value\": []\n                },\n                {\n                    \"name\": \"validateOnly\",\n                    \"value\": false\n                },\n                {\n                    \"name\": \"prompt\",\n                    \"value\": \"Password\"\n                }\n            ],\n            \"input\": [\n                {\n                    \"name\": \"IDToken7\",\n                    \"value\": \"Password1!\"\n                },\n                {\n                    \"name\": \"IDToken7validateOnly\",\n                    \"value\": false\n                }\n            ],\n            \"_id\": 6\n        },\n        {\n            \"type\": \"KbaCreateCallback\",\n            \"output\": [\n                {\n                    \"name\": \"prompt\",\n                    \"value\": \"Select a security question\"\n                },\n                {\n                    \"name\": \"predefinedQuestions\",\n                    \"value\": [\n                        \"What's your favorite color?\"\n                    ]\n                }\n            ],\n            \"input\": [\n                {\n                    \"name\": \"IDToken8question\",\n                    \"value\": \"What's your favorite color?\"\n                },\n                {\n                    \"name\": \"IDToken8answer\",\n                    \"value\": \"Cornflower Blue\"\n                }\n            ],\n            \"_id\": 7\n        },\n        {\n            \"type\": \"TermsAndConditionsCallback\",\n            \"output\": [\n                {\n                    \"name\": \"version\",\n                    \"value\": \"0.0\"\n                },\n                {\n                    \"name\": \"terms\",\n                    \"value\": \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"\n                },\n                {\n                    \"name\": \"createDate\",\n                    \"value\": \"2019-10-28T04:20:11.320Z\"\n                }\n            ],\n            \"input\": [\n                {\n                    \"name\": \"IDToken9\",\n                    \"value\": true\n                }\n            ],\n            \"_id\": 8\n        }\n    ],\n    \"header\": \"Sign Up\",\n    \"description\": \"Signing up is fast and easy.<br>Already have an account? <a href='#/service/Login'>Sign In</a>\"\n}",
      "options": {
        "raw": {
          "language": "json"
        }
      }
    },
    "url": {
      "raw": "{{amUrl}}/json{{realm}}/authenticate?authIndexType=service&authIndexValue=Registration",
      "host": [
        "{{amUrl}}"
      ],
      "path": [
        "json{{realm}}",
        "authenticate"
      ],
      "query": [
        {
          "key": "authIndexType",
          "value": "service",
          "description": "Allows the request to configure the service (for example, an authentication tree) to use for this request."
        },
        {
          "key": "authIndexValue",
          "value": "Registration",
          "description": "Specifies the name of the service to use for this request.\nOverride this value using the `amAuthenticationTree` Postman variable."
        }
      ]
    },
    "description": "Respond to the callbacks of the *Registration* journey.\n\nThe builtin *Registration* journey also authenticates the newly registered user and issues a session token."
  },
  "response": [
    {
      "name": "Success - authentication complete",
      "originalRequest": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json",
            "description": "Specifies that the `/json/authenticate` endpoint uses JSON format for requests."
          },
          {
            "key": "Accept-API-Version",
            "value": "resource=2.0, protocol=1.0",
            "description": "Specifies the version of the `/json/authenticate` endpoint to use."
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n    \"authId\": \"{{authId}}\",\n    \"callbacks\": [\n        {\n            \"type\": \"ChoiceCallback\",\n            \"output\": [\n                {\n                    \"name\": \"prompt\",\n                    \"value\": \"Succeed?\"\n                },\n                {\n                    \"name\": \"choices\",\n                    \"value\": [\n                        \"Yes\",\n                        \"No\"\n                    ]\n                },\n                {\n                    \"name\": \"defaultChoice\",\n                    \"value\": 0\n                }\n            ],\n            \"input\": [\n                {\n                    \"name\": \"IDToken1\",\n                    \"value\": 0\n                }\n            ]\n        }\n    ]\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "url": {
          "raw": "{{amUrl}}/json{{realm}}/authenticate?authIndexType=service&authIndexValue={{loginJourney}}",
          "host": [
            "{{amUrl}}"
          ],
          "path": [
            "json{{realm}}",
            "authenticate"
          ],
          "query": [
            {
              "key": "authIndexType",
              "value": "service",
              "description": "Allows the request to configure the service (for example, an authentication tree) to use for this request."
            },
            {
              "key": "authIndexValue",
              "value": "{{loginJourney}}",
              "description": "Specifies the name of the service to use for this request.\nOverride this value using the `amAuthenticationTree` Postman variable."
            }
          ]
        }
      },
      "status": "OK",
      "code": 200,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "X-Frame-Options",
          "value": "SAMEORIGIN"
        },
        {
          "key": "X-Content-Type-Options",
          "value": "nosniff"
        },
        {
          "key": "Cache-Control",
          "value": "private"
        },
        {
          "key": "Cache-Control",
          "value": "no-cache, no-store, must-revalidate"
        },
        {
          "key": "Set-Cookie",
          "value": "iPlanetDirectoryPro=N60dPVcmOADQN170-8799pcqVVI.*AAJTSQACMDEAAlNLABw5QThIM0ZJd3RKcmNyWWYxSzlPaGhzcllsUXM9AAR0eXBlAANDVFMAAlMxAAA.*; Path=/; Domain=example.com; HttpOnly"
        },
        {
          "key": "Set-Cookie",
          "value": "amlbcookie=01; Path=/; Domain=example.com; HttpOnly"
        },
        {
          "key": "Content-API-Version",
          "value": "resource=2.1"
        },
        {
          "key": "Expires",
          "value": "0"
        },
        {
          "key": "Pragma",
          "value": "no-cache"
        },
        {
          "key": "Content-Type",
          "value": "application/json"
        },
        {
          "key": "Content-Length",
          "value": "167"
        },
        {
          "key": "Date",
          "value": "Wed, 12 Aug 2020 14:10:41 GMT"
        }
      ],
      "cookie": [
      ],
      "body": "{\n    \"tokenId\": \"N60dPV99pcqVVI.*AAJTSQACMDEAAANDVFMAAlMxAAA.*\",\n    \"successUrl\": \"/openam/console\",\n    \"realm\": \"/\"\n}"
    }
  ]
}