Chilkat Online Tools

Objective-C / ForgeRock Identity Cloud Collection / Step 2: Handle "Registration" Journey Callback

Back to Collection Items

#import <CkoHttp.h>
#import <CkoJsonObject.h>
#import <CkoHttpResponse.h>
#import <CkoStringBuilder.h>
#import <NSString.h>

// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

CkoHttp *http = [[CkoHttp alloc] init];
BOOL success;

// 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>"
// }

CkoJsonObject *json = [[CkoJsonObject alloc] init];
[json UpdateString: @"authId" value: @"{{authId}}"];
[json UpdateString: @"callbacks[0].type" value: @"ValidatedCreateUsernameCallback"];
[json UpdateString: @"callbacks[0].output[0].name" value: @"policies"];
[json UpdateString: @"callbacks[0].output[0].value.policyRequirements[0]" value: @"REQUIRED"];
[json UpdateString: @"callbacks[0].output[0].value.policyRequirements[1]" value: @"MIN_LENGTH"];
[json UpdateString: @"callbacks[0].output[0].value.policyRequirements[2]" value: @"VALID_TYPE"];
[json UpdateString: @"callbacks[0].output[0].value.policyRequirements[3]" value: @"VALID_USERNAME"];
[json UpdateString: @"callbacks[0].output[0].value.policyRequirements[4]" value: @"CANNOT_CONTAIN_CHARACTERS"];
[json UpdateString: @"callbacks[0].output[0].value.policyRequirements[5]" value: @"MAX_LENGTH"];
[json UpdateNull: @"callbacks[0].output[0].value.fallbackPolicies"];
[json UpdateString: @"callbacks[0].output[0].value.name" value: @"userName"];
[json UpdateString: @"callbacks[0].output[0].value.policies[0].policyRequirements[0]" value: @"REQUIRED"];
[json UpdateString: @"callbacks[0].output[0].value.policies[0].policyId" value: @"required"];
[json UpdateString: @"callbacks[0].output[0].value.policies[1].policyRequirements[0]" value: @"REQUIRED"];
[json UpdateString: @"callbacks[0].output[0].value.policies[1].policyId" value: @"not-empty"];
[json UpdateString: @"callbacks[0].output[0].value.policies[2].policyRequirements[0]" value: @"MIN_LENGTH"];
[json UpdateString: @"callbacks[0].output[0].value.policies[2].policyId" value: @"minimum-length"];
[json UpdateInt: @"callbacks[0].output[0].value.policies[2].params.minLength" value: [NSNumber numberWithInt: 1]];
[json UpdateString: @"callbacks[0].output[0].value.policies[3].policyRequirements[0]" value: @"VALID_TYPE"];
[json UpdateString: @"callbacks[0].output[0].value.policies[3].policyId" value: @"valid-type"];
[json UpdateString: @"callbacks[0].output[0].value.policies[3].params.types[0]" value: @"string"];
[json UpdateString: @"callbacks[0].output[0].value.policies[4].policyId" value: @"valid-username"];
[json UpdateString: @"callbacks[0].output[0].value.policies[4].policyRequirements[0]" value: @"VALID_USERNAME"];
[json UpdateString: @"callbacks[0].output[0].value.policies[5].policyId" value: @"cannot-contain-characters"];
[json UpdateString: @"callbacks[0].output[0].value.policies[5].params.forbiddenChars[0]" value: @"/"];
[json UpdateString: @"callbacks[0].output[0].value.policies[5].policyRequirements[0]" value: @"CANNOT_CONTAIN_CHARACTERS"];
[json UpdateString: @"callbacks[0].output[0].value.policies[6].policyId" value: @"minimum-length"];
[json UpdateInt: @"callbacks[0].output[0].value.policies[6].params.minLength" value: [NSNumber numberWithInt: 1]];
[json UpdateString: @"callbacks[0].output[0].value.policies[6].policyRequirements[0]" value: @"MIN_LENGTH"];
[json UpdateString: @"callbacks[0].output[0].value.policies[7].policyId" value: @"maximum-length"];
[json UpdateInt: @"callbacks[0].output[0].value.policies[7].params.maxLength" value: [NSNumber numberWithInt: 255]];
[json UpdateString: @"callbacks[0].output[0].value.policies[7].policyRequirements[0]" value: @"MAX_LENGTH"];
[json UpdateNull: @"callbacks[0].output[0].value.conditionalPolicies"];
[json UpdateString: @"callbacks[0].output[1].name" value: @"failedPolicies"];
[json UpdateNewArray: @"callbacks[0].output[1].value"];
[json UpdateString: @"callbacks[0].output[2].name" value: @"validateOnly"];
[json UpdateBool: @"callbacks[0].output[2].value" value: NO];
[json UpdateString: @"callbacks[0].output[3].name" value: @"prompt"];
[json UpdateString: @"callbacks[0].output[3].value" value: @"Username"];
[json UpdateString: @"callbacks[0].input[0].name" value: @"IDToken1"];
[json UpdateString: @"callbacks[0].input[0].value" value: @"{{myRandomUsername}}"];
[json UpdateString: @"callbacks[0].input[1].name" value: @"IDToken1validateOnly"];
[json UpdateBool: @"callbacks[0].input[1].value" value: NO];
[json UpdateInt: @"callbacks[0]._id" value: [NSNumber numberWithInt: 0]];
[json UpdateString: @"callbacks[1].type" value: @"StringAttributeInputCallback"];
[json UpdateString: @"callbacks[1].output[0].name" value: @"name"];
[json UpdateString: @"callbacks[1].output[0].value" value: @"givenName"];
[json UpdateString: @"callbacks[1].output[1].name" value: @"prompt"];
[json UpdateString: @"callbacks[1].output[1].value" value: @"First Name"];
[json UpdateString: @"callbacks[1].output[2].name" value: @"required"];
[json UpdateBool: @"callbacks[1].output[2].value" value: YES];
[json UpdateString: @"callbacks[1].output[3].name" value: @"policies"];
[json UpdateString: @"callbacks[1].output[3].value.policyRequirements[0]" value: @"REQUIRED"];
[json UpdateString: @"callbacks[1].output[3].value.policyRequirements[1]" value: @"VALID_TYPE"];
[json UpdateNull: @"callbacks[1].output[3].value.fallbackPolicies"];
[json UpdateString: @"callbacks[1].output[3].value.name" value: @"givenName"];
[json UpdateString: @"callbacks[1].output[3].value.policies[0].policyRequirements[0]" value: @"REQUIRED"];
[json UpdateString: @"callbacks[1].output[3].value.policies[0].policyId" value: @"required"];
[json UpdateString: @"callbacks[1].output[3].value.policies[1].policyRequirements[0]" value: @"VALID_TYPE"];
[json UpdateString: @"callbacks[1].output[3].value.policies[1].policyId" value: @"valid-type"];
[json UpdateString: @"callbacks[1].output[3].value.policies[1].params.types[0]" value: @"string"];
[json UpdateNull: @"callbacks[1].output[3].value.conditionalPolicies"];
[json UpdateString: @"callbacks[1].output[4].name" value: @"failedPolicies"];
[json UpdateNewArray: @"callbacks[1].output[4].value"];
[json UpdateString: @"callbacks[1].output[5].name" value: @"validateOnly"];
[json UpdateBool: @"callbacks[1].output[5].value" value: NO];
[json UpdateString: @"callbacks[1].output[6].name" value: @"value"];
[json UpdateString: @"callbacks[1].output[6].value" value: @""];
[json UpdateString: @"callbacks[1].input[0].name" value: @"IDToken2"];
[json UpdateString: @"callbacks[1].input[0].value" value: @"Postman"];
[json UpdateString: @"callbacks[1].input[1].name" value: @"IDToken2validateOnly"];
[json UpdateBool: @"callbacks[1].input[1].value" value: NO];
[json UpdateInt: @"callbacks[1]._id" value: [NSNumber numberWithInt: 1]];
[json UpdateString: @"callbacks[2].type" value: @"StringAttributeInputCallback"];
[json UpdateString: @"callbacks[2].output[0].name" value: @"name"];
[json UpdateString: @"callbacks[2].output[0].value" value: @"sn"];
[json UpdateString: @"callbacks[2].output[1].name" value: @"prompt"];
[json UpdateString: @"callbacks[2].output[1].value" value: @"Last Name"];
[json UpdateString: @"callbacks[2].output[2].name" value: @"required"];
[json UpdateBool: @"callbacks[2].output[2].value" value: YES];
[json UpdateString: @"callbacks[2].output[3].name" value: @"policies"];
[json UpdateString: @"callbacks[2].output[3].value.policyRequirements[0]" value: @"REQUIRED"];
[json UpdateString: @"callbacks[2].output[3].value.policyRequirements[1]" value: @"VALID_TYPE"];
[json UpdateNull: @"callbacks[2].output[3].value.fallbackPolicies"];
[json UpdateString: @"callbacks[2].output[3].value.name" value: @"sn"];
[json UpdateString: @"callbacks[2].output[3].value.policies[0].policyRequirements[0]" value: @"REQUIRED"];
[json UpdateString: @"callbacks[2].output[3].value.policies[0].policyId" value: @"required"];
[json UpdateString: @"callbacks[2].output[3].value.policies[1].policyRequirements[0]" value: @"VALID_TYPE"];
[json UpdateString: @"callbacks[2].output[3].value.policies[1].policyId" value: @"valid-type"];
[json UpdateString: @"callbacks[2].output[3].value.policies[1].params.types[0]" value: @"string"];
[json UpdateNull: @"callbacks[2].output[3].value.conditionalPolicies"];
[json UpdateString: @"callbacks[2].output[4].name" value: @"failedPolicies"];
[json UpdateNewArray: @"callbacks[2].output[4].value"];
[json UpdateString: @"callbacks[2].output[5].name" value: @"validateOnly"];
[json UpdateBool: @"callbacks[2].output[5].value" value: NO];
[json UpdateString: @"callbacks[2].output[6].name" value: @"value"];
[json UpdateString: @"callbacks[2].output[6].value" value: @""];
[json UpdateString: @"callbacks[2].input[0].name" value: @"IDToken3"];
[json UpdateString: @"callbacks[2].input[0].value" value: @"Self-Service-User"];
[json UpdateString: @"callbacks[2].input[1].name" value: @"IDToken3validateOnly"];
[json UpdateBool: @"callbacks[2].input[1].value" value: NO];
[json UpdateInt: @"callbacks[2]._id" value: [NSNumber numberWithInt: 2]];
[json UpdateString: @"callbacks[3].type" value: @"StringAttributeInputCallback"];
[json UpdateString: @"callbacks[3].output[0].name" value: @"name"];
[json UpdateString: @"callbacks[3].output[0].value" value: @"mail"];
[json UpdateString: @"callbacks[3].output[1].name" value: @"prompt"];
[json UpdateString: @"callbacks[3].output[1].value" value: @"Email Address"];
[json UpdateString: @"callbacks[3].output[2].name" value: @"required"];
[json UpdateBool: @"callbacks[3].output[2].value" value: YES];
[json UpdateString: @"callbacks[3].output[3].name" value: @"policies"];
[json UpdateString: @"callbacks[3].output[3].value.policyRequirements[0]" value: @"REQUIRED"];
[json UpdateString: @"callbacks[3].output[3].value.policyRequirements[1]" value: @"VALID_TYPE"];
[json UpdateString: @"callbacks[3].output[3].value.policyRequirements[2]" value: @"VALID_EMAIL_ADDRESS_FORMAT"];
[json UpdateNull: @"callbacks[3].output[3].value.fallbackPolicies"];
[json UpdateString: @"callbacks[3].output[3].value.name" value: @"mail"];
[json UpdateString: @"callbacks[3].output[3].value.policies[0].policyRequirements[0]" value: @"REQUIRED"];
[json UpdateString: @"callbacks[3].output[3].value.policies[0].policyId" value: @"required"];
[json UpdateString: @"callbacks[3].output[3].value.policies[1].policyRequirements[0]" value: @"VALID_TYPE"];
[json UpdateString: @"callbacks[3].output[3].value.policies[1].policyId" value: @"valid-type"];
[json UpdateString: @"callbacks[3].output[3].value.policies[1].params.types[0]" value: @"string"];
[json UpdateString: @"callbacks[3].output[3].value.policies[2].policyId" value: @"valid-email-address-format"];
[json UpdateString: @"callbacks[3].output[3].value.policies[2].policyRequirements[0]" value: @"VALID_EMAIL_ADDRESS_FORMAT"];
[json UpdateNull: @"callbacks[3].output[3].value.conditionalPolicies"];
[json UpdateString: @"callbacks[3].output[4].name" value: @"failedPolicies"];
[json UpdateNewArray: @"callbacks[3].output[4].value"];
[json UpdateString: @"callbacks[3].output[5].name" value: @"validateOnly"];
[json UpdateBool: @"callbacks[3].output[5].value" value: NO];
[json UpdateString: @"callbacks[3].output[6].name" value: @"value"];
[json UpdateString: @"callbacks[3].output[6].value" value: @""];
[json UpdateString: @"callbacks[3].input[0].name" value: @"IDToken4"];
[json UpdateString: @"callbacks[3].input[0].value" value: @"{{myRandomUsername}}@selfservice.example.com"];
[json UpdateString: @"callbacks[3].input[1].name" value: @"IDToken4validateOnly"];
[json UpdateBool: @"callbacks[3].input[1].value" value: NO];
[json UpdateInt: @"callbacks[3]._id" value: [NSNumber numberWithInt: 3]];
[json UpdateString: @"callbacks[4].type" value: @"BooleanAttributeInputCallback"];
[json UpdateString: @"callbacks[4].output[0].name" value: @"name"];
[json UpdateString: @"callbacks[4].output[0].value" value: @"preferences/marketing"];
[json UpdateString: @"callbacks[4].output[1].name" value: @"prompt"];
[json UpdateString: @"callbacks[4].output[1].value" value: @"Send me special offers and services"];
[json UpdateString: @"callbacks[4].output[2].name" value: @"required"];
[json UpdateBool: @"callbacks[4].output[2].value" value: YES];
[json UpdateString: @"callbacks[4].output[3].name" value: @"policies"];
[json UpdateNewObject: @"callbacks[4].output[3].value"];
[json UpdateString: @"callbacks[4].output[4].name" value: @"failedPolicies"];
[json UpdateNewArray: @"callbacks[4].output[4].value"];
[json UpdateString: @"callbacks[4].output[5].name" value: @"validateOnly"];
[json UpdateBool: @"callbacks[4].output[5].value" value: NO];
[json UpdateString: @"callbacks[4].output[6].name" value: @"value"];
[json UpdateBool: @"callbacks[4].output[6].value" value: NO];
[json UpdateString: @"callbacks[4].input[0].name" value: @"IDToken5"];
[json UpdateString: @"callbacks[4].input[0].value" value: @"{{value}}"];
[json UpdateString: @"callbacks[4].input[1].name" value: @"IDToken5validateOnly"];
[json UpdateBool: @"callbacks[4].input[1].value" value: NO];
[json UpdateInt: @"callbacks[4]._id" value: [NSNumber numberWithInt: 4]];
[json UpdateString: @"callbacks[5].type" value: @"BooleanAttributeInputCallback"];
[json UpdateString: @"callbacks[5].output[0].name" value: @"name"];
[json UpdateString: @"callbacks[5].output[0].value" value: @"preferences/updates"];
[json UpdateString: @"callbacks[5].output[1].name" value: @"prompt"];
[json UpdateString: @"callbacks[5].output[1].value" value: @"Send me news and updates"];
[json UpdateString: @"callbacks[5].output[2].name" value: @"required"];
[json UpdateBool: @"callbacks[5].output[2].value" value: YES];
[json UpdateString: @"callbacks[5].output[3].name" value: @"policies"];
[json UpdateNewObject: @"callbacks[5].output[3].value"];
[json UpdateString: @"callbacks[5].output[4].name" value: @"failedPolicies"];
[json UpdateNewArray: @"callbacks[5].output[4].value"];
[json UpdateString: @"callbacks[5].output[5].name" value: @"validateOnly"];
[json UpdateBool: @"callbacks[5].output[5].value" value: NO];
[json UpdateString: @"callbacks[5].output[6].name" value: @"value"];
[json UpdateBool: @"callbacks[5].output[6].value" value: NO];
[json UpdateString: @"callbacks[5].input[0].name" value: @"IDToken6"];
[json UpdateString: @"callbacks[5].input[0].value" value: @"{{value}}"];
[json UpdateString: @"callbacks[5].input[1].name" value: @"IDToken6validateOnly"];
[json UpdateBool: @"callbacks[5].input[1].value" value: NO];
[json UpdateInt: @"callbacks[5]._id" value: [NSNumber numberWithInt: 5]];
[json UpdateString: @"callbacks[6].type" value: @"ValidatedCreatePasswordCallback"];
[json UpdateString: @"callbacks[6].output[0].name" value: @"echoOn"];
[json UpdateBool: @"callbacks[6].output[0].value" value: NO];
[json UpdateString: @"callbacks[6].output[1].name" value: @"policies"];
[json UpdateString: @"callbacks[6].output[1].value.policyRequirements[0]" value: @"REQUIRED"];
[json UpdateString: @"callbacks[6].output[1].value.policyRequirements[1]" value: @"MIN_LENGTH"];
[json UpdateString: @"callbacks[6].output[1].value.policyRequirements[2]" value: @"VALID_TYPE"];
[json UpdateString: @"callbacks[6].output[1].value.policyRequirements[3]" value: @"AT_LEAST_X_CAPITAL_LETTERS"];
[json UpdateString: @"callbacks[6].output[1].value.policyRequirements[4]" value: @"AT_LEAST_X_NUMBERS"];
[json UpdateString: @"callbacks[6].output[1].value.policyRequirements[5]" value: @"CANNOT_CONTAIN_OTHERS"];
[json UpdateNull: @"callbacks[6].output[1].value.fallbackPolicies"];
[json UpdateString: @"callbacks[6].output[1].value.name" value: @"password"];
[json UpdateString: @"callbacks[6].output[1].value.policies[0].policyRequirements[0]" value: @"REQUIRED"];
[json UpdateString: @"callbacks[6].output[1].value.policies[0].policyId" value: @"not-empty"];
[json UpdateString: @"callbacks[6].output[1].value.policies[1].policyRequirements[0]" value: @"MIN_LENGTH"];
[json UpdateString: @"callbacks[6].output[1].value.policies[1].policyId" value: @"minimum-length"];
[json UpdateInt: @"callbacks[6].output[1].value.policies[1].params.minLength" value: [NSNumber numberWithInt: 8]];
[json UpdateString: @"callbacks[6].output[1].value.policies[2].policyRequirements[0]" value: @"VALID_TYPE"];
[json UpdateString: @"callbacks[6].output[1].value.policies[2].policyId" value: @"valid-type"];
[json UpdateString: @"callbacks[6].output[1].value.policies[2].params.types[0]" value: @"string"];
[json UpdateString: @"callbacks[6].output[1].value.policies[3].policyId" value: @"at-least-X-capitals"];
[json UpdateInt: @"callbacks[6].output[1].value.policies[3].params.numCaps" value: [NSNumber numberWithInt: 1]];
[json UpdateString: @"callbacks[6].output[1].value.policies[3].policyRequirements[0]" value: @"AT_LEAST_X_CAPITAL_LETTERS"];
[json UpdateString: @"callbacks[6].output[1].value.policies[4].policyId" value: @"at-least-X-numbers"];
[json UpdateInt: @"callbacks[6].output[1].value.policies[4].params.numNums" value: [NSNumber numberWithInt: 1]];
[json UpdateString: @"callbacks[6].output[1].value.policies[4].policyRequirements[0]" value: @"AT_LEAST_X_NUMBERS"];
[json UpdateString: @"callbacks[6].output[1].value.policies[5].policyId" value: @"cannot-contain-others"];
[json UpdateString: @"callbacks[6].output[1].value.policies[5].params.disallowedFields[0]" value: @"userName"];
[json UpdateString: @"callbacks[6].output[1].value.policies[5].params.disallowedFields[1]" value: @"givenName"];
[json UpdateString: @"callbacks[6].output[1].value.policies[5].params.disallowedFields[2]" value: @"sn"];
[json UpdateString: @"callbacks[6].output[1].value.policies[5].policyRequirements[0]" value: @"CANNOT_CONTAIN_OTHERS"];
[json UpdateNull: @"callbacks[6].output[1].value.conditionalPolicies"];
[json UpdateString: @"callbacks[6].output[2].name" value: @"failedPolicies"];
[json UpdateNewArray: @"callbacks[6].output[2].value"];
[json UpdateString: @"callbacks[6].output[3].name" value: @"validateOnly"];
[json UpdateBool: @"callbacks[6].output[3].value" value: NO];
[json UpdateString: @"callbacks[6].output[4].name" value: @"prompt"];
[json UpdateString: @"callbacks[6].output[4].value" value: @"Password"];
[json UpdateString: @"callbacks[6].input[0].name" value: @"IDToken7"];
[json UpdateString: @"callbacks[6].input[0].value" value: @"Password1!"];
[json UpdateString: @"callbacks[6].input[1].name" value: @"IDToken7validateOnly"];
[json UpdateBool: @"callbacks[6].input[1].value" value: NO];
[json UpdateInt: @"callbacks[6]._id" value: [NSNumber numberWithInt: 6]];
[json UpdateString: @"callbacks[7].type" value: @"KbaCreateCallback"];
[json UpdateString: @"callbacks[7].output[0].name" value: @"prompt"];
[json UpdateString: @"callbacks[7].output[0].value" value: @"Select a security question"];
[json UpdateString: @"callbacks[7].output[1].name" value: @"predefinedQuestions"];
[json UpdateString: @"callbacks[7].output[1].value[0]" value: @"What's your favorite color?"];
[json UpdateString: @"callbacks[7].input[0].name" value: @"IDToken8question"];
[json UpdateString: @"callbacks[7].input[0].value" value: @"What's your favorite color?"];
[json UpdateString: @"callbacks[7].input[1].name" value: @"IDToken8answer"];
[json UpdateString: @"callbacks[7].input[1].value" value: @"Cornflower Blue"];
[json UpdateInt: @"callbacks[7]._id" value: [NSNumber numberWithInt: 7]];
[json UpdateString: @"callbacks[8].type" value: @"TermsAndConditionsCallback"];
[json UpdateString: @"callbacks[8].output[0].name" value: @"version"];
[json UpdateString: @"callbacks[8].output[0].value" value: @"0.0"];
[json UpdateString: @"callbacks[8].output[1].name" value: @"terms"];
[json UpdateString: @"callbacks[8].output[1].value" 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."];
[json UpdateString: @"callbacks[8].output[2].name" value: @"createDate"];
[json UpdateString: @"callbacks[8].output[2].value" value: @"2019-10-28T04:20:11.320Z"];
[json UpdateString: @"callbacks[8].input[0].name" value: @"IDToken9"];
[json UpdateBool: @"callbacks[8].input[0].value" value: YES];
[json UpdateInt: @"callbacks[8]._id" value: [NSNumber numberWithInt: 8]];
[json UpdateString: @"header" value: @"Sign Up"];
[json UpdateString: @"description" value: @"Signing up is fast and easy.<br>Already have an account? <a href='#/service/Login'>Sign In</a>"];

[http SetRequestHeader: @"Content-Type" value: @"application/json"];
[http SetRequestHeader: @"Accept-API-Version" value: @"resource=2.0, protocol=1.0"];

CkoHttpResponse *resp = [http PostJson3: @"https://<tenant-name>.forgeblocks.com/am/json/realms/root/realms/alpha/authenticate?authIndexType=service&authIndexValue=Registration" contentType: @"application/json" json: json];
if (http.LastMethodSuccess == NO) {
    NSLog(@"%@",http.LastErrorText);
    return;
}

CkoStringBuilder *sbResponseBody = [[CkoStringBuilder alloc] init];
[resp GetBodySb: sbResponseBody];

CkoJsonObject *jResp = [[CkoJsonObject alloc] init];
[jResp LoadSb: sbResponseBody];
jResp.EmitCompact = NO;

NSLog(@"%@",@"Response Body:");
NSLog(@"%@",[jResp Emit]);

int respStatusCode = [resp.StatusCode intValue];
NSLog(@"%@%d",@"Response Status Code = ",respStatusCode);
if (respStatusCode >= 400) {
    NSLog(@"%@",@"Response Header:");
    NSLog(@"%@",resp.Header);
    NSLog(@"%@",@"Failed.");

    return;
}

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

NSString *tokenId = [jResp StringOf: @"tokenId"];
NSString *successUrl = [jResp StringOf: @"successUrl"];
NSString *realm = [jResp StringOf: @"realm"];

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}"
    }
  ]
}