Get long-running operations

Some methods return a long-running operation. Long-running methods are asynchronous, and the operation might not be completed when the method returns a response. You can poll the operation to check on its status.

Get an operation status

The following shows how to poll an operation's status by calling the get method on the Operation resource.

REST

Refer to the operations:get API endpoint for complete details. When the operation has completed, a state value of SUCCESSFUL is returned. The following example demonstrates the expected JSON output when a CreateIssueModel operation has completed. Your output might vary depending on which API produced the operation.

Before using any of the request data, make the following replacements:

  • PROJECT_ID : your Google Cloud project ID.
  • OPERATION_ID : the ID of the conversation you want to analyze. This value was returned when you created the analysis.

HTTP method and URL:

GET https://contactcenterinsights.googleapis.com/v1/projects/ PROJECT_ID 
/locations/us-central1/operations/ OPERATION_ID 

To send your request, expand one of these options:

You should receive a JSON response similar to the following:

{
  "name": "projects/ PROJECT_ID 
/locations/us-central1/operations/ OPERATION_ID 
",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.contactcenterinsights.v1.CreateIssueModelMetadata",
    "createTime": "2021-01-20T10:10:10.123000Z",
    "endTime": "2021-01-20T11:11:11.456000Z",
    "request": {
      "parent": "projects/ PROJECT_ID 
/locations/us-central1",
      "issueModel": {
        "displayName": " MODEL_NAME 
",
        "inputDataConfig": {
          "medium": "CHAT",
          "trainingConversationsCount": "12000",
          "filter": "medium=\"CHAT\""
        }
      }
    }
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.contactcenterinsights.v1.IssueModel",
    "name": "projects/ PROJECT_ID 
/locations/us-central1/issueModels/ ISSUE_MODEL_ID 
",
    "displayName": "my-model",
    "createTime": "2021-01-20T11:11:11.456000Z",
    "state": "UNDEPLOYED",
    "inputDataConfig": {
      "medium": "CHAT",
      "trainingConversationsCount": "12000",
      "filter": "medium=\"CHAT\""
    },
    "trainingStats": {
      "analyzedConversationsCount": "8000",
      "issueStats": {
        "projects/ PROJECT_ID 
/locations/us-central1/issueModels/ ISSUE_MODEL_ID 
/issues/123000": {
          "issue": "projects/$PROJECT/locations/us-central1/issueModels/ ISSUE_MODEL_ID 
/issues/123000",
          "labeledConversationsCount": "10"
        },
        "projects/ PROJECT_ID 
/locations/us-central1/issueModels/ ISSUE_MODEL_ID 
/issues/456000": {
          "issue": "projects/$PROJECT/locations/us-central1/issueModels/ ISSUE_MODEL_ID 
L/issues/456000",
          "labeledConversationsCount": "20"
        },
        ...
      }
    }
  }
}

Python

To authenticate to Insights, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  from 
  
 google.cloud 
  
 import 
 contact_center_insights_v1 
 from 
  
 google.longrunning 
  
 import 
 operations_pb2 
 def 
  
 get_operation 
 ( 
 operation_name 
 : 
 str 
 ) 
 - 
> operations_pb2 
 . 
 Operation 
 : 
  
 """Gets an operation. 
 Args: 
 operation_name: 
 The operation name. 
 Format is 'projects/{project_id}/locations/{location_id}/operations/{operation_id}'. 
 For example, 'projects/my-project/locations/us-central1/operations/123456789'. 
 Returns: 
 An operation. 
 """ 
 # Construct an Insights client that will authenticate via Application Default Credentials. 
 # See authentication details at https://cloud.google.com/docs/authentication/production. 
 insights_client 
 = 
 contact_center_insights_v1 
 . 
 ContactCenterInsightsClient 
 () 
 # Call the Insights client to get the operation. 
 operation 
 = 
 insights_client 
 . 
 transport 
 . 
 operations_client 
 . 
 get_operation 
 ( 
 operation_name 
 ) 
 if 
 operation 
 . 
 done 
 : 
 print 
 ( 
 "Operation is done" 
 ) 
 else 
 : 
 print 
 ( 
 "Operation is in progress" 
 ) 
 

Java

To authenticate to Insights, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  import 
  
 com.google.cloud.contactcenterinsights.v1. ContactCenterInsightsClient 
 
 ; 
 import 
  
 com.google.longrunning. Operation 
 
 ; 
 import 
  
 com.google.longrunning. OperationsClient 
 
 ; 
 import 
  
 java.io.IOException 
 ; 
 public 
  
 class 
 GetOperation 
  
 { 
  
 public 
  
 static 
  
 void 
  
 main 
 ( 
 String 
 [] 
  
 args 
 ) 
  
 throws 
  
 IOException 
  
 { 
  
 // TODO(developer): Replace this variable before running the sample. 
  
 String 
  
 operationName 
  
 = 
  
 "projects/my_project_id/locations/us-central1/operations/12345" 
 ; 
  
 getOperation 
 ( 
 operationName 
 ); 
  
 } 
  
 public 
  
 static 
  
  Operation 
 
  
 getOperation 
 ( 
 String 
  
 operationName 
 ) 
  
 throws 
  
 IOException 
  
 { 
  
 // Initialize client that will be used to send requests. This client only needs to be created 
  
 // once, and can be reused for multiple requests. After completing all of your requests, call 
  
 // the "close" method on the client to safely clean up any remaining background resources. 
  
 try 
  
 ( 
  ContactCenterInsightsClient 
 
  
 client 
  
 = 
  
  ContactCenterInsightsClient 
 
 . 
 create 
 ()) 
  
 { 
  
  OperationsClient 
 
  
 operationsClient 
  
 = 
  
 client 
 . 
  getOperationsClient 
 
 (); 
  
  Operation 
 
  
 operation 
  
 = 
  
 operationsClient 
 . 
  getOperation 
 
 ( 
 operationName 
 ); 
  
 System 
 . 
 out 
 . 
 printf 
 ( 
 "Got operation %s%n" 
 , 
  
 operation 
 . 
  getName 
 
 ()); 
  
 return 
  
 operation 
 ; 
  
 } 
  
 } 
 } 
 

Node.js

To authenticate to Insights, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  /** 
 * TODO(developer): Uncomment this variable before running the sample. 
 */ 
 // const operationName = 'projects/my_project_id/locations/us-central1/operations/my_operation_id'; 
 // Imports the Contact Center Insights client. 
 const 
  
 { 
  
 ContactCenterInsightsClient 
 , 
 } 
  
 = 
  
 require 
 ( 
 ' @google-cloud/contact-center-insights 
' 
 ); 
 // Instantiates a client. 
 const 
  
 client 
  
 = 
  
 new 
  
  ContactCenterInsightsClient 
 
 (); 
 async 
  
 function 
  
 getOperation 
 () 
  
 { 
  
 const 
  
 [ 
 operation 
 ] 
  
 = 
  
 await 
  
 client 
 . 
  operationsClient 
 
 . 
 getOperation 
 ({ 
  
 name 
 : 
  
 operationName 
 , 
  
 }); 
  
 console 
 . 
 info 
 ( 
 `Got operation 
 ${ 
 operation 
 . 
 name 
 } 
 .` 
 ); 
 } 
 getOperation 
 (); 
 
Design a Mobile Site
View Site in Mobile | Classic
Share by: