Bibliotecas de cliente e SDK

Nesta página, você vai aprender a usar as bibliotecas de cliente do Cloud para a API Google Security Operations. As bibliotecas de cliente facilitam o acesso a Google Cloud APIs do em uma linguagem compatível. É possível usar as APIs doGoogle Cloud diretamente fazendo solicitações brutas ao servidor, mas as bibliotecas de cliente oferecem simplificações que reduzem significativamente a quantidade de código que você precisa escrever.

Saiba mais sobre as bibliotecas de cliente do Cloud e as bibliotecas de cliente de APIs do Google mais antigas em Explicação sobre as bibliotecas de cliente.

Instale a biblioteca de cliente

C++

Siga as Quickstart.

C#

Instale o pacote Google.Cloud.Chronicle.V1 pelo NuGet.

Para mais informações, consulte Como configurar um ambiente de desenvolvimento em C#.

Go

go get cloud.google.com/go/chronicle/apiv1

Para mais informações, consulte Como configurar um ambiente de desenvolvimento do Go.

Java

Se você estiver usando Maven, adicione o código abaixo ao arquivo pom.xml. Para mais informações sobre BOMs, consulte BOM das bibliotecas do Google Cloud Platform.

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.google.cloud</groupId>
      <artifactId>libraries-bom</artifactId>
      <version>26.83.0</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

<dependencies>
  <dependency>
    <groupId>com.google.cloud</groupId>
    <artifactId>google-cloud-chronicle</artifactId>
  </dependency>
</dependencies>

Se você estiver usando Gradle, adicione isto às dependências:

implementation 'com.google.cloud:google-cloud-chronicle:0.32.0'

Se você estiver usando sbt, adicione o seguinte às suas dependências:

libraryDependencies += "com.google.cloud" % "google-cloud-chronicle" % "0.32.0"

Para mais informações, consulte Como configurar um ambiente de desenvolvimento em Java.

Node.js

npm install @google-cloud/chronicle

Para mais informações, consulte Como configurar um ambiente de desenvolvimento em Node.js.

PHP

composer require google/cloud-chronicle

Para mais informações, consulte Como usar o PHP no Google Cloud.

Python

pip install --upgrade google-cloud-chronicle

Para mais informações, consulte Como configurar um ambiente de desenvolvimento em Python.

Ruby

gem install google-cloud-chronicle-v1

Para mais informações, consulte Como configurar um ambiente de desenvolvimento em Ruby.

Configurar a autenticação

Para autenticar chamadas às APIs do Google Cloud , as bibliotecas de cliente oferecem suporte a Application Default Credentials (ADC). As bibliotecas procuram credenciais em um conjunto de locais definidos e as usam para autenticar solicitações à API. Com o ADC, é possível disponibilizar credenciais ao aplicativo em uma variedade de ambientes, como de desenvolvimento ou produção local, sem precisar modificar o código do aplicativo.

Em ambientes de produção, a maneira como você configura o ADC depende do serviço e do contexto. Para mais informações, consulte Configurar o Application Default Credentials.

Para um ambiente de desenvolvimento local, é possível configurar o ADC com as credenciais associadas à sua Conta do Google:

  1. Instale a Google Cloud CLI. Após a instalação, inicialize a Google Cloud CLI executando o seguinte comando:

    gcloud init

    Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.

  2. Se você estiver usando um shell local, crie credenciais de autenticação local para sua conta de usuário:

    gcloud auth application-default login

    Não é necessário fazer isso se você estiver usando o Cloud Shell.

    Se um erro de autenticação for retornado e você estiver usando um provedor de identidade (IdP) externo, confirme se você fez login na CLI gcloud com sua identidade federada.

    Uma tela de login é exibida. Após o login, suas credenciais são armazenadas no arquivo de credenciais local usado pelo ADC.

Usar a biblioteca de cliente

O exemplo a seguir mostra como usar a biblioteca de cliente para listar a lista de referência.

C++

#include "google/cloud/chronicle/v1/chronicle_client.h"
#include "google/cloud/common_options.h"
#include <iostream>
#include <string>

int main(int argc, char* argv[]) {
  // TODO(developer): Replace these variables before running the sample.
  std::string const project_id = "";
  std::string const instance_id = "";
  std::string const location = "us"; 
  std::string const endpoint = "us-chronicle.googleapis.com";

  namespace chronicle = ::google::cloud::chronicle_v1;

  auto options = google::cloud::Options{}.set<google::cloud::EndpointOption>(endpoint);
  auto client = chronicle::ChronicleClient(chronicle::MakeChronicleConnection(options));

  // Construct the parent resource name
  // Format: projects/{project}/locations/{location}/instances/{instance}
  std::string parent = "projects/" + project_id + "/locations/" + location + "/instances/" + instance_id;

  google::cloud::chronicle::v1::ListReferenceListsRequest request;
  request.set_parent(parent);
  std::cout << "Listing reference lists for parent: " << parent << std::endl;
  for (auto const& reference_list : client.ListReferenceLists(request)) {
    if (!reference_list) {
      std::cerr << "Error listing reference lists: " << reference_list.status().message() << std::endl;
      return 1;
    }
    std::cout << "Name: " << reference_list->name() <<std::endl;
    std::cout << "Display Name: " << reference_list->display_name() << std::endl;
  }
  return 0;
}

C#

using Google.Cloud.Chronicle.V1;

// TODO(developer): Replace these variables before running the sample.
const string project  = "";
const string location = "us";
const string instance = "";
const string endpoint = "us-chronicle.googleapis.com";

ReferenceListServiceClient client = new ReferenceListServiceClientBuilder
{
  Endpoint = endpoint,
}.Build();

string parent = InstanceName.FromProjectLocationInstance(project, location, instance).ToString();

foreach (ReferenceList referenceList in client.ListReferenceLists(parent))
{
  Console.WriteLine($"Name:        {referenceList.Name}");
  Console.WriteLine($"Description: {referenceList.Description}");
}

Go

package main
import (
  "context"
  "fmt"
  "log"
  chronicle "cloud.google.com/go/chronicle/apiv1"
  chroniclepb "cloud.google.com/go/chronicle/apiv1/chroniclepb"
  "google.golang.org/api/iterator"
  "google.golang.org/api/option"
)

// TODO(developer): Replace these variables before running the sample.
const (
  project    = ""
  location   = "us"
  instance   = ""
  apiEndpoint = "us-chronicle.googleapis.com:443"
)

func main() {
  ctx := context.Background()
  client, err := chronicle.NewReferenceListClient(ctx, option.WithEndpoint(apiEndpoint),)
  if err != nil {
    log.Fatalf("failed to create client: %v", err)
  }
  defer client.Close()

  parent := fmt.Sprintf("projects/%s/locations/%s/instances/%s", project, location, instance)

  req := &chroniclepb.ListReferenceListsRequest{
    Parent: parent,
  }

  it := client.ListReferenceLists(ctx, req)
  for {
    resp, err := it.Next()
    if err == iterator.Done {
      break
    }
    if err != nil {
      log.Fatalf("error listing reference lists: %v", err)
    }
    fmt.Printf("Name: %s\n", resp.GetName())
    fmt.Printf("Description: %s\n", resp.GetDescription())
    fmt.Printf("---\n")
    }
}

Java

package com.example;

import com.google.cloud.chronicle.v1.InstanceName;
import com.google.cloud.chronicle.v1.ReferenceList;
import com.google.cloud.chronicle.v1.ReferenceListServiceClient;
import com.google.cloud.chronicle.v1.ReferenceListServiceSettings;

public class ListReferenceLists {
  // TODO(developer): Replace these variables before running the sample.
  private static final String PROJECT  = "";
  private static final String LOCATION = "us";
  private static final String INSTANCE = "";
  private static final String ENDPOINT = "us-chronicle.googleapis.com:443";

  public static void main(String[] args) throws Exception {
    ReferenceListServiceSettings settings = ReferenceListServiceSettings.newBuilder().setEndpoint(ENDPOINT).build();

    try (ReferenceListServiceClient client = ReferenceListServiceClient.create(settings)) {
      String parent = InstanceName.of(PROJECT, LOCATION, INSTANCE).toString();
      for (ReferenceList referenceList : client.listReferenceLists(parent).iterateAll()) {
        System.out.println("Name:        " + referenceList.getName());
        System.out.println("Description: " + referenceList.getDescription());
        System.out.println("---");
      }
    }
  }
}

Node.js

'use strict';

function main(parent) {
  const {ReferenceListServiceClient} = require('@google-cloud/chronicle').v1;

  const chronicleClient = new ReferenceListServiceClient({
    apiEndpoint: 'us-chronicle.googleapis.com',
  });

  async function callListReferenceLists() {
    // TODO(developer): Replace these variables before running the sample.
    const request = {
      parent: 'projects/<project-number>/locations/us/instances/<instance-id>'
    };

    const iterable = chronicleClient.listReferenceListsAsync(request);
    for await (const response of iterable) {
        console.log(response);
    }
  }

  callListReferenceLists();
}

process.on('unhandledRejection', err=> {
  console.error(err.message);
  process.exitCode = 1;
});
main(...process.argv.slice(2));

PHP

use Google\ApiCore\ApiException;
use Google\ApiCore\PagedListResponse;
use Google\Cloud\Chronicle\V1\Client\ReferenceListServiceClient;
use Google\Cloud\Chronicle\V1\ListReferenceListsRequest;
use Google\Cloud\Chronicle\V1\ReferenceList;

// TODO(developer): Replace these variables before running the sample.
const PROJECT  = '';
const LOCATION = 'us';
const INSTANCE = '';
const ENDPOINT = 'us-chronicle.googleapis.com';

$client = new ReferenceListServiceClient([
    'apiEndpoint' => ENDPOINT,
]);

$parent = ReferenceListServiceClient::instanceName(PROJECT, LOCATION, INSTANCE);

$request = (new ListReferenceListsRequest())->setParent($parent);

try {
    /** @var PagedListResponse $response /
    $response = $client->listReferenceLists($request);

    /* @var ReferenceList $referenceList */
    foreach ($response as $referenceList) {
        printf('Name:        %s' . PHP_EOL, $referenceList->getName());
        printf('Description: %s' . PHP_EOL, $referenceList->getDescription());
        printf('---' . PHP_EOL);
    }
} catch (ApiException $ex) {
    printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
}

Python

from google.cloud import chronicle_v1

# TODO(developer): Replace these variables before running the sample.
PROJECT_ID = ""
LOCATION = "us"
INSTANCE_ID = ""

def list_reference_lists():
  client = chronicle_v1.ReferenceListServiceClient(client_options={"api_endpoint":"us-chronicle.googleapis.com"})
  parent = f"projects/{PROJECT_ID}/locations/{LOCATION}/instances/{INSTANCE_ID}"
  response = client.list_reference_lists(parent=parent)
  for reference_list in response:
    print(f"Name: {reference_list.name}")
    print(f"Display Name: {reference_list.display_name}")

if __name__=="__main__":
  list_reference_lists()

Ruby

require "google/cloud/chronicle/v1"

# TODO(developer): Replace these variables before running the sample.
PROJECT_ID  = ""
LOCATION    = "us"
INSTANCE_ID = ""
ENDPOINT    = "us-chronicle.googleapis.com"

client = Google::Cloud::Chronicle::V1::ReferenceListService::Client.new do |config|
  config.endpoint = ENDPOINT
end

parent = "projects/#{PROJECT_ID}/locations/#{LOCATION}/instances/#{INSTANCE_ID}"

request = Google::Cloud::Chronicle::V1::ListReferenceListsRequest.new(parent: parent)

begin
  response = client.list_reference_lists request

  response.each do |reference_list|
    puts "Name:        #{reference_list.name}"
    puts "Description: #{reference_list.description}"
  end
rescue Google::Cloud::Error => e
  puts "API call failed: #{e.message}"
end

Outros recursos

C++

A lista a seguir contém links para mais recursos relacionados à biblioteca de cliente para C++:

C#

Confira na lista a seguir os links para mais recursos relacionados à biblioteca de cliente para C#:

Go

Confira na lista a seguir os links para mais recursos relacionados à biblioteca de cliente para Go:

Java

Confira na lista a seguir os links para mais recursos relacionados à biblioteca de cliente para Java:

Node.js

Confira na lista a seguir os links para mais recursos relacionados à biblioteca de cliente para Node.js:

PHP

Confira na lista a seguir os links para mais recursos relacionados à biblioteca de cliente para PHP:

Python

Confira na lista a seguir os links para mais recursos relacionados à biblioteca de cliente para Python:

Ruby

Confira na lista a seguir os links para mais recursos relacionados à biblioteca de cliente para Ruby: