arazzo: 1.0.1 info: title: Adobe Launch Bootstrap a Property with a Rule summary: Stand up a new Tags property, add a rule to it, and attach a first rule component. description: >- The foundational Adobe Experience Platform Launch (Tags) setup flow. The workflow creates a new property under a company, creates a rule inside that property, and then creates a rule component (event, condition, or action) that belongs to the rule. Every request is spelled out inline using the JSON:API document shape these endpoints require so the flow can be read and executed without opening the underlying OpenAPI description. version: 1.0.0 sourceDescriptions: - name: reactorApi url: ../openapi/reactor-api.yml type: openapi workflows: - workflowId: bootstrap-property-rule summary: Create a property, then a rule, then a rule component in one chained pass. description: >- Creates a property under the supplied company, creates a rule scoped to that new property, and creates a rule component linked back to the rule and the extension that provides it. inputs: type: object required: - accessToken - apiKey - imsOrgId - companyId - propertyName - ruleName - ruleComponentName - delegateDescriptorId - extensionId properties: accessToken: type: string description: OAuth 2.0 Server-to-Server bearer access token from Adobe Developer Console. apiKey: type: string description: Client ID credential sent as the x-api-key header. imsOrgId: type: string description: Adobe Organization ID sent as the x-gw-ims-org-id header. companyId: type: string description: The company the new property is created under. propertyName: type: string description: Human-readable name for the new property. ruleName: type: string description: Human-readable name for the new rule. ruleComponentName: type: string description: Human-readable name for the new rule component. delegateDescriptorId: type: string description: Delegate descriptor id identifying the event/condition/action type. extensionId: type: string description: Id of the extension that provides this rule component. steps: - stepId: createProperty description: Create a new web property under the supplied company. operationId: createProperty parameters: - name: Authorization in: header value: "Bearer $inputs.accessToken" - name: x-api-key in: header value: $inputs.apiKey - name: x-gw-ims-org-id in: header value: $inputs.imsOrgId - name: companyId in: path value: $inputs.companyId requestBody: contentType: application/vnd.api+json payload: data: type: properties attributes: name: $inputs.propertyName platform: web domains: - example.com development: true successCriteria: - condition: $statusCode == 201 outputs: propertyId: $response.body#/data/id - stepId: createRule description: Create a rule scoped to the newly created property. operationId: createRule parameters: - name: Authorization in: header value: "Bearer $inputs.accessToken" - name: x-api-key in: header value: $inputs.apiKey - name: x-gw-ims-org-id in: header value: $inputs.imsOrgId - name: propertyId in: path value: $steps.createProperty.outputs.propertyId requestBody: contentType: application/vnd.api+json payload: data: type: rules attributes: name: $inputs.ruleName enabled: true successCriteria: - condition: $statusCode == 201 outputs: ruleId: $response.body#/data/id - stepId: createRuleComponent description: >- Create a rule component linked to the new rule and the extension that provides it. operationId: createRuleComponent parameters: - name: Authorization in: header value: "Bearer $inputs.accessToken" - name: x-api-key in: header value: $inputs.apiKey - name: x-gw-ims-org-id in: header value: $inputs.imsOrgId - name: propertyId in: path value: $steps.createProperty.outputs.propertyId requestBody: contentType: application/vnd.api+json payload: data: type: rule_components attributes: name: $inputs.ruleComponentName delegate_descriptor_id: $inputs.delegateDescriptorId order: 1 relationships: rules: data: - id: $steps.createRule.outputs.ruleId type: rules extension: data: id: $inputs.extensionId type: extensions successCriteria: - condition: $statusCode == 201 outputs: ruleComponentId: $response.body#/data/id outputs: propertyId: $steps.createProperty.outputs.propertyId ruleId: $steps.createRule.outputs.ruleId ruleComponentId: $steps.createRuleComponent.outputs.ruleComponentId