GraphQL: Implement runnerCloudProvisioningOptions query

In order to support #437907 (closed) in the frontend, we'll need a GraphQL query that will return the possible values for region, zone, and machine type selections.

Proposal

Add the following query and supporting types as alpha:

{
  project(fullPath: "gitlab-org/playground") {
    id
    runnerCloudProvisioningOptions(provider: GOOGLE_CLOUD) {
      regions(first: 2) {
        nodes {
          name
          description
        }
        pageInfo {
          hasNextPage
          endCursor
        }
      }
      zones(region: "us-east1", first: 2) {
        nodes {
          name
          description
        }
        pageInfo {
          hasNextPage
          endCursor
        }
      }
      machineTypes(zone: "us-east1-b", first: 2) {
        nodes {
          name
          description
          zone
        }
        pageInfo {
          hasNextPage
          endCursor
        }
      }
    }
  }
}

Proposal

MVP

Using the REST client implemented in #439569 (closed) and services implemented in !143570 (merged), create a runnerCloudProvisioningOptions GraphQL query inside the ProjectType object. The new Types::Ci::RunnerCloudProvisioningOptionsType will have access to the project and its WLIF integration, which will allow it to construct the REST client.

Edited by Pedro Pombeiro