{
  "name" : "click.kamil.examples.statemachine.extended.config.ExtendedStateMachineConfig",
  "states" : [ {
    "rawName" : "\"COMPLETED\"",
    "fullIdentifier" : "String.COMPLETED"
  }, {
    "rawName" : "\"CANCELLED\"",
    "fullIdentifier" : "String.CANCELLED"
  }, {
    "rawName" : "\"PROCESSING\"",
    "fullIdentifier" : "String.PROCESSING"
  }, {
    "rawName" : "\"START\"",
    "fullIdentifier" : "String.START"
  } ],
  "transitions" : [ {
    "type" : "EXTERNAL",
    "sourceStates" : [ {
      "rawName" : "\"START\"",
      "fullIdentifier" : "String.START"
    } ],
    "targetStates" : [ {
      "rawName" : "\"PROCESSING\"",
      "fullIdentifier" : "String.PROCESSING"
    } ],
    "event" : {
      "rawName" : "MyEvents.SUBMIT",
      "fullIdentifier" : "String.SUBMIT_EVENT"
    },
    "guards" : [ ],
    "actions" : [ ],
    "order" : null
  }, {
    "type" : "EXTERNAL",
    "sourceStates" : [ {
      "rawName" : "\"PROCESSING\"",
      "fullIdentifier" : "String.PROCESSING"
    } ],
    "targetStates" : [ {
      "rawName" : "\"COMPLETED\"",
      "fullIdentifier" : "String.COMPLETED"
    } ],
    "event" : {
      "rawName" : "\"FINISH\"",
      "fullIdentifier" : "String.FINISH"
    },
    "guards" : [ ],
    "actions" : [ ],
    "order" : null
  }, {
    "type" : "EXTERNAL",
    "sourceStates" : [ {
      "rawName" : "\"PROCESSING\"",
      "fullIdentifier" : "String.PROCESSING"
    } ],
    "targetStates" : [ {
      "rawName" : "\"CANCELLED\"",
      "fullIdentifier" : "String.CANCELLED"
    } ],
    "event" : {
      "rawName" : "MyEvents.CANCEL",
      "fullIdentifier" : "String.CANCEL_EVENT"
    },
    "guards" : [ ],
    "actions" : [ ],
    "order" : null
  }, {
    "type" : "EXTERNAL",
    "sourceStates" : [ {
      "rawName" : "\"START\"",
      "fullIdentifier" : "String.START"
    } ],
    "targetStates" : [ {
      "rawName" : "\"PROCESSING\"",
      "fullIdentifier" : "String.PROCESSING"
    } ],
    "event" : {
      "rawName" : "\"REACTIVE_EVENT\"",
      "fullIdentifier" : "String.REACTIVE_EVENT"
    },
    "guards" : [ ],
    "actions" : [ ],
    "order" : null
  }, {
    "type" : "EXTERNAL",
    "sourceStates" : [ {
      "rawName" : "\"START\"",
      "fullIdentifier" : "String.START"
    } ],
    "targetStates" : [ {
      "rawName" : "\"START\"",
      "fullIdentifier" : "String.START"
    } ],
    "event" : {
      "rawName" : "\"AUDIT_EVENT\"",
      "fullIdentifier" : "String.AUDIT_EVENT"
    },
    "guards" : [ ],
    "actions" : [ ],
    "order" : null
  }, {
    "type" : "EXTERNAL",
    "sourceStates" : [ {
      "rawName" : "\"START\"",
      "fullIdentifier" : "String.START"
    } ],
    "targetStates" : [ {
      "rawName" : "\"PROCESSING\"",
      "fullIdentifier" : "String.PROCESSING"
    } ],
    "event" : {
      "rawName" : "\"EXTERNAL_TRIGGER\"",
      "fullIdentifier" : "String.EXTERNAL_TRIGGER"
    },
    "guards" : [ ],
    "actions" : [ ],
    "order" : null
  } ],
  "startStates" : [ "String.START" ],
  "endStates" : [ "String.CANCELLED", "String.COMPLETED" ],
  "renderChoicesAsDiamonds" : true,
  "flows" : [ ],
  "stateTypeFqn" : "String",
  "eventTypeFqn" : "String",
  "metadata" : {
    "triggers" : [ ],
    "entryPoints" : [ {
      "type" : "REST",
      "name" : "GET /api/base/{id}",
      "className" : "click.kamil.examples.statemachine.extended.web.PaymentController",
      "methodName" : "processBaseEndpoint",
      "sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/PaymentController.java",
      "metadata" : {
        "path" : "/api/base/{id}",
        "verb" : "GET"
      },
      "parameters" : [ {
        "name" : "id",
        "type" : "String",
        "annotations" : [ "PathVariable" ]
      } ]
    }, {
      "type" : "REST",
      "name" : "POST /api/payment/{id}/capture",
      "className" : "click.kamil.examples.statemachine.extended.web.PaymentController",
      "methodName" : "capturePaymentEndpoint",
      "sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/PaymentController.java",
      "metadata" : {
        "path" : "/api/payment/{id}/capture",
        "verb" : "POST"
      },
      "parameters" : [ {
        "name" : "id",
        "type" : "String",
        "annotations" : [ "PathVariable" ]
      } ]
    } ],
    "callChains" : [ ],
    "properties" : {
      "default" : {
        "app.states.initial" : "INIT_STATE"
      },
      "prod" : {
        "app.states.initial" : "PROD_INITIAL"
      }
    }
  }
}
