The Examples Library
ACP ships with a wide variety of working ACP examples illustrating various concepts and functions. These examples can be found in the Workflow List and are grouped into distinct categories, like ‘Getting Started’ and ‘ProVision & Amazon.’
The ‘Getting Started’ category is of particular importance for new users as it shows specific examples of distinct concepts. This category of workflows will be referenced often in this documentation.
(1) "Simple One-Step Workflow" -- connects to a ProVision instance, gets the TLR, returns it
(2) "Adjusting Outputs" -- does (1), but outputs the TLR id, its Name, and its Parent as separate returns
(3) "Connecting Steps" -- pulls the "Server" resource, then pulls its parent, then outputs the parent's id, name, and parent.
(4) "Intro to Debugging" -- does (3), but looks for the "DOESNOTEXIST" resource. This workflow is designed to fail and show how the Debug section works.
(5) "Inputs" -- does (3), but has the initial resource name as a user-given input
(6) "Branching by HTTP Code" -- The user gives a resource name. If the resource does not exist (HTTP 404), the workflow creates it. If the resource exists, the workflow deletes it.
(7) "Branching by Data Inspection" -- The user gives a resource name. If the resource does not exist (body.name != $name), the workflow creates it. If the resource exists, the workflow deletes it.
(8) "Compound Branching Conditions" -- Same as (6), but if with extra Conditions that error if the entered name is "TLR", "Base", or "Required". These are hard-coded as conditions.
(9) "Working with Arrays" -- pulls a list of all resources of type 'section', returns the name of the 3rd one. This is to show the use of "3.name" syntax.
(10) "Inputs with Routing" -- Same as (6) but the user-given input is used in the conditional statements in the routing section.
(11) "Sub-Steps" -- I am not sure what the best example is here, but it should be as simple as possible. Perhaps a modified version of (9) ?
(12) "Iteration Variables" -- Again, I am not sure about the best usage of this feature. But we do need an example showing how it works.
(13) "Javascript Functions" -- A modification of (1) which gets the TLR and then reverses the characters in the name using Javascript to return "RLT".
(14) "Multiple-Initiator Workflows" -- I am not sure how to best illustrate this, but we execute workflows with multiple initiators in parallel, yes? Perhaps we can make two simple ProVision resource-get calls in parallel and combine their outputs.
(15) This is where I would put "Multiple Connector Workflows" but I figure we have plenty of example there already with the AWS integration stuff.
(16) "Connector Credential Segregation" -- ie, multiple connectors to the same ProVision instance using different credentials so they can isolate who gets to do what. This is mostly an AWS/Azure/GCloud feature but we can demo it with ProVision.
(17) We probably need to include a sample generic connector that just re-creates some simple ProVision commands -- like a "Generic" connector which implements a very small subset of IPAM Get and Resource get. We then need an example Workflow using this.