Cloud Support API 사용자 가이드

이 페이지에서는 cloudsupport.googleapis.com API 버전 1을 시작하는 방법을 설명합니다. 이 API의 버전 2는 현재 GA 이전 출시 버전으로만 사용할 수 있습니다. 자세한 내용은 출시 단계 설명을 참조하세요.

프로세스 개요

이 섹션에서는 API를 시작하기 위한 개략적인 프로세스를 설명합니다.

  1. 고객 관리팀이 고객을 위해 지원 계정을 생성합니다. 이는 모든 추가 작업의 기본 요건입니다.
  2. 고객은 API에 액세스하는 데 사용할 프로젝트 ID를 고객 관리팀에 지정합니다. 이 프로젝트는 API에 지정된 소비자 프로젝트가 됩니다.

    이 프로젝트는 API가 사용 설정된 리소스이지만 API를 호출하는 사용자 인증 정보를 모든 Google Cloud 프로젝트에서 사용할 수 있습니다.

  3. 고객은 소비자 프로젝트용 API 키를 생성합니다. 고객은 이 API 키를 사용하여 API를 호출합니다. API 키를 생성하려면 API 키 사용을 참조하세요.

  4. 고객 관리팀은 올바른 공개 상태 라벨을 적용하여 고객팀 API 액세스를 허용합니다.

  5. 고객 관리팀은 서비스 계정에 액세스하기 위한 고객 지원 계정을 허용합니다.

  6. 고객은 Google Cloud Console의 Cloud Support API 페이지로 이동하고 사용 설정을 클릭하여 Cloud Support API를 사용 설정합니다.

    Cloud Support API 페이지로 이동

서비스 계정을 통합하려면 다음 안내를 따르세요.

  1. 고객은 서비스 계정 이해의 안내에 따라 하나 이상의 서비스 계정을 프로비저닝합니다.

  2. 고객은 Cloud Console의 IAM 탭에서 Organization Viewer 역할을 서비스 계정에 부여하거나 resourcemanager.organizations.get 권한을 부여하는 다른 역할을 부여합니다.

    프로그래매틱 방식으로 처리할 수도 있습니다.

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

  3. 고객은 Cloud Console의 지원 > 설정 페이지에서 하나 이상의 서비스 계정을 지원 사용자로 추가합니다.

  4. 고객은 JIT 커넥터 또는 다른 애플리케이션이 사용자 인증 정보를 공유하여 서비스 계정에 액세스하도록 허용합니다. 단계는 인증 개요를 참조하세요.

  5. 고객에게 이미 사용자 인증 정보 관리 도구가 있는 경우 Google Cloud 서비스 계정에 동일한 도구를 사용하는 것이 좋습니다.

  6. 고객의 애플리케이션은 최종 사용자 인증 정보 대신 서비스 계정 사용자 인증 정보를 사용하여 최종 사용자 API와 마찬가지로 정기적인 API 호출을 수행합니다.

OAuth 2.0 인증을 원하는 경우:

  1. OAuth2를 사용하여 Google로 인증하지 않는 경우
    Google API에 액세스하기 위한 OAuth 2.0 가이드에 따라 설정합니다. 증분 승인 섹션을 주의 깊게 살펴보세요.
  2. 애플리케이션에서 사용하는 OAuth2 클라이언트 ID에 다음 두 범위가 추가되어 있는지 확인합니다.
    • Google Cloud 일반 액세스: https://www.googleapis.com/auth/cloud-platform 또는 https://www.googleapis.com/auth/cloud-platform.read-only
    • 지원 티켓 및 기타 지원 관련 데이터를 검색하거나 생성할 수 있는 권한: https://www.googleapis.com/auth/cloudsupport

API 정의 가져오기

API 정의는 Google Cloud 디스커버리 문서로 제공됩니다.

예를 들면 다음과 같습니다. <API_KEY>를 이전 단계인 소비자 프로젝트에서 생성한 API 키로 바꿉니다.

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

REST 클라이언트

REST API

아래에 나열된 모든 엔드포인트에서 <host> 값을 cloudsupport.googleapis.com으로 바꿔야 합니다.

지원 계정

사용자가 액세스 권한을 갖고 지원 계정 세부정보를 관리하는 지원 계정을 나열합니다.

필요한 역할
유형 역할
IAM 지원 계정 뷰어(조직)
IAM 조직 뷰어(조직)
지원 개발, 프로덕션 또는 비즈니스와 관련해 중요도 높음

ListSupportAccounts

현재 인증된 사용자가 액세스할 수 있는 모든 SupportAccounts를 나열합니다.

REST 형식
GET <host>/v1/supportAccounts
매개변수
이름 유형 설명
filter string

검색결과에 적용할 자유 형식 필터입니다. 사용 예시:

filter="name=gcp-sa-1234"

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

page_size int64 응답에서 반환할 SupportAccounts의 최대 개수입니다. Support Accounts의 수가 매우 적기 때문에 대부분의 사용자에게는 이 방식은 중요하지 않습니다.
page_token string 반환할 결과 페이지를 식별하는 토큰입니다. 지정하지 않으면 결과의 첫 번째 결과 페이지가 반환됩니다.
예시
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

지정된 지원 계정을 검색합니다.

REST 형식
GET <host>/v1/{name=supportAccounts/*}
매개변수

요청 URL에 지정된 지원 계정입니다.

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

사용자 관리

관리자가 지원 역할에서 사용자를 프로그래매틱 방식으로 추가하거나 삭제하는 데 사용됩니다.

필요한 역할
유형 역할
IAM 지원 계정 뷰어(조직)
IAM 조직 뷰어(조직)
Support 개발, 프로덕션 또는 비즈니스와 관련해 중요도 높음

GetUserRole

지정된 사용자의 SupportRole을 검색합니다. 검색할 사용자는 요청 메시지의 email 필드 또는 이전 사용자가 지정되지 않은 경우 인증된 사용자의 사용자 인증 정보 중 하나로 결정됩니다.

REST 형식
GET <host>/v1/{name=supportAccounts/*}:getUserRole
매개변수
이름 유형 설명
email string 역할을 가져올 사용자의 이메일 주소입니다.
예시
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

지정된 지원 계정과 연결된 모든 SearorRole 목록을 검색합니다.

REST 형식
GET <host>/v1/{name=supportAccounts/*}:getRoles
매개변수

URL에 지정된 지원 계정입니다.

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

SetSupportRoles

지정된 SupportAccount와 연결된 SupportRole 목록을 업데이트합니다.

REST 형식
POST <host>/v1/{name=supportAccounts/*}:setRoles
매개변수
이름 유형 설명
roles SupportRole[] SupportAccount와 연결할 역할의 전체 목록입니다.
예시
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

여기서 role 속성은 다음 값을 사용할 수 있습니다.

역할 유형 설명
ROLE_UNSPECIFIED 이 사용자 지원 역할을 삭제합니다.
BASIC '기본' 지원 역할
DEVELOPER '개발' 지원 역할
OPERATION '프로덕션' 지원 역할
SITE_RELIABILITY '비즈니스와 관련해 중요도 높음' 지원 역할

SetSupportRoles 메서드는 google.longrunning.Operation의 인스턴스를 반환합니다. SetSupportRoles 상태를 검색하려면 작업 ID를 사용하여 GetOperation 엔드포인트를 폴링해야 합니다. 작업 ID는 영숫자 문자의 조합이며 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 형식입니다.

케이스

지원 케이스를 검색하고, 만들고, 업데이트합니다.

필요한 역할
유형 역할
IAM 지원 계정 뷰어(조직)
IAM 조직 뷰어(조직)
Support Role 개발, 프로덕션 또는 비즈니스와 관련해 중요도 높음

ListCases

SupportAccount와 연결된 지원 케이스 목록을 검색합니다.

REST 형식
GET <host>/v1/{parent=supportAccounts/*}/cases
매개변수
이름 유형 설명
filter string 현재 "OPEN" 또는 "CLOSED" 값만 허용됩니다.
page_size int64 요청당 가져올 최대 케이스 수입니다.
page_token string 반환할 결과 페이지를 식별하는 토큰입니다. 지정하지 않으면 결과의 첫 번째 결과 페이지가 반환됩니다.
예시
curl -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json'  https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234/cases

GetCase

지정된 지원 케이스를 검색합니다.

REST 형식
GET <host>/v1/{name=supportAccounts/*/cases/*}
매개변수

요청 URL에 지정된 지원 계정 및 케이스 번호

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

CreateCase

케이스를 생성하여 해당 SupportAccount와 연결합니다.

REST 형식
POST <host>/v1/{parent=supportAccounts/*}/cases
매개변수
이름 유형 설명
case Case

케이스 객체입니다.

예를 들면 다음과 같습니다.


     { \
        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 \
      }
      

예시
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

지원 케이스를 업데이트합니다. 현재는 우선순위, 제목, 참조 주소 필드만 업데이트될 수 있습니다.

REST 형식
PATCH <host>/v1/{case.name=supportAccounts/*/cases/*}
매개변수
이름 유형 설명
case Case 업데이트된 지원 케이스입니다.
update_mask String[]

업데이트할 케이스 필드 목록입니다.

예를 들면 다음과 같습니다.

["case.priority"]

예: 케이스 업데이트
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
예: 케이스 종료
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

EscalateCase

지원 케이스를 에스컬레이션합니다. 지원 케이스를 에스컬레이션하면 고객 관리 에스컬레이션 관리 프로세스가 시작됩니다. 지원 케이스를 직접 에스컬레이션할 수 있는 권한은 비즈니스와 관련해 중요도가 높은 역할과 프로덕션 역할을 보유한 사용자로만 제한됩니다.

REST 형식
POST <host>/v1/{name=supportAccounts/*/cases/*}:escalate
매개변수
이름 유형 설명
reason Enum

케이스를 에스컬레이션하는 이유입니다.

유효한 값:

  • REASON_UNSPECIFIED: 에스컬레이션 사유가 알 수 없는 상태이거나 지정되지 않았습니다.
  • RESOLUTION_TIME: 케이스를 해결하는 데 시간이 너무 오래 걸립니다.
  • TECHNICAL_EXPERTISE: 고객 지원 담당자에게 성공적인 문제 해결에 필요한 전문 지식이 없습니다.
  • BUSINESS_IMPACT: 이 문제가 비즈니스에 심각한 영향을 미치고 있습니다.
justification String reason 필드와 함께 자유 형식의 설명을 제공하여 케이스가 에스컬레이션된 이유에 관한 세부정보를 제공합니다.
예시
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

GetIssueTaxonomy

지원 케이스를 만들 때 사용되는 문제 카테고리 및 제품 구성요소의 분류를 검색합니다.

REST 형식
GET <host>/v1:getIssueTaxonomy
매개변수
이름 유형 설명
product_type string 항상 "CLOUD_PLATFORM".으로 설정해야 합니다.
예시
curl -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json'  https://cloudsupport.googleapis.com/v1:getIssueTaxonomy

첨부파일

지원 케이스에 첨부된 파일을 검색, 작성 또는 다운로드합니다. 지원 케이스에 파일을 첨부하는 과정은 다음 3단계로 이루어집니다.

  1. :startAttachment 엔드포인트에 POST하여 새 첨부파일 이름을 생성합니다.
  2. Bytestream.Write 엔드포인트에 POST하여 첨부파일의 원시 바이트를 업로드합니다.
  3. /attachmentsPOST하여 첨부파일을 완전히 만들고 지원 케이스와 연결합니다. 첨부파일 생성에는 MIME 유형(예: image/jpeg), 크기(바이트), 파일 이름(r2_d2.jpg)과 같은 모든 파일 메타데이터가 포함됩니다.
필요한 역할
유형 역할
IAM Cloud 지원 계정 뷰어(조직)
IAM 조직 뷰어(조직)
지원 개발, 프로덕션 또는 비즈니스와 관련해 중요도 높음

ListAttachments

지정된 지원 케이스와 연결된 모든 첨부파일의 메타데이터를 검색합니다.

REST 형식
GET <host>/v1/{parent=supportAccounts/*/cases/*}/attachments
매개변수

요청 URL의 지원 계정 및 케이스 번호입니다.

예시
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

다음과 같이 다음 REST API 호출을 실행하여 Bytestream.Read 엔드포인트를 사용하여 첨부파일의 원시 바이트를 다운로드할 수 있습니다.

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

StartAttachment

새 첨부파일을 만드는 프로세스를 시작합니다. 이 메서드는 첨부파일의 리소스 이름을 나타내는 문자열을 반환합니다. 리소스 이름은 뒤의 ByteStream.WriteCreateAttachment 엔드포인트에 대한 호출에 사용됩니다.

REST 형식
POST <host>/v1/{parent=supportAccounts/*/cases/*}:startAttachment
매개변수

요청 URL의 지원 계정 및 케이스 번호입니다.

예시
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

다음과 같이 Bytestream.Write를 호출하여 원시 첨부파일 바이트를 업로드할 수 있습니다.

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

CreateAttachment

첨부파일 메타데이터를 만들고 첨부파일을 지정된 지원 케이스와 연결합니다. 먼저 :startAttachment 호출을 통해 첨부파일 이름을 생성해야 하며 최대 첨부파일 크기는 32MB입니다.

REST 요청
POST <host>/v1/{name=supportAccounts/*/cases/*}/attachments
매개변수
이름 유형 설명
attachment Attachment

첨부파일 객체입니다.

예를 들면 다음과 같습니다.


{
  name: "supportAccounts/gcp-sa-1234/cases/998877/attachments/55115511", \
  file_name: "giraffe.jpg", \
  mime_type: "image/jpeg", \
  size: 986712, // in bytes \
}
예시
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

댓글

지원 케이스에 의견을 쓰거나 나열합니다.

필요한 역할
유형 역할
IAM Cloud 지원 계정 뷰어(조직)
IAM 조직 뷰어(조직)
지원 개발, 프로덕션 또는 비즈니스와 관련해 중요도 높음

ListComments

지정된 지원 케이스와 관련된 모든 댓글을 나열합니다.

REST
GET <host>/v1/{name=supportAccounts/*/cases/*}/comments
매개변수

요청 URL의 지원 계정 및 케이스 번호입니다.

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

CreateComment

케이스에 새 댓글을 추가합니다.

REST 형식
POST <host>/v1/{name=supportAccounts/*/cases/*}/comments
매개변수
이름 유형 설명
comment 설명

의견 객체입니다.

예를 들면 다음과 같습니다.


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

예시
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

전화 지원

고객 관리를 위한 전 세계 연락처 목록을 검색하고 전화 지원을 호출하는PIN을 생성합니다.

필수 권한
유형 권한
IAM Cloud 지원 계정 뷰어(조직)
IAM 조직 뷰어(조직)
Support Role 개발, 프로덕션 또는 비즈니스와 관련해 중요도 높음

ListPhoneContacts

고객 관리팀에 연락하는 데 사용되는 전 세계 연락처를 나열합니다.

REST
GET <host>/v1/phoneContacts
매개변수

없음

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

GenerateEpin

Google Cloud 지원용 전화 서비스 시스템에 대해 인증하는 데 사용할 수 있는 고유 PIN을 생성합니다.

REST 형식
POST <host>/v1/{name=supportAccounts/*}:generateEpin
매개변수
이름 유형 설명
project_id string 이 PIN과 연결된 Google Cloud 프로젝트 ID입니다. 이 필드를 설정하면 고객 지원 담당자가 전화 통화 전에 프로젝트 세부정보를 검색할 수 있습니다.
예시
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

알림

고객 관리팀이 발급한 관련 알림을 모두 나열합니다.

필요한 역할
유형 역할
IAM Cloud 지원 계정 뷰어(조직)
IAM 조직 뷰어(조직)
지원 개발, 프로덕션 또는 비즈니스와 관련해 중요도 높음

ListNotifications

고객에게 활발하게 영향을 주는 것으로 알려진 모든 진행 중인 Google Cloud 이슈를 나열합니다. 응답에는 엔드포인트를 호출한 사용자와 관련된 문제가 아닌 모든 제품에 영향을 미치는 문제가 포함됩니다.

REST 형식
GET <host>/v1/{parent=supportAccounts/*}/notifications
매개변수
이름 유형 설명
page_size int32 응답에서 반환할 최대 알림 수입니다.
page_token string 결과의 다음 페이지를 검색하는 토큰입니다. ListNotifications 엔드포인트는 현재 페이지로 나누기를 지원하지 않습니다.
예시
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json'  https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234/notifications

IAM

Identity and Access Management 서비스와 상호작용하기 위한 엔드포인트입니다.

TestIamPermissions

현재 인증된 사용자에게 해당 고객 관리 리소스에 대한 권한이 있는지 확인합니다. 지원 계정, 케이스, 운영, 의견만 유효한 고객 관리 리소스로 간주됩니다.

예를 들어 사용자에게 지원 계정의 세부정보를 가져올 수 있는 액세스 권한이 있는지 확인하려면 TestIamPermissionsRequest에 다음을 입력해야 합니다.

resource: "supportAccounts/{support_account_id}"
permission: "cloudsupport.accounts.get"
REST 형식
POST <host>/v1/{resource=**}:testIamPermissions
매개변수
이름 유형 설명
permissions string[]

테스트할 권한 목록입니다.

예를 들면 다음과 같습니다.

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

예시
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

운영

장기 실행 작업의 상태를 검색하는 엔드포인트입니다.

GetOperation

기존 작업의 상태를 검색합니다.

REST 형식
GET <host>/v1/operations/{name=supportAccounts/*/operations/*}
매개변수

요청 URL에 지정된 지원 계정 및 작업 식별자입니다.

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

클라이언트 라이브러리 생성

Google API 클라이언트 생성기를 클론합니다.

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

Python 2.7이 설치되어 있는지 확인합니다.

sudo apt-get install python

PIP가 설치되어 있는지 확인합니다.

sudo apt-get install python-pip

종속 항목을 설치합니다.

pip install google-apis-client-generator

클라이언트 라이브러리 생성:

이 명령어는 WARNING:root:object without properties로 시작하는 1~2개의 경고를 생성합니다. 무시해도 괜찮습니다. 클라이언트 라이브러리는 계속 생성됩니다.

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

API 사용

시작하기 전에

  • API 클라이언트 라이브러리 자바에 대한 종속 항목 추가
  • 위의 단계에서 생성된 코드에 대한 종속 항목 추가
  • 코드가 성공적으로 빌드되는지 확인

    // 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();