Google Cloud Platform · Arazzo Workflow

Google Cloud Platform Inspect Organization Access

Version 1.0.0

Search for an organization, fetch its record, then read its IAM policy.

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

Provider

google-cloud-platform

Workflows

inspect-organization-access
Find an organization then read its record and IAM policy.
Searches for an organization, gets it by id, and reads its IAM policy.
3 steps inputs: organizationId, query outputs: bindings, displayName, organizationName
1
searchOrganization
cloudresourcemanager.organizations.search
Search for the organization and capture the first matching resource name.
2
getOrganization
cloudresourcemanager.organizations.get
Fetch the full organization record by its resource id.
3
getOrgPolicy
cloudresourcemanager.organizations.getIamPolicy
Read the IAM policy for the matched organization to review its bindings.

Source API Descriptions

Arazzo Workflow Specification

google-cloud-platform-inspect-organization-access-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Google Cloud Platform Inspect Organization Access
  summary: Search for an organization, fetch its record, then read its IAM policy.
  description: >-
    Audits the access posture of an organization. The workflow searches for an
    organization by domain, fetches the matched organization by its resource id
    for full metadata, and reads its IAM policy so callers can review the
    organization and its top-level access bindings 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: inspect-organization-access
  summary: Find an organization then read its record and IAM policy.
  description: >-
    Searches for an organization, gets it by id, and reads its IAM policy.
  inputs:
    type: object
    required:
    - query
    - organizationId
    properties:
      query:
        type: string
        description: Organization search query, e.g. domain:example.com.
      organizationId:
        type: string
        description: The organization resource id to fetch (e.g. 500123).
  steps:
  - stepId: searchOrganization
    description: >-
      Search for the organization and capture the first matching resource name.
    operationId: cloudresourcemanager.organizations.search
    parameters:
    - name: query
      in: query
      value: $inputs.query
    - name: pageSize
      in: query
      value: 1
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      organizationName: $response.body#/organizations/0/name
  - stepId: getOrganization
    description: >-
      Fetch the full organization record by its resource id.
    operationId: cloudresourcemanager.organizations.get
    parameters:
    - name: organizationId
      in: path
      value: $inputs.organizationId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      displayName: $response.body#/displayName
      state: $response.body#/state
  - stepId: getOrgPolicy
    description: >-
      Read the IAM policy for the matched organization to review its bindings.
    operationId: cloudresourcemanager.organizations.getIamPolicy
    parameters:
    - name: resource
      in: path
      value: $steps.searchOrganization.outputs.organizationName
    requestBody:
      contentType: application/json
      payload:
        options:
          requestedPolicyVersion: 3
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      bindings: $response.body#/bindings
  outputs:
    organizationName: $steps.searchOrganization.outputs.organizationName
    displayName: $steps.getOrganization.outputs.displayName
    bindings: $steps.getOrgPolicy.outputs.bindings