github.com/newrelic/newrelic-client-go@v1.1.0/pkg/workloads/example_basic_test.go (about) 1 //go:build integration 2 // +build integration 3 4 package workloads 5 6 import ( 7 "fmt" 8 "log" 9 "os" 10 11 "github.com/newrelic/newrelic-client-go/pkg/common" 12 "github.com/newrelic/newrelic-client-go/pkg/config" 13 ) 14 15 func Example_basic() { 16 // Initialize the client configuration. A Personal API key is required to 17 // communicate with the backend API. 18 cfg := config.New() 19 cfg.PersonalAPIKey = os.Getenv("NEW_RELIC_API_KEY") 20 21 // Initialize the client. 22 client := New(cfg) 23 24 accountID := 12345678 25 entityGUID := common.EntityGUID("MjUwODy1OXxOUjF8V097S0xPQ3R8ODcz") 26 27 // Create a new workload. 28 createInput := WorkloadCreateInput{ 29 Name: "Example workload", 30 EntityGUIDs: []common.EntityGUID{entityGUID}, 31 EntitySearchQueries: []WorkloadEntitySearchQueryInput{ 32 { 33 Query: fmt.Sprintf("(accountId IN ('%d')) AND (((name like 'Example application' or id = 'Example application' or domainId = 'Example application')))", accountID), 34 }, 35 }, 36 } 37 38 workload, err := client.WorkloadCreate(accountID, createInput) 39 if err != nil { 40 log.Fatal("error creating workload: ", err) 41 } 42 43 // Duplicate an existing workload. 44 duplicate, err := client.WorkloadDuplicate(accountID, workload.GUID, WorkloadDuplicateInput{ 45 Name: workload.Name + "-duplicate", 46 }) 47 if err != nil { 48 log.Fatal("error duplicating workload: ", err) 49 } 50 51 // Update an existing workload. 52 workloadName := "Example updated workload" 53 updateInput := WorkloadUpdateInput{ 54 Name: workloadName, 55 } 56 57 updated, err := client.WorkloadUpdate(duplicate.GUID, updateInput) 58 if err != nil { 59 log.Fatal("error updating workload: ", err) 60 } 61 62 // Delete an existing workload. 63 _, err = client.WorkloadDelete(updated.GUID) 64 if err != nil { 65 log.Fatal("error deleting workload: ", err) 66 } 67 }