arazzo: 1.0.1 info: title: iOS Create an App Store Version summary: Create a new App Store version, add its primary localization, and attach a build. description: >- Stands up a new App Store version ready for metadata and build attachment. The workflow creates the version for an app and platform, adds a localized listing entry carrying the description and "What's New" text, then resolves a build by its build number and attaches it to the version. Every step spells out its request inline so the flow can be read and executed without opening the underlying App Store Connect OpenAPI description. All calls require an App Store Connect JWT bearer token. version: 1.0.0 sourceDescriptions: - name: appStoreConnectApi url: ../openapi/app-store-connect-openapi.json type: openapi workflows: - workflowId: create-app-store-version summary: Create an App Store version, add a localization, and attach a build. description: >- Creates an App Store version, adds a localized listing, resolves a build by version, and attaches that build to the version. inputs: type: object required: - appId - platform - versionString - locale - buildVersion properties: appId: type: string description: The id of the app to create the version for. platform: type: string description: The platform for the version (e.g. IOS, MAC_OS, TV_OS). versionString: type: string description: The marketing version string (e.g. 2.1.0). locale: type: string description: The locale for the listing localization (e.g. en-US). description: type: string description: The localized app description. whatsNew: type: string description: The localized "What's New in This Version" text. buildVersion: type: string description: The build number (CFBundleVersion) of the build to attach. steps: - stepId: createVersion description: >- Create the App Store version for the app and platform. operationId: appStoreVersions_createInstance requestBody: contentType: application/json payload: data: type: appStoreVersions attributes: platform: $inputs.platform versionString: $inputs.versionString relationships: app: data: type: apps id: $inputs.appId successCriteria: - condition: $statusCode == 201 outputs: versionId: $response.body#/data/id - stepId: addLocalization description: >- Add the localized listing entry carrying the description and "What's New" text for the new version. operationId: appStoreVersionLocalizations_createInstance requestBody: contentType: application/json payload: data: type: appStoreVersionLocalizations attributes: locale: $inputs.locale description: $inputs.description whatsNew: $inputs.whatsNew relationships: appStoreVersion: data: type: appStoreVersions id: $steps.createVersion.outputs.versionId successCriteria: - condition: $statusCode == 201 outputs: localizationId: $response.body#/data/id - stepId: findBuild description: >- Resolve the build to attach by its build number. operationId: builds_getCollection parameters: - name: filter[app] in: query value: $inputs.appId - name: filter[version] in: query value: $inputs.buildVersion - name: limit in: query value: 1 successCriteria: - condition: $statusCode == 200 outputs: buildId: $response.body#/data/0/id - stepId: attachBuild description: >- Attach the resolved build to the version via the build relationship. A 204 indicates the relationship was set. operationId: appStoreVersions_build_updateToOneRelationship parameters: - name: id in: path value: $steps.createVersion.outputs.versionId requestBody: contentType: application/json payload: data: type: builds id: $steps.findBuild.outputs.buildId successCriteria: - condition: $statusCode == 204 outputs: versionId: $steps.createVersion.outputs.versionId localizationId: $steps.addLocalization.outputs.localizationId buildId: $steps.findBuild.outputs.buildId