Guía del usuario de la API de Cloud Support

En esta página, se describe cómo comenzar a usar la versión 1 de la API de cloudsupport.googleapis.com. Actualmente, la versión 2 de esta API solo está disponible como versión previa a la disponibilidad general. Para obtener más información, consulta las descripciones de la etapa de lanzamiento.

Descripción general del proceso

En esta sección, se detalla el proceso de alto nivel para comenzar a usar la API.

  1. El equipo de atención al cliente crea una cuenta de asistencia para el cliente. Este es un requisito previo para todas las operaciones adicionales.
  2. El cliente especifica al equipo de Customer Care qué ID del proyecto desea usar para acceder a la API. Este proyecto será el proyecto de consumidor designado para la API.

    Este proyecto será el recurso en el que la API está habilitada, pero las credenciales para llamar a la API se pueden usar desde cualquier proyecto de Google Cloud.

  3. El cliente genera una clave de API para el proyecto de consumidor. El cliente usará esta clave de API para realizar llamadas a la API. Para generar una clave de API, consulta Usa claves de API.

  4. El equipo de Customer Care permite el acceso a la API del equipo de atención al cliente (si aplica las etiquetas de visibilidad correctas).

  5. El equipo de Customer Care permite la cuenta de asistencia al cliente para acceder a la cuenta de servicio.

  6. El cliente habilita la API de Cloud Support, visita la página de la API de Cloud Support en Google Cloud Console y haz clic en HABILITAR.

    Ir a la página de la API de Cloud Support

Si deseas integrar la cuenta de servicio:

  1. El cliente aprovisiona una o más cuentas de servicio mediante las instrucciones que aparecen en Comprender las cuentas de servicio.

  2. El cliente otorga a la cuenta de servicio la función Organization Viewer en la pestaña IAM en Cloud Console o cualquier otra función que otorgue el permiso resourcemanager.organizations.get.

    También se puede hacer de manera programática:

      gcloud organizations add-iam-policy-binding
      organizations/ord-id
      --role roles/resourcemanager.organizationViewer
      --member service-account
     

  3. El cliente agrega una o más de estas cuentas de servicio como usuario de asistencia a través de la página Asistencia > Configuración en Cloud Console.

  4. El cliente permite que sus conectores de JIRA y otras aplicaciones accedan a la cuenta de servicio compartiendo credenciales. Para conocer los pasos, consulta la Descripción general de la autenticación.

  5. Si el cliente ya tiene algunas herramientas de administración de credenciales, tiene sentido aprovechar la misma herramienta para las cuentas de servicio de Google Cloud.

  6. Las aplicaciones del cliente realizan llamadas regulares a la API (como lo haría un usuario final), con las credenciales de la cuenta de servicio, en lugar de las credenciales de usuario final.

Si quieres la autenticación OAuth 2.0:

  1. Si aún no te autenticas con Google mediante OAuth2, puedes configurarlo según
    con las guías para OAuth 2.0 a fin de acceder a las API de Google. Presta especial atención a la sección sobre autorización incremental.
  2. Asegúrate de agregar los siguientes dos alcances a los ID de cliente de OAuth2 que use tu aplicación:
    • Para el acceso general a Google Cloud: https://www.googleapis.com/auth/cloud-platform o https://www.googleapis.com/auth/cloud-platform.read-only
    • Para obtener acceso a fin de recuperar o crear tickets de asistencia y otros datos relacionados con la asistencia, usa: https://www.googleapis.com/auth/cloudsupport

Recupera la definición de la API

La definición de la API se entrega como un documento de descubrimiento de Google Cloud.

A continuación, se muestra un ejemplo. Sustituye <API_KEY> con una clave de API que hayas generado en el proyecto de consumidor un paso anterior.

curl 'https://cloudsupport.googleapis.com/$discovery/rest?key=<API_KEY>&labels=TRUSTED_TESTER&version=v1alpha2' > /tmp/cloudsupport.v1alpha2.json

Cliente de REST

API de REST

Para todos los extremos que se enumeran a continuación, el valor de <host> debe reemplazarse por cloudsupport.googleapis.com.

Cuentas de asistencia

Enumerar las cuentas de asistencia a las que un usuario tiene acceso y administrar los detalles de la cuenta de asistencia

Funciones requeridas
Tipo Función
IAM Visualizador de cuentas del servicio de asistencia (organización)
IAM Visualizador de organización (organización)
Asistencia Desarrollo, producción o críticas para el negocio

ListSupportAccounts

Muestra una lista de todas las SupportAccounts a las que tiene acceso el usuario autenticado actualmente.

Formato REST
GET <host>/v1/supportAccounts
Parámetros
Name Tipo Descripción
filter string

Filtro de formulario libre que se aplicará a los resultados de la búsqueda. Ejemplos de uso:

filter="name=gcp-sa-1234"

filter="cloud_resource=organizations/my-org-1234"

page_size int64 Número máximo de SupportAccounts que se mostrará en la respuesta. Para la mayoría de los usuarios, esto no será muy relevante, ya que la cantidad de SupportAccounts será muy baja.
page_token string Un token que identifica la página de resultados que se muestra. Si no se especifica, se muestra la primera página de resultados.
Ejemplo
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json'  http://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234?filter=cloud_resource:organizations/8675309

GetSupportAccount

Recupera la cuenta de asistencia especificada.

Formato REST
GET <host>/v1/{name=supportAccounts/*}
Parámetros

Cuenta de asistencia especificada en la URL de solicitud.

Ejemplo
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type: application/json'  https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234

User Management

Lo usa el administrador para agregar o quitar usuarios de manera programática de funciones de asistencia.

Funciones requeridas
Tipo Función
IAM Visualizador de cuentas del servicio de asistencia (organización)
IAM Visualizador de organización (organización)
Support Desarrollo, producción o críticas para el negocio

GetUserRole

Recupera la SupportRole del usuario determinado. El usuario que se debe recuperar se determina a partir del campo email en el mensaje de la solicitud o las credenciales del usuario autenticado si el anterior no se especifica.

Formato REST
GET <host>/v1/{name=supportAccounts/*}:getUserRole
Parámetros
Name Tipo Descripción
email string La dirección de correo electrónico del usuario cuya función se va a obtener.
Ejemplo
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type: application/json'  https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234:getUserRole?email=john@example.com

GetSupportRoles

Recuperar una lista de todas sus funciones asociadas con la cuenta de asistencia especificada

Formato REST
GET <host>/v1/{name=supportAccounts/*}:getRoles
Parámetros

Cuenta de asistencia especificada en la URL.

Ejemplo
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json' https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234:getRoles

SetSupportRoles

Actualizar la lista de SupportRoles asociadas con la cuenta de asistencia dada

Formato REST
POST <host>/v1/{name=supportAccounts/*}:setRoles
Parámetros
Name Tipo Descripción
roles SupportRole[] Lista completa de funciones que se asociarán con SupportAccount.
Ejemplo
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json' -X POST -d '{
  "roles": [
    {
      "email": "john@example.com",
      "role": "SITE_RELIABILITY",
    },
    {
      "email": "alex@example.com",
      "role": "OPERATION",
    },
    {
      "email": "tiger@example.com",
      "role": "ROLE_UNSPECIFIED",
    },
],
  "etag": "ZrTGhhB"
}' https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234:setRoles

Donde el atributo role puede tomar los siguientes valores:

Tipo de función Descripción
ROLE_UNSPECIFIED Borra esta función de asistencia para usuarios.
BASIC La función de asistencia "Básica".
DEVELOPER La función de asistencia "Desarrollo".
OPERATION La función de asistencia de "Producción".
SITE_RELIABILITY La función de asistencia "Fundamental para la empresa".

El método SetSupportRoles mostrará una instancia de google.longrunning.Operation. Para recuperar el estado de SetSupportRoles, deberás sondear el extremo GetOperation con el ID de operación. El ID de la operación será una combinación de caracteres alfanuméricos y tendrá el siguiente formato: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Casos

Recupera, crea y actualiza casos de ayuda.

Funciones requeridas
Tipo Función
IAM Visualizador de cuentas del servicio de asistencia (organización)
IAM Visualizador de organización (organización)
Support Role Desarrollo, producción o críticas para el negocio

Enumerar casos

Recupera la lista de casos de ayuda asociados con SupportAccount.

Formato REST
GET <host>/v1/{parent=supportAccounts/*}/cases
Parámetros
Name Tipo Descripción
filter string Actualmente, solo acepta los valores "OPEN" o "CLOSED".
page_size int64 Cantidad máxima de casos para recuperar con cada solicitud.
page_token string Un token que identifica la página de resultados que se muestra. Si no se especifica, se muestra la primera página de resultados.
Ejemplo
curl -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json'  https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234/cases

Obtener casos

Recupera el caso de ayuda especificado.

Formato REST
GET <host>/v1/{name=supportAccounts/*/cases/*}
Parámetros

Cuenta de asistencia y número de caso especificado en la URL de solicitud

Ejemplo
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json' https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234/cases/5678

Crear casos

Crea un caso y lo asocia con la cuenta de asistencia dada.

Formato REST
POST <host>/v1/{parent=supportAccounts/*}/cases
Parámetros
Name Tipo Descripción
case Case

Un objeto de caso

Ejemplo:


     { \
        display_name: "My test case for Istio", \
        description: "Istio network latency spike", \
        category: "Compute", \
        component: "Istio", \
        subcomponent: "Networking", \
        time_zone: "-07:00", \
        cc_addresses: ["foo@domain.com", "bar@domain.com"], \
        project_id: "my-gcp-test-project-1234", \
        priority: 3 \
      }
      

Ejemplo
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json' -X POST -d '{ display_name: "My app is down", description: "Datastore appears to be down so my app is broken.", component: "Cloud Datastore", subcomponent: "Availability / Latency", time_zone: "-07:00", project_id: "my-super-project", category: "Storage & Databases", priority: 3 }' https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234/cases

UpdateCase

Actualiza un caso de ayuda. Actualmente, solo se pueden actualizar los campos subject y cc_address.

Formato REST
PATCH <host>/v1/{case.name=supportAccounts/*/cases/*}
Parámetros
Name Tipo Descripción
case Case Caso de ayuda actualizado.
update_mask String[]

La lista de campos de caso que se actualizará.

Ejemplo:

["case.priority"]

Ejemplo: Actualizar caso
curl v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json' -X PATCH -d '{ display_name: "My app is down", priority: 2, cc_addresses: ["james@example.com", "susan@example.com"]}' https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234/cases/5678?update_mask=case.cc_addresses,case.priority,case.display_name
Ejemplo: Cerrar mayúsculas
curl v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json' -X PATCH -d '{ state: "CLOSED" }' https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234/cases/5678?update_mask=case.state

DerivateCase

Derivar un caso de ayuda Elevación de un caso de ayuda iniciará el proceso de administración de elevación de atención al cliente. La capacidad de autoformular un caso de ayuda está restringido solo a usuarios que tengan las funciones Fundamental para la empresa y Producción solo.

Formato REST
POST <host>/v1/{name=supportAccounts/*/cases/*}:escalate
Parámetros
Name Tipo Descripción
reason Enum

La razón por la que se deriva el caso.

Valores válidos:

  • REASON_UNSPECIFIED: el motivo de la derivación se encuentra en un estado desconocido o no se especificó.
  • RESOLUTION_TIME: El caso de procesamiento es demasiado largo.
  • TECHNICAL_EXPERTISE: El agente de asistencia no tiene la experiencia requerida para resolver correctamente el problema.
  • BUSINESS_IMPACT: El problema tiene un impacto comercial significativo.
justification String Descripción de texto libre que acompaña al campo reason y proporciona más detalles sobre por qué se remitió el caso
Ejemplo
curl v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json' -X POST -d '{ reason: "TECHNICAL_EXPERTISE", justification: "There is no technical expertise."}' https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234/cases/5678:escalate

GetIssueTaxonomía

Recupera la taxonomía de categorías de problemas y componentes de productos que se usan cuando se crea un caso de ayuda.

Formato REST
GET <host>/v1:getIssueTaxonomy
Parámetros
Name Tipo Descripción
product_type string Siempre debe configurarse en "CLOUD_PLATFORM".
Ejemplo
curl -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json'  https://cloudsupport.googleapis.com/v1:getIssueTaxonomy

Archivos adjuntos

Recupera, crea o descarga archivos adjuntos a un caso de ayuda. Adjuntar un archivo a un caso de ayuda es un nuevo adjunto de tres pasos:

  1. POST para el extremo :startAttachment a fin de generar un nombre de adjunto nuevo.
  2. POST al extremo Bytestream.Write para subir los bytes sin procesar del adjunto.
  3. POST a /attachments para crear el adjunto por completo y asociarlo con un caso de ayuda El adjunto incluye los metadatos de todos los archivos, como el tipo MIME (como image/jpeg), el tamaño (en bytes) y el nombre del archivo (r2_d2.jpg).
Funciones requeridas
Tipo Función
IAM Visualizador de cuentas de Cloud Support (organización)
IAM Visualizador de organización (organización)
Asistencia Desarrollo, producción o crítico para el negocio.

Enumerar archivos adjuntos

Recupera los metadatos de todos los adjuntos asociados con el caso de ayuda determinado.

Formato REST
GET <host>/v1/{parent=supportAccounts/*/cases/*}/attachments
Parámetros

Cuenta de asistencia y número de caso en la URL de solicitud

Ejemplo
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json' https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234/cases/5678/attachments
Bytestream.Read

Puedes descargar los bytes sin procesar del adjunto con el extremo Bytestream.Read mediante la emisión de la siguiente llamada a la API de REST de la siguiente manera:

curl -v -H 'Authorization: Bearer <TOKEN>' -H "Content-Type: application/json" -X GET https://cloudsupport.googleapis.com/v1/media/supportAccounts/gcp-sa-1234/cases/5678/attachments/9012?alt=media

Archivo adjunto

Inicia el proceso de creación de un nuevo adjunto. El método muestra una string que representa el nombre del recurso para el adjunto. El nombre del recurso se usa en las llamadas a los extremos ByteStream.Write y CreateAttachment que siguen.

Formato REST
POST <host>/v1/{parent=supportAccounts/*/cases/*}:startAttachment
Parámetros

Cuenta de asistencia y número de caso en la URL de solicitud

Ejemplo
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type: application/json' -X POST -d {} https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234/cases/5678:startAttachment
Bytestream.Write

Puedes subir los bytes de los archivos adjuntos sin procesar llamando a Bytestream.Write de la siguiente manera:

curl -v -H 'Authorization: Bearer <TOKEN>' -H "Content-Type: application/json" -X POST -T {"r2-d2.jpg"} https://cloudsupport.googleapis.com/upload/v1/media/supportAccounts/gcp-sa-1234/cases/5678/attachments/9012?upload_type=media

Crear archivos adjuntos

Crea los metadatos adjuntos y asocia el adjunto con el caso de ayuda especificado. El nombre del adjunto debe generarse mediante una llamada a :startAttachment y el tamaño máximo del adjunto es de 32 MB.

Solicitud REST
POST <host>/v1/{name=supportAccounts/*/cases/*}/attachments
Parámetros
Name Tipo Descripción
attachment Attachment

Un objeto adjunto.

Ejemplo:


{
  name: "supportAccounts/gcp-sa-1234/cases/998877/attachments/55115511", \
  file_name: "giraffe.jpg", \
  mime_type: "image/jpeg", \
  size: 986712, // in bytes \
}
Ejemplo
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json' -X POST -d '{ name: "supportAccounts/gcp-sa-1234/cases/5678/attachments/9012", mime_type: "image/jpeg", file_name: "R2-D2.jpg", size: 4458 }' https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234/cases/5678/attachments

Comentarios

Crear o enumerar comentarios en un caso de ayuda

Funciones requeridas
Tipo Función
IAM Visualizador de cuentas de Cloud Support (organización)
IAM Visualizador de organización (organización)
Asistencia Desarrollo, producción o críticas para el negocio

Enumerar comentarios

Enumera todos los comentarios asociados con el caso de ayuda especificado.

REST
GET <host>/v1/{name=supportAccounts/*/cases/*}/comments
Parámetros

Cuenta de asistencia y número de caso en la URL de solicitud

Ejemplo
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json'  https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234/cases/5678/comments

Crear comentario

Agrega un comentario nuevo a un caso.

Formato REST
POST <host>/v1/{name=supportAccounts/*/cases/*}/comments
Parámetros
Name Tipo Descripción
comment Comentar

El objeto de comentario

Ejemplo:


{
text: "This is my comment", \
}
           

Ejemplo
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json' -X POST -d '{ name:"supportAccounts/gcp-sa-1234/cases/5678",text:"I am commenting on this case."}' https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234/cases/5678/comments

Asistencia telefónica

Recuperar una lista de números de contacto de todo el mundo para el servicio al cliente y generar un PIN que llame a la asistencia telefónica

Permisos necesarios
Tipo Permiso
IAM Visualizador de cuentas de Cloud Support (organización)
IAM Visualizador de organización (organización)
Support Role Desarrollo, producción o críticas para el negocio

ListPhoneContacts

Enumera los números de contacto de todo el mundo que se usan para comunicarse con el servicio al cliente.

REST
GET <host>/v1/phoneContacts
Parámetros

Ninguno

Ejemplo
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json'  https://cloudsupport.googleapis.com/v1/phoneContacts

Generar recursos

Genera un PIN único que se puede usar a fin de autenticarte en el sistema de telefonía para la asistencia de Google Cloud.

Formato REST
POST <host>/v1/{name=supportAccounts/*}:generateEpin
Parámetros
Name Tipo Descripción
project_id string ID del proyecto de Google Cloud asociado con este PIN. Establecer este campo ayuda a un agente de asistencia a recuperar detalles del proyecto antes de la llamada telefónica.
Ejemplo
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json' -X POST -d '{project_id: "my-app-project"}' https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234:generateEpin

Notificaciones

Enumera todas las notificaciones relacionadas con la atención al cliente.

Funciones requeridas
Tipo Función
IAM Visualizador de cuentas de Cloud Support (organización)
IAM Visualizador de organización (organización)
Asistencia Desarrollo, producción o críticas para el negocio

Enumerar notificaciones

Enumera todos los incidentes abiertos de Google Cloud que afectan de forma activa a los clientes. La respuesta incluirá los problemas que afectan a todos los productos, no los específicos del usuario que invocó el extremo.

Formato REST
GET <host>/v1/{parent=supportAccounts/*}/notifications
Parámetros
Name Tipo Descripción
page_size int32 Cantidad máxima de notificaciones que se muestran en la respuesta.
page_token string Un token para recuperar los resultados de la página siguiente. Por el momento, el extremo ListNotifications no admite la paginación.
Ejemplo
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json'  https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234/notifications

IAM

Endpoints para interactuar con los servicios de Identity and Access Management.

TestIamPermissions

Verifica si el usuario autenticado actual tiene permisos para el recurso de Atención al cliente dado. Solo se consideran recursos válidos de Customer Care para las cuentas de asistencia, casos, operaciones y comentarios.

Por ejemplo, para verificar si el usuario tiene acceso para obtener detalles de una cuenta de asistencia, se debe propagar TestIamPermissionsRequest con lo siguiente:

resource: "supportAccounts/{support_account_id}"
permission: "cloudsupport.accounts.get"
Formato REST
POST <host>/v1/{resource=**}:testIamPermissions
Parámetros
Name Tipo Descripción
permissions string[]

Es una lista de permisos para probar.

Ejemplo:

`["cloudsupport.comments.list", "cloudsupport.cases.list"]`

Ejemplo
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type: application/json' -X POST -d '{permissions: "cloudsupport.accounts.get"}' https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234:testIamPermissions

Operations

Endpoints para recuperar el estado de las operaciones de larga duración.

GetOperation

Recuperar el estado de una operación existente

Formato REST
GET <host>/v1/operations/{name=supportAccounts/*/operations/*}
Parámetros

Cuenta de asistencia y identificador de operación especificado en la URL de la solicitud.

Ejemplo
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json' https://cloudsupport.googleapis.com/v1/operations/supportAccounts/gcp-sa-1234/operations/5678-0912

Genera bibliotecas cliente

Clona el generador de clientes de las API de Google:

cd /tmp/; git clone https://github.com/google/apis-client-generator.git;

Asegúrate de tener instalado Python 2.7:

sudo apt-get install python

Asegúrese de haber instalado PIP:

sudo apt-get install python-pip

Instale las dependencias:

pip install google-apis-client-generator

Genera bibliotecas cliente:

Este comando generará una o dos advertencias a partir de WARNING:root:object without properties. Se pueden ignorar. La biblioteca cliente seguirá generada.

./generate.sh --input=/tmp/cloudsupport.v1alpha2.json --output_dir=/tmp/cloudsupport_generated --language=java

Usar la API

Antes de comenzar

  • Agrega una dependencia en la biblioteca cliente de la API de Java.
  • Agrega una dependencia en el código que se generó en el paso anterior
  • Asegúrate de que tu código se compile correctamente

    // Shared constants
    String CLOUD_SUPPORT_SCOPE = "https://www.googleapis.com/auth/cloudsupport";
    
    // Customer specific config
    String SERVICE_ACCOUNT_ID = "<... service account id ...>";
    File SERVICE_ACCOUNT_PRIVATE_KEY = new File("<... p12 key file ...>");
    String SUPPORT_ACCOUNT_ID = "supportAccounts/gcp-sa-<......>";
    
    // Service setup
    JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
    HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
    
    // This section is for service account authentication
    // If you are using OAuth2 instead, follow guide at
    // https://developers.google.com/api-client-library/java/google-oauth-java-client/oauth2
    GoogleCredential credential = new GoogleCredential.Builder()
      .setTransport(httpTransport)
      .setJsonFactory(jsonFactory)
      .setServiceAccountId(SERVICE_ACCOUNT_ID)
      .setServiceAccountPrivateKeyFromP12File(SERVICE_ACCOUNT_PRIVATE_KEY)
      .setServiceAccountScopes(Collections.singleton(CLOUD_SUPPORT_SCOPE))
      .build();
    
    // Main API service is ready to use!
    CloudSupport supportService = new CloudSupport.Builder(httpTransport, jsonFactory, credential).build();
    
    // Each call will look something like this:
    SupportAccount account = supportService.supportAccounts().get(SUPPORT_ACCOUNT_ID).execute();