or run

tessl search
Log in

Version

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
golangpkg:golang/github.com/Azure/azure-sdk-for-go/sdk/data/azcosmos@v1.4.1
tile.json

tessl/golang-github-com-azure-azure-sdk-for-go-sdk-data-azcosmos

tessl install tessl/golang-github-com-azure-azure-sdk-for-go-sdk-data-azcosmos@1.4.1

Go SDK client library for interacting with Azure Cosmos DB SQL API

index.mddocs/

Azure Cosmos DB Go SDK

The Azure Cosmos DB Go SDK (azcosmos) provides a comprehensive client library for interacting with Azure Cosmos DB SQL API. It enables Go applications to create and manage databases, containers, and items with support for advanced features like transactional batches, patch operations, hierarchical partition keys, and flexible throughput provisioning.

Package Information

  • Package Name: github.com/Azure/azure-sdk-for-go/sdk/data/azcosmos
  • Package Type: golang
  • Language: Go
  • Version: v1.4.1
  • Installation: go get github.com/Azure/azure-sdk-for-go/sdk/data/azcosmos@v1.4.1

Core Imports

import (
    "github.com/Azure/azure-sdk-for-go/sdk/data/azcosmos"
    "github.com/Azure/azure-sdk-for-go/sdk/azcore"
    "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime"
    "context"
)

Basic Usage

import (
    "context"
    "encoding/json"
    "github.com/Azure/azure-sdk-for-go/sdk/data/azcosmos"
)

// Create client with account key
cred, err := azcosmos.NewKeyCredential("myAccountKey")
if err != nil {
    panic(err)
}

client, err := azcosmos.NewClientWithKey("https://myaccount.documents.azure.com:443/", cred, nil)
if err != nil {
    panic(err)
}

// Create a database
databaseProperties := azcosmos.DatabaseProperties{ID: "myDatabase"}
dbResp, err := client.CreateDatabase(context.Background(), databaseProperties, nil)
if err != nil {
    panic(err)
}

// Get database client
database, err := client.NewDatabase("myDatabase")
if err != nil {
    panic(err)
}

// Create a container
containerProperties := azcosmos.ContainerProperties{
    ID: "myContainer",
    PartitionKeyDefinition: azcosmos.PartitionKeyDefinition{
        Paths: []string{"/category"},
    },
}

containerResp, err := database.CreateContainer(context.Background(), containerProperties, nil)
if err != nil {
    panic(err)
}

// Get container client
container, err := database.NewContainer("myContainer")
if err != nil {
    panic(err)
}

// Create an item
item := map[string]interface{}{
    "id":       "item1",
    "category": "electronics",
    "name":     "Laptop",
    "price":    999.99,
}

marshalled, err := json.Marshal(item)
if err != nil {
    panic(err)
}

pk := azcosmos.NewPartitionKeyString("electronics")
itemResp, err := container.CreateItem(context.Background(), pk, marshalled, nil)
if err != nil {
    panic(err)
}

Capabilities

Client Creation & Authentication

Create Cosmos DB clients using Azure AD credentials, account keys, or connection strings.

func NewClient(endpoint string, cred azcore.TokenCredential, o *ClientOptions) (*Client, error)
func NewClientWithKey(endpoint string, cred KeyCredential, o *ClientOptions) (*Client, error)
func NewClientFromConnectionString(connectionString string, o *ClientOptions) (*Client, error)

Client Creation & Authentication

Database Operations

Create, read, delete, and query databases, including throughput management.

func (c *Client) CreateDatabase(ctx context.Context, databaseProperties DatabaseProperties, o *CreateDatabaseOptions) (DatabaseResponse, error)
func (c *Client) NewDatabase(id string) (*DatabaseClient, error)
func (db *DatabaseClient) Read(ctx context.Context, o *ReadDatabaseOptions) (DatabaseResponse, error)
func (db *DatabaseClient) Delete(ctx context.Context, o *DeleteDatabaseOptions) (DatabaseResponse, error)
func (c *Client) NewQueryDatabasesPager(query string, o *QueryDatabasesOptions) *runtime.Pager[QueryDatabasesResponse]

Database Operations

Container Operations

Create, read, update, delete, and query containers with configuration for indexing, partition keys, and throughput.

func (db *DatabaseClient) CreateContainer(ctx context.Context, containerProperties ContainerProperties, o *CreateContainerOptions) (ContainerResponse, error)
func (c *ContainerClient) Read(ctx context.Context, o *ReadContainerOptions) (ContainerResponse, error)
func (c *ContainerClient) Replace(ctx context.Context, containerProperties ContainerProperties, o *ReplaceContainerOptions) (ContainerResponse, error)
func (c *ContainerClient) Delete(ctx context.Context, o *DeleteContainerOptions) (ContainerResponse, error)

Container Operations

Item Operations

Perform CRUD operations on items including create, read, update, delete, upsert, and patch.

func (c *ContainerClient) CreateItem(ctx context.Context, partitionKey PartitionKey, item []byte, o *ItemOptions) (ItemResponse, error)
func (c *ContainerClient) ReadItem(ctx context.Context, partitionKey PartitionKey, itemId string, o *ItemOptions) (ItemResponse, error)
func (c *ContainerClient) ReplaceItem(ctx context.Context, partitionKey PartitionKey, itemId string, item []byte, o *ItemOptions) (ItemResponse, error)
func (c *ContainerClient) UpsertItem(ctx context.Context, partitionKey PartitionKey, item []byte, o *ItemOptions) (ItemResponse, error)
func (c *ContainerClient) DeleteItem(ctx context.Context, partitionKey PartitionKey, itemId string, o *ItemOptions) (ItemResponse, error)
func (c *ContainerClient) PatchItem(ctx context.Context, partitionKey PartitionKey, itemId string, ops PatchOperations, o *ItemOptions) (ItemResponse, error)

Item Operations

Query Operations

Execute SQL queries with parameterization, pagination, and limited cross-partition support.

func (c *ContainerClient) NewQueryItemsPager(query string, partitionKey PartitionKey, o *QueryOptions) *runtime.Pager[QueryItemsResponse]
func (c *DatabaseClient) NewQueryContainersPager(query string, o *QueryContainersOptions) *runtime.Pager[QueryContainersResponse]
func (c *Client) NewQueryDatabasesPager(query string, o *QueryDatabasesOptions) *runtime.Pager[QueryDatabasesResponse]

Query Operations

Transactional Batch Operations

Execute multiple operations atomically within a single partition.

func (c *ContainerClient) NewTransactionalBatch(partitionKey PartitionKey) TransactionalBatch
func (c *ContainerClient) ExecuteTransactionalBatch(ctx context.Context, b TransactionalBatch, o *TransactionalBatchOptions) (TransactionalBatchResponse, error)
func (b *TransactionalBatch) CreateItem(item []byte, o *TransactionalBatchItemOptions)
func (b *TransactionalBatch) ReadItem(itemID string, o *TransactionalBatchItemOptions)
func (b *TransactionalBatch) ReplaceItem(itemID string, item []byte, o *TransactionalBatchItemOptions)
func (b *TransactionalBatch) UpsertItem(item []byte, o *TransactionalBatchItemOptions)
func (b *TransactionalBatch) DeleteItem(itemID string, o *TransactionalBatchItemOptions)
func (b *TransactionalBatch) PatchItem(itemID string, p PatchOperations, o *TransactionalBatchItemOptions)

Transactional Batch Operations

Partition Key Management

Create and manage partition keys including hierarchical partition keys.

func NewPartitionKey() PartitionKey
func NewPartitionKeyString(value string) PartitionKey
func NewPartitionKeyNumber(value float64) PartitionKey
func NewPartitionKeyBool(value bool) PartitionKey
func (pk PartitionKey) AppendString(value string) PartitionKey
func (pk PartitionKey) AppendNumber(value float64) PartitionKey
func (pk PartitionKey) AppendBool(value bool) PartitionKey
func (pk PartitionKey) AppendNull() PartitionKey

Partition Key Management

Patch Operations

Perform partial document updates with add, replace, remove, set, and increment operations.

func (p *PatchOperations) AppendAdd(path string, value any)
func (p *PatchOperations) AppendReplace(path string, value any)
func (p *PatchOperations) AppendRemove(path string)
func (p *PatchOperations) AppendSet(path string, value any)
func (p *PatchOperations) AppendIncrement(path string, value int64)
func (p *PatchOperations) SetCondition(condition string)

Patch Operations

Throughput Management

Configure and manage manual and autoscale throughput provisioning for databases and containers.

func NewManualThroughputProperties(throughput int32) ThroughputProperties
func NewAutoscaleThroughputProperties(startingMaxThroughput int32) ThroughputProperties
func NewAutoscaleThroughputPropertiesWithIncrement(startingMaxThroughput int32, incrementPercentage int32) ThroughputProperties
func (db *DatabaseClient) ReadThroughput(ctx context.Context, o *ThroughputOptions) (ThroughputResponse, error)
func (db *DatabaseClient) ReplaceThroughput(ctx context.Context, throughputProperties ThroughputProperties, o *ThroughputOptions) (ThroughputResponse, error)

Throughput Management

Container Configuration

Configure containers with indexing policies, unique keys, conflict resolution, and TTL settings.

type ContainerProperties struct {
    ID                                 string
    PartitionKeyDefinition             PartitionKeyDefinition
    IndexingPolicy                     *IndexingPolicy
    DefaultTimeToLive                  *int32
    AnalyticalStoreTimeToLiveInSeconds *int32
    UniqueKeyPolicy                    *UniqueKeyPolicy
    ConflictResolutionPolicy           *ConflictResolutionPolicy
}

Container Configuration

Response Types & Options

Common response types, option structures, and enumerations used throughout the SDK.

type Response struct {
    RawResponse   *http.Response
    RequestCharge float32
    ActivityID    string
    ETag          azcore.ETag
}

type ClientOptions struct {
    azcore.ClientOptions
    EnableContentResponseOnWrite bool
    PreferredRegions             []string
}

Response Types & Options