Google Cloud Platform · Arazzo Workflow

Google Cloud Platform Audit Folder and Projects

Version 1.0.0

Search for a folder, fetch its record, then list the projects directly under it.

1 workflow 1 source API 1 provider
View Spec View on GitHub API ManagementCloud ComputingInfrastructurePlatform as a ServiceArazzoWorkflows

Provider

google-cloud-platform

Workflows

audit-folder-and-projects
Find a folder by query then read it and enumerate its child projects.
Searches for a folder, gets it by id, and lists its child projects.
3 steps inputs: folderId, query outputs: folderName, projects, state
1
searchFolder
cloudresourcemanager.folders.search
Search for the folder and capture the first matching folder resource name.
2
getFolder
cloudresourcemanager.folders.get
Fetch the full folder record by its resource id.
3
listChildProjects
cloudresourcemanager.projects.list
List the projects that are direct children of the matched folder.

Source API Descriptions

Arazzo Workflow Specification

google-cloud-platform-audit-folder-and-projects-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Google Cloud Platform Audit Folder and Projects
  summary: Search for a folder, fetch its record, then list the projects directly under it.
  description: >-
    Audits a folder and the projects it contains. The workflow searches for a
    folder by query, fetches the matched folder by its resource id for full
    metadata, and lists the projects that are direct children of that folder so
    callers can review the folder and its contents together. Every step spells
    out its request inline so the flow can be read and executed without opening
    the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: cloudResourceManagerApi
  url: ../openapi/cloud-resource-manager-openapi.yml
  type: openapi
workflows:
- workflowId: audit-folder-and-projects
  summary: Find a folder by query then read it and enumerate its child projects.
  description: >-
    Searches for a folder, gets it by id, and lists its child projects.
  inputs:
    type: object
    required:
    - query
    - folderId
    properties:
      query:
        type: string
        description: Folder search query, e.g. displayName=Engineering.
      folderId:
        type: string
        description: The folder resource id to fetch (e.g. 500123).
  steps:
  - stepId: searchFolder
    description: >-
      Search for the folder and capture the first matching folder resource name.
    operationId: cloudresourcemanager.folders.search
    parameters:
    - name: query
      in: query
      value: $inputs.query
    - name: pageSize
      in: query
      value: 1
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      folderName: $response.body#/folders/0/name
  - stepId: getFolder
    description: >-
      Fetch the full folder record by its resource id.
    operationId: cloudresourcemanager.folders.get
    parameters:
    - name: folderId
      in: path
      value: $inputs.folderId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      state: $response.body#/state
      parent: $response.body#/parent
  - stepId: listChildProjects
    description: >-
      List the projects that are direct children of the matched folder.
    operationId: cloudresourcemanager.projects.list
    parameters:
    - name: parent
      in: query
      value: $steps.searchFolder.outputs.folderName
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      projects: $response.body#/projects
  outputs:
    folderName: $steps.searchFolder.outputs.folderName
    state: $steps.getFolder.outputs.state
    projects: $steps.listChildProjects.outputs.projects