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  }