gocb

package module
v2.9.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 26, 2024 License: Apache-2.0 Imports: 44 Imported by: 167

README

GoDoc

Couchbase Go Client

The Go SDK library allows you to connect to a Couchbase cluster from Go. It is written in pure Go, and uses the included gocbcore library to handle communicating to the cluster over the Couchbase binary protocol.

Source

The project source is hosted at https://github.com/couchbase/gocb.

Documentation

You can explore our API reference through godoc at https://pkg.go.dev/github.com/couchbase/gocb.

You can also find documentation for the Go SDK on the official Couchbase docs.

Bug Tracker

Issues are tracked on Couchbase's public issues.couchbase.com. Contact the site admins regarding login or other problems at issues.couchbase.com (officially) or ask around on the forum (unofficially).

Discussion

You can chat with us on Discord or the official Couchbase forums.

Installing

To install the latest stable version, run:

go get github.com/couchbase/gocb/v2@latest

To install the latest developer version, run:

go get github.com/couchbase/gocb/v2@master

Testing

You can run tests in the usual Go way:

go test -race ./...

Which will execute both the unit test suite and the integration test suite. By default, the integration test suite is run against a mock Couchbase Server. See the testmain_test.go file for information on command line arguments for running tests against a real server instance.

Release train

Releases are targeted for every third Tuesday of the month. This is subject to change based on priorities.

Linting

Linting is performed used golangci-lint. To run:

make lint

License

Copyright 2016 Couchbase Inc.

Licensed under the Apache License, Version 2.0.

See LICENSE for further details.

Documentation

Index

Constants

View Source
const (
	// TransactionAttemptStateNothingWritten indicates that nothing has been written in this attempt.
	// Internal: This should never be used and is not supported.
	TransactionAttemptStateNothingWritten = TransactionAttemptState(gocbcore.TransactionAttemptStateNothingWritten)

	// TransactionAttemptStatePending indicates that this attempt is in pending state.
	// Internal: This should never be used and is not supported.
	TransactionAttemptStatePending = TransactionAttemptState(gocbcore.TransactionAttemptStatePending)

	// TransactionAttemptStateCommitting indicates that this attempt is in committing state.
	// Internal: This should never be used and is not supported.
	TransactionAttemptStateCommitting = TransactionAttemptState(gocbcore.TransactionAttemptStateCommitting)

	// TransactionAttemptStateCommitted indicates that this attempt is in committed state.
	// Internal: This should never be used and is not supported.
	TransactionAttemptStateCommitted = TransactionAttemptState(gocbcore.TransactionAttemptStateCommitted)

	// TransactionAttemptStateCompleted indicates that this attempt is in completed state.
	// Internal: This should never be used and is not supported.
	TransactionAttemptStateCompleted = TransactionAttemptState(gocbcore.TransactionAttemptStateCompleted)

	// TransactionAttemptStateAborted indicates that this attempt is in aborted state.
	// Internal: This should never be used and is not supported.
	TransactionAttemptStateAborted = TransactionAttemptState(gocbcore.TransactionAttemptStateAborted)

	// TransactionAttemptStateRolledBack indicates that this attempt is in rolled back state.
	// Internal: This should never be used and is not supported.
	TransactionAttemptStateRolledBack = TransactionAttemptState(gocbcore.TransactionAttemptStateRolledBack)
)
View Source
const (
	// TransactionErrorReasonSuccess indicates the transaction succeeded and did not fail.
	TransactionErrorReasonSuccess TransactionErrorReason = TransactionErrorReason(gocbcore.TransactionErrorReasonSuccess)

	// TransactionErrorReasonTransactionFailed indicates the transaction should be failed because it failed.
	TransactionErrorReasonTransactionFailed = TransactionErrorReason(gocbcore.TransactionErrorReasonTransactionFailed)

	// TransactionErrorReasonTransactionExpired indicates the transaction should be failed because it expired.
	TransactionErrorReasonTransactionExpired = TransactionErrorReason(gocbcore.TransactionErrorReasonTransactionExpired)

	// TransactionErrorReasonTransactionCommitAmbiguous indicates the transaction should be failed and the commit was ambiguous.
	TransactionErrorReasonTransactionCommitAmbiguous = TransactionErrorReason(gocbcore.TransactionErrorReasonTransactionCommitAmbiguous)

	// TransactionErrorReasonTransactionFailedPostCommit indicates the transaction should be failed because it failed post commit.
	TransactionErrorReasonTransactionFailedPostCommit = TransactionErrorReason(gocbcore.TransactionErrorReasonTransactionFailedPostCommit)
)

Variables

View Source
var (
	// ErrTimeout occurs when an operation does not receive a response in a timely manner.
	ErrTimeout = gocbcore.ErrTimeout

	// ErrRequestCanceled occurs when an operation has been canceled.
	ErrRequestCanceled = gocbcore.ErrRequestCanceled

	// ErrInvalidArgument occurs when an invalid argument is provided for an operation.
	ErrInvalidArgument = gocbcore.ErrInvalidArgument

	// ErrServiceNotAvailable occurs when the requested service is not available.
	ErrServiceNotAvailable = gocbcore.ErrServiceNotAvailable

	// ErrInternalServerFailure occurs when the server encounters an internal server error.
	ErrInternalServerFailure = gocbcore.ErrInternalServerFailure

	// ErrAuthenticationFailure occurs when authentication has failed.
	ErrAuthenticationFailure = gocbcore.ErrAuthenticationFailure

	// ErrTemporaryFailure occurs when an operation has failed for a reason that is temporary.
	ErrTemporaryFailure = gocbcore.ErrTemporaryFailure

	// ErrParsingFailure occurs when a query has failed to be parsed by the server.
	ErrParsingFailure = gocbcore.ErrParsingFailure

	// ErrCasMismatch occurs when an operation has been performed with a cas value that does not the value on the server.
	ErrCasMismatch = gocbcore.ErrCasMismatch

	// ErrBucketNotFound occurs when the requested bucket could not be found.
	ErrBucketNotFound = gocbcore.ErrBucketNotFound

	// ErrCollectionNotFound occurs when the requested collection could not be found.
	ErrCollectionNotFound = gocbcore.ErrCollectionNotFound

	// ErrEncodingFailure occurs when encoding of a value failed.
	ErrEncodingFailure = gocbcore.ErrEncodingFailure

	// ErrDecodingFailure occurs when decoding of a value failed.
	ErrDecodingFailure = gocbcore.ErrDecodingFailure

	// ErrUnsupportedOperation occurs when an operation that is unsupported or unknown is performed against the server.
	ErrUnsupportedOperation = gocbcore.ErrUnsupportedOperation

	// ErrAmbiguousTimeout occurs when an operation does not receive a response in a timely manner, and it cannot be
	// established whether the operation has mutated any data.
	ErrAmbiguousTimeout = gocbcore.ErrAmbiguousTimeout

	// ErrUnambiguousTimeout occurs when an operation does not receive a response in a timely manner, and we are
	// confident that the operation has not mutated any data.
	ErrUnambiguousTimeout = gocbcore.ErrUnambiguousTimeout

	// ErrFeatureNotAvailable occurs when an operation is performed on a bucket which does not support it.
	ErrFeatureNotAvailable = gocbcore.ErrFeatureNotAvailable

	// ErrScopeNotFound occurs when the requested scope could not be found.
	ErrScopeNotFound = gocbcore.ErrScopeNotFound

	// ErrIndexNotFound occurs when the requested index could not be found.
	ErrIndexNotFound = gocbcore.ErrIndexNotFound

	// ErrIndexExists occurs when creating an index that already exists.
	ErrIndexExists = gocbcore.ErrIndexExists

	// ErrRateLimitedFailure occurs when a request is rate limited by the server.
	ErrRateLimitedFailure = gocbcore.ErrRateLimitedFailure

	// ErrQuotaLimitedFailure occurs when a request triggers a resource to exceed the allowed quota.
	ErrQuotaLimitedFailure = gocbcore.ErrQuotaLimitedFailure
)

Shared Error Definitions RFC#58@15

View Source
var (
	// ErrDocumentNotFound occurs when the requested document could not be found.
	ErrDocumentNotFound = gocbcore.ErrDocumentNotFound

	// ErrDocumentUnretrievable occurs when GetAnyReplica cannot find the document on any replica.
	ErrDocumentUnretrievable = gocbcore.ErrDocumentUnretrievable

	// ErrDocumentLocked occurs when a mutation operation is attempted against a document that is locked.
	ErrDocumentLocked = gocbcore.ErrDocumentLocked

	// ErrValueTooLarge occurs when a document has gone over the maximum size allowed by the server.
	ErrValueTooLarge = gocbcore.ErrValueTooLarge

	// ErrDocumentExists occurs when an attempt is made to insert a document but a document with that key already exists.
	ErrDocumentExists = gocbcore.ErrDocumentExists

	// ErrValueNotJSON occurs when a sub-document operation is performed on a
	// document which is not JSON.
	ErrValueNotJSON = gocbcore.ErrValueNotJSON

	// ErrDurabilityLevelNotAvailable occurs when an invalid durability level was requested.
	ErrDurabilityLevelNotAvailable = gocbcore.ErrDurabilityLevelNotAvailable

	// ErrDurabilityImpossible occurs when a request is performed with impossible
	// durability level requirements.
	ErrDurabilityImpossible = gocbcore.ErrDurabilityImpossible

	// ErrDurabilityAmbiguous occurs when an SyncWrite does not complete in the specified
	// time and the result is ambiguous.
	ErrDurabilityAmbiguous = gocbcore.ErrDurabilityAmbiguous

	// ErrDurableWriteInProgress occurs when an attempt is made to write to a key that has
	// a SyncWrite pending.
	ErrDurableWriteInProgress = gocbcore.ErrDurableWriteInProgress

	// ErrDurableWriteReCommitInProgress occurs when an SyncWrite is being recommitted.
	ErrDurableWriteReCommitInProgress = gocbcore.ErrDurableWriteReCommitInProgress

	// ErrMutationLost occurs when a mutation was lost.
	ErrMutationLost = gocbcore.ErrMutationLost

	// ErrPathNotFound occurs when a sub-document operation targets a path
	// which does not exist in the specified document.
	ErrPathNotFound = gocbcore.ErrPathNotFound

	// ErrPathMismatch occurs when a sub-document operation specifies a path
	// which does not match the document structure (field access on an array).
	ErrPathMismatch = gocbcore.ErrPathMismatch

	// ErrPathInvalid occurs when a sub-document path could not be parsed.
	ErrPathInvalid = gocbcore.ErrPathInvalid

	// ErrPathTooBig occurs when a sub-document path is too big.
	ErrPathTooBig = gocbcore.ErrPathTooBig

	// ErrPathTooDeep occurs when an operation would cause a document to be
	// nested beyond the depth limits allowed by the sub-document specification.
	ErrPathTooDeep = gocbcore.ErrPathTooDeep

	// ErrValueTooDeep occurs when a sub-document operation specifies a value
	// which is deeper than the depth limits of the sub-document specification.
	ErrValueTooDeep = gocbcore.ErrValueTooDeep

	// ErrValueInvalid occurs when a sub-document operation could not insert.
	ErrValueInvalid = gocbcore.ErrValueInvalid

	// ErrDocumentNotJSON occurs when a sub-document operation is performed on a
	// document which is not JSON.
	ErrDocumentNotJSON = gocbcore.ErrDocumentNotJSON

	// ErrNumberTooBig occurs when a sub-document operation is performed with
	// a bad range.
	ErrNumberTooBig = gocbcore.ErrNumberTooBig

	// ErrDeltaInvalid occurs when a sub-document counter operation is performed
	// and the specified delta is not valid.
	ErrDeltaInvalid = gocbcore.ErrDeltaInvalid

	// ErrPathExists occurs when a sub-document operation expects a path not
	// to exists, but the path was found in the document.
	ErrPathExists = gocbcore.ErrPathExists

	// ErrXattrUnknownMacro occurs when an invalid macro value is specified.
	ErrXattrUnknownMacro = gocbcore.ErrXattrUnknownMacro

	// ErrXattrInvalidFlagCombo occurs when an invalid set of
	// extended-attribute flags is passed to a sub-document operation.
	ErrXattrInvalidFlagCombo = gocbcore.ErrXattrInvalidFlagCombo

	// ErrXattrInvalidKeyCombo occurs when an invalid set of key operations
	// are specified for a extended-attribute sub-document operation.
	ErrXattrInvalidKeyCombo = gocbcore.ErrXattrInvalidKeyCombo

	// ErrXattrUnknownVirtualAttribute occurs when an invalid virtual attribute is specified.
	ErrXattrUnknownVirtualAttribute = gocbcore.ErrXattrUnknownVirtualAttribute

	// ErrXattrCannotModifyVirtualAttribute occurs when a mutation is attempted upon
	// a virtual attribute (which are immutable by definition).
	ErrXattrCannotModifyVirtualAttribute = gocbcore.ErrXattrCannotModifyVirtualAttribute

	// ErrXattrInvalidOrder occurs when a set key key operations are specified for a extended-attribute sub-document
	// operation in the incorrect order.
	ErrXattrInvalidOrder = gocbcore.ErrXattrInvalidOrder

	// ErrMutationTokenOutdated occurs when snapshot requirements are specified but the requirements do not align with
	// the server.
	ErrMutationTokenOutdated = gocbcore.ErrRangeScanVbUUIDNotEqual

	// ErrDocumentNotLocked occurs when unlock is called on a document that is not locked.
	// # UNCOMMITTED: This API may change in the future.
	ErrDocumentNotLocked = gocbcore.ErrDocumentNotLocked
)

Key Value Error Definitions RFC#58@15

View Source
var (
	// ErrPlanningFailure occurs when the query service was unable to create a query plan.
	ErrPlanningFailure = gocbcore.ErrPlanningFailure

	// ErrIndexFailure occurs when there was an issue with the index specified.
	ErrIndexFailure = gocbcore.ErrIndexFailure

	// ErrPreparedStatementFailure occurs when there was an issue with the prepared statement.
	ErrPreparedStatementFailure = gocbcore.ErrPreparedStatementFailure
)

Query Error Definitions RFC#58@15

View Source
var (
	// ErrCompilationFailure occurs when there was an issue executing the analytics query because it could not
	// be compiled.
	ErrCompilationFailure = gocbcore.ErrCompilationFailure

	// ErrJobQueueFull occurs when the analytics service job queue is full.
	ErrJobQueueFull = gocbcore.ErrJobQueueFull

	// ErrDatasetNotFound occurs when the analytics dataset requested could not be found.
	ErrDatasetNotFound = gocbcore.ErrDatasetNotFound

	// ErrDataverseNotFound occurs when the analytics dataverse requested could not be found.
	ErrDataverseNotFound = gocbcore.ErrDataverseNotFound

	// ErrDatasetExists occurs when creating an analytics dataset failed because it already exists.
	ErrDatasetExists = gocbcore.ErrDatasetExists

	// ErrDataverseExists occurs when creating an analytics dataverse failed because it already exists.
	ErrDataverseExists = gocbcore.ErrDataverseExists

	// ErrLinkNotFound occurs when the analytics link requested could not be found.
	ErrLinkNotFound = gocbcore.ErrLinkNotFound

	// ErrAnalyticsLinkExists occurs when the analytics link already exists.
	ErrAnalyticsLinkExists = errors.New("analytics clink already exists")
)

Analytics Error Definitions RFC#58@15

View Source
var (
	// ErrViewNotFound occurs when the view requested could not be found.
	ErrViewNotFound = gocbcore.ErrViewNotFound

	// ErrDesignDocumentNotFound occurs when the design document requested could not be found.
	ErrDesignDocumentNotFound = gocbcore.ErrDesignDocumentNotFound
)

View Error Definitions RFC#58@15

View Source
var (
	// ErrCollectionExists occurs when creating a collection failed because it already exists.
	ErrCollectionExists = gocbcore.ErrCollectionExists

	// ErrScopeExists occurs when creating a scope failed because it already exists.
	ErrScopeExists = gocbcore.ErrScopeExists

	// ErrUserNotFound occurs when the user requested could not be found.
	ErrUserNotFound = gocbcore.ErrUserNotFound

	// ErrGroupNotFound occurs when the group requested could not be found.
	ErrGroupNotFound = gocbcore.ErrGroupNotFound

	// ErrBucketExists occurs when creating a bucket failed because it already exists.
	ErrBucketExists = gocbcore.ErrBucketExists

	// ErrUserExists occurs when creating a user failed because it already exists.
	ErrUserExists = gocbcore.ErrUserExists

	// ErrBucketNotFlushable occurs when a bucket could not be flushed because flushing is not enabled.
	ErrBucketNotFlushable = gocbcore.ErrBucketNotFlushable

	// ErrEventingFunctionNotFound occurs when the eventing function requested could not be found.
	ErrEventingFunctionNotFound = gocbcore.ErrEventingFunctionNotFound

	// ErrEventingFunctionNotDeployed occurs when the eventing function requested is not deployed.
	ErrEventingFunctionNotDeployed = gocbcore.ErrEventingFunctionNotDeployed

	// ErrEventingFunctionCompilationFailure occurs when the eventing function requested could not be compiled.
	ErrEventingFunctionCompilationFailure = gocbcore.ErrEventingFunctionCompilationFailure

	// ErrEventingFunctionIdenticalKeyspace occurs when the eventing function requested uses the same keyspace for source and metadata.
	ErrEventingFunctionIdenticalKeyspace = gocbcore.ErrEventingFunctionIdenticalKeyspace

	// ErrEventingFunctionNotBootstrapped occurs when the eventing function requested is not bootstrapped.
	ErrEventingFunctionNotBootstrapped = gocbcore.ErrEventingFunctionNotBootstrapped

	// ErrEventingFunctionDeployed occurs when the eventing function requested is not undeployed.
	ErrEventingFunctionDeployed = gocbcore.ErrEventingFunctionNotUndeployed
)

Management Error Definitions RFC#58@15

View Source
var (
	// ErrOverload occurs when too many operations are dispatched and all queues are full.
	ErrOverload = gocbcore.ErrOverload

	// ErrNoResult occurs when no results are available to a query.
	ErrNoResult = errors.New("no result was available")

	// ErrCircuitBreakerOpen occurs when the operation was cancelled because the circuit breaker was open
	// # UNCOMMITTED: This API may change in the future.
	ErrCircuitBreakerOpen = gocbcore.ErrCircuitBreakerOpen

	// ErrDocumentTooDeep occurs when an operation would cause a document to be
	// nested beyond the depth limits allowed by the sub-document specification.
	// This error occurs when couchbase2 scheme is in use and is equivalent to
	// ErrPathTooDeep when other schemes are used.
	ErrDocumentTooDeep = errors.New("document too deep")

	ErrShutdown = errors.New("cluster closed")
)

SDK specific error definitions

View Source
var (
	// ErrOther indicates an non-specific error has occured.
	ErrOther = gocbcore.ErrOther

	// ErrTransient indicates a transient error occured which may succeed at a later point in time.
	ErrTransient = gocbcore.ErrTransient

	// ErrWriteWriteConflict indicates that another transaction conflicted with this one.
	ErrWriteWriteConflict = gocbcore.ErrWriteWriteConflict

	// ErrHard indicates that an unrecoverable error occured.
	ErrHard = gocbcore.ErrHard

	// ErrAmbiguous indicates that a failure occured but the outcome was not known.
	ErrAmbiguous = gocbcore.ErrAmbiguous

	// ErrAtrFull indicates that the ATR record was too full to accept a new mutation.
	ErrAtrFull = gocbcore.ErrAtrFull

	// ErrAttemptExpired indicates an transactionAttempt expired
	ErrAttemptExpired = gocbcore.ErrAttemptExpired

	// ErrAtrNotFound indicates that an expected ATR document was missing
	ErrAtrNotFound = gocbcore.ErrAtrNotFound

	// ErrAtrEntryNotFound indicates that an expected ATR entry was missing
	ErrAtrEntryNotFound = gocbcore.ErrAtrEntryNotFound

	// ErrDocAlreadyInTransaction indicates that a document is already in a transaction.
	ErrDocAlreadyInTransaction = gocbcore.ErrDocAlreadyInTransaction

	// ErrTransactionAbortedExternally indicates the transaction was aborted externally.
	ErrTransactionAbortedExternally = gocbcore.ErrTransactionAbortedExternally

	// ErrPreviousOperationFailed indicates a previous operation already failed.
	ErrPreviousOperationFailed = gocbcore.ErrPreviousOperationFailed

	// ErrForwardCompatibilityFailure indicates an operation failed due to involving a document in another transaction
	// which contains features this transaction does not support.
	ErrForwardCompatibilityFailure = gocbcore.ErrForwardCompatibilityFailure

	// ErrIllegalState is used for when a transaction enters an illegal State.
	ErrIllegalState = gocbcore.ErrIllegalState

	ErrAttemptNotFoundOnQuery = errors.New("transactionAttempt not found on query")
)
View Source
var (
	// UnknownRetryReason indicates that the operation failed for an unknown reason.
	UnknownRetryReason = RetryReason(gocbcore.UnknownRetryReason)

	// SocketNotAvailableRetryReason indicates that the operation failed because the underlying socket was not available.
	SocketNotAvailableRetryReason = RetryReason(gocbcore.SocketNotAvailableRetryReason)

	// ServiceNotAvailableRetryReason indicates that the operation failed because the requested service was not available.
	ServiceNotAvailableRetryReason = RetryReason(gocbcore.ServiceNotAvailableRetryReason)

	// NodeNotAvailableRetryReason indicates that the operation failed because the requested node was not available.
	NodeNotAvailableRetryReason = RetryReason(gocbcore.NodeNotAvailableRetryReason)

	// KVNotMyVBucketRetryReason indicates that the operation failed because it was sent to the wrong node for the vbucket.
	KVNotMyVBucketRetryReason = RetryReason(gocbcore.KVNotMyVBucketRetryReason)

	// KVCollectionOutdatedRetryReason indicates that the operation failed because the collection ID on the request is outdated.
	KVCollectionOutdatedRetryReason = RetryReason(gocbcore.KVCollectionOutdatedRetryReason)

	// KVErrMapRetryReason indicates that the operation failed for an unsupported reason but the KV error map indicated
	// that the operation can be retried.
	KVErrMapRetryReason = RetryReason(gocbcore.KVErrMapRetryReason)

	// KVLockedRetryReason indicates that the operation failed because the document was locked.
	KVLockedRetryReason = RetryReason(gocbcore.KVLockedRetryReason)

	// KVTemporaryFailureRetryReason indicates that the operation failed because of a temporary failure.
	KVTemporaryFailureRetryReason = RetryReason(gocbcore.KVTemporaryFailureRetryReason)

	// KVSyncWriteInProgressRetryReason indicates that the operation failed because a sync write is in progress.
	KVSyncWriteInProgressRetryReason = RetryReason(gocbcore.KVSyncWriteInProgressRetryReason)

	// KVSyncWriteRecommitInProgressRetryReason indicates that the operation failed because a sync write recommit is in progress.
	KVSyncWriteRecommitInProgressRetryReason = RetryReason(gocbcore.KVSyncWriteRecommitInProgressRetryReason)

	// ServiceResponseCodeIndicatedRetryReason indicates that the operation failed and the service responded stating that
	// the request should be retried.
	ServiceResponseCodeIndicatedRetryReason = RetryReason(gocbcore.ServiceResponseCodeIndicatedRetryReason)

	// SocketCloseInFlightRetryReason indicates that the operation failed because the socket was closed whilst the operation
	// was in flight.
	SocketCloseInFlightRetryReason = RetryReason(gocbcore.SocketCloseInFlightRetryReason)

	// CircuitBreakerOpenRetryReason indicates that the operation failed because the circuit breaker on the connection
	// was open.
	CircuitBreakerOpenRetryReason = RetryReason(gocbcore.CircuitBreakerOpenRetryReason)

	// QueryIndexNotFoundRetryReason indicates that the operation failed to to a missing query index
	QueryIndexNotFoundRetryReason = RetryReason(gocbcore.QueryIndexNotFoundRetryReason)

	// QueryPreparedStatementFailureRetryReason indicates that the operation failed due to a prepared statement failure
	QueryPreparedStatementFailureRetryReason = RetryReason(gocbcore.QueryPreparedStatementFailureRetryReason)

	// AnalyticsTemporaryFailureRetryReason indicates that an analytics operation failed due to a temporary failure
	AnalyticsTemporaryFailureRetryReason = RetryReason(gocbcore.AnalyticsTemporaryFailureRetryReason)

	// SearchTooManyRequestsRetryReason indicates that a search operation failed due to too many requests
	SearchTooManyRequestsRetryReason = RetryReason(gocbcore.SearchTooManyRequestsRetryReason)

	// QueryErrorRetryable indicates that the operation is retryable as indicated by the query engine.
	// Uncommitted: This API may change in the future.
	QueryErrorRetryable = RetryReason(gocbcore.QueryErrorRetryable)

	// NotReadyRetryReason indicates the SDK connections are not setup and ready to be used.
	NotReadyRetryReason = RetryReason(gocbcore.NotReadyRetryReason)
)

Functions

func Identifier

func Identifier() string

Identifier returns a string representation of the current SDK identifier.

func SetLogRedactionLevel

func SetLogRedactionLevel(level LogRedactLevel)

SetLogRedactionLevel specifies the level with which logs should be redacted.

func SetLogger

func SetLogger(logger Logger)

SetLogger sets a logger to be used by the library. A logger can be obtained via the DefaultStdioLogger() or VerboseStdioLogger() functions. You can also implement your own logger using the Logger interface.

func TransactionsProtocolExtensions added in v2.4.0

func TransactionsProtocolExtensions() []string

TransactionsProtocolExtensions returns a list strings representing the various features that this specific version of the library supports within its protocol version.

func TransactionsProtocolVersion added in v2.4.0

func TransactionsProtocolVersion() string

TransactionsProtocolVersion returns the protocol version that this library supports.

func Version

func Version() string

Version returns a string representation of the current SDK version.

Types

type AggregatingMeterOptions added in v2.3.0

type AggregatingMeterOptions struct {
	EmitInterval time.Duration
}

AggregatingMeterOptions is the set of options available when creating a LoggingMeter. Note that this function will soon be deprecated. Deprecated: See LoggingMeterOptions.

type AllowQueryingSearchIndexOptions

type AllowQueryingSearchIndexOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

AllowQueryingSearchIndexOptions is the set of options available to the search index AllowQuerying operation.

type AnalyticsDataset

type AnalyticsDataset struct {
	Name          string
	DataverseName string
	LinkName      string
	BucketName    string
}

AnalyticsDataset contains information about an analytics dataset.

type AnalyticsEncryptionLevel added in v2.3.0

type AnalyticsEncryptionLevel uint8
const (
	AnalyticsEncryptionLevelNone AnalyticsEncryptionLevel = iota
	AnalyticsEncryptionLevelHalf
	AnalyticsEncryptionLevelFull
)

func (AnalyticsEncryptionLevel) String added in v2.3.0

func (ael AnalyticsEncryptionLevel) String() string

type AnalyticsError

type AnalyticsError struct {
	InnerError      error                `json:"-"`
	Statement       string               `json:"statement,omitempty"`
	ClientContextID string               `json:"client_context_id,omitempty"`
	Errors          []AnalyticsErrorDesc `json:"errors,omitempty"`
	Endpoint        string               `json:"endpoint,omitempty"`
	RetryReasons    []RetryReason        `json:"retry_reasons,omitempty"`
	RetryAttempts   uint32               `json:"retry_attempts,omitempty"`
	ErrorText       string               `json:"error_text,omitempty"`
	HTTPStatusCode  int                  `json:"http_status_code,omitempty"`
}

AnalyticsError is the error type of all analytics query errors. UNCOMMITTED: This API may change in the future.

func (AnalyticsError) Error

func (e AnalyticsError) Error() string

Error returns the string representation of this error.

func (AnalyticsError) MarshalJSON added in v2.2.1

func (e AnalyticsError) MarshalJSON() ([]byte, error)

func (AnalyticsError) Unwrap

func (e AnalyticsError) Unwrap() error

Unwrap returns the underlying cause for this error.

type AnalyticsErrorDesc

type AnalyticsErrorDesc struct {
	Code    uint32
	Message string
}

AnalyticsErrorDesc represents a specific error returned from the analytics service.

type AnalyticsIndex

type AnalyticsIndex struct {
	Name          string
	DatasetName   string
	DataverseName string
	IsPrimary     bool
}

AnalyticsIndex contains information about an analytics index.

type AnalyticsIndexManager

type AnalyticsIndexManager struct {
	// contains filtered or unexported fields
}

AnalyticsIndexManager provides methods for performing Couchbase Analytics index management.

ConnectLink connects an analytics link.

func (*AnalyticsIndexManager) CreateDataset

func (am *AnalyticsIndexManager) CreateDataset(datasetName, bucketName string, opts *CreateAnalyticsDatasetOptions) error

CreateDataset creates a new analytics dataset.

func (*AnalyticsIndexManager) CreateDataverse

func (am *AnalyticsIndexManager) CreateDataverse(dataverseName string, opts *CreateAnalyticsDataverseOptions) error

CreateDataverse creates a new analytics dataset.

func (*AnalyticsIndexManager) CreateIndex

func (am *AnalyticsIndexManager) CreateIndex(datasetName, indexName string, fields map[string]string, opts *CreateAnalyticsIndexOptions) error

CreateIndex creates a new analytics dataset.

CreateLink creates an analytics link.

DisconnectLink disconnects an analytics link.

func (*AnalyticsIndexManager) DropDataset

func (am *AnalyticsIndexManager) DropDataset(datasetName string, opts *DropAnalyticsDatasetOptions) error

DropDataset drops an analytics dataset.

func (*AnalyticsIndexManager) DropDataverse

func (am *AnalyticsIndexManager) DropDataverse(dataverseName string, opts *DropAnalyticsDataverseOptions) error

DropDataverse drops an analytics dataset.

func (*AnalyticsIndexManager) DropIndex

func (am *AnalyticsIndexManager) DropIndex(datasetName, indexName string, opts *DropAnalyticsIndexOptions) error

DropIndex drops an analytics index.

func (am *AnalyticsIndexManager) DropLink(linkName, dataverseName string, opts *DropAnalyticsLinkOptions) error

DropLink removes an existing external analytics link from specified scope. dataverseName can be given in the form of "namepart" or "namepart1/namepart2". Only available against Couchbase Server 7.0+.

func (*AnalyticsIndexManager) GetAllDatasets

GetAllDatasets gets all analytics datasets.

func (*AnalyticsIndexManager) GetAllIndexes

GetAllIndexes gets all analytics indexes.

GetLinks retrieves all external or remote analytics links.

func (*AnalyticsIndexManager) GetPendingMutations

func (am *AnalyticsIndexManager) GetPendingMutations(opts *GetPendingMutationsAnalyticsOptions) (map[string]map[string]int, error)

GetPendingMutations returns the number of pending mutations for all indexes in the form of dataverse.dataset:mutations.

ReplaceLink modifies an existing analytics link.

type AnalyticsLink interface {
	// Name returns the name of this link.
	Name() string
	// DataverseName returns the name of the dataverse that this link belongs to.
	DataverseName() string
	// FormEncode encodes the link into a form data representation, to be sent as the body of a CreateLink or ReplaceLink
	// request.
	FormEncode() ([]byte, error)
	// Validate is used by CreateLink and ReplaceLink to ensure that the link is valid.
	Validate() error
	// LinkType returns the type of analytics type this link is.
	LinkType() AnalyticsLinkType
}

AnalyticsLink describes an external or remote analytics link, used to access data external to the cluster.

type AnalyticsLinkType added in v2.3.0

type AnalyticsLinkType string
const (
	AnalyticsLinkTypeS3External      AnalyticsLinkType = "s3"
	AnalyticsLinkTypeAzureExternal   AnalyticsLinkType = "azureblob"
	AnalyticsLinkTypeCouchbaseRemote AnalyticsLinkType = "couchbase"
)

type AnalyticsMetaData

type AnalyticsMetaData struct {
	RequestID       string
	ClientContextID string
	Metrics         AnalyticsMetrics
	Signature       interface{}
	Warnings        []AnalyticsWarning
}

AnalyticsMetaData provides access to the meta-data properties of a query result.

type AnalyticsMetrics

type AnalyticsMetrics struct {
	ElapsedTime      time.Duration
	ExecutionTime    time.Duration
	ResultCount      uint64
	ResultSize       uint64
	MutationCount    uint64
	SortCount        uint64
	ErrorCount       uint64
	WarningCount     uint64
	ProcessedObjects uint64
}

AnalyticsMetrics encapsulates various metrics gathered during a queries execution.

type AnalyticsOptions

type AnalyticsOptions struct {
	// ClientContextID provides a unique ID for this query which can be used matching up requests between connectionManager and
	// server. If not provided will be assigned a uuid value.
	ClientContextID string

	// Priority sets whether this query should be assigned as high priority by the analytics engine.
	Priority             bool
	PositionalParameters []interface{}
	NamedParameters      map[string]interface{}
	Readonly             bool
	ScanConsistency      AnalyticsScanConsistency

	// Raw provides a way to provide extra parameters in the request body for the query.
	Raw map[string]interface{}

	Timeout       time.Duration
	RetryStrategy RetryStrategy

	ParentSpan RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context

	// Internal: This should never be used and is not supported.
	Internal struct {
		User string
	}
}

AnalyticsOptions is the set of options available to an Analytics query.

type AnalyticsResult

type AnalyticsResult struct {
	// contains filtered or unexported fields
}

AnalyticsResult allows access to the results of a query.

func (*AnalyticsResult) Close

func (r *AnalyticsResult) Close() error

Close marks the results as closed, returning any errors that occurred during reading the results.

func (*AnalyticsResult) Err

func (r *AnalyticsResult) Err() error

Err returns any errors that have occurred on the stream

func (*AnalyticsResult) MetaData

func (r *AnalyticsResult) MetaData() (*AnalyticsMetaData, error)

MetaData returns any meta-data that was available from this query. Note that the meta-data will only be available once the object has been closed (either implicitly or explicitly).

func (*AnalyticsResult) Next

func (r *AnalyticsResult) Next() bool

Next assigns the next result from the results into the value pointer, returning whether the read was successful.

func (*AnalyticsResult) One

func (r *AnalyticsResult) One(valuePtr interface{}) error

One assigns the first value from the results into the value pointer. It will close the results but not before iterating through all remaining results, as such this should only be used for very small resultsets - ideally of, at most, length 1.

func (*AnalyticsResult) Raw added in v2.2.0

Raw returns a AnalyticsResult which can be used to access the raw byte data from search queries. Calling this function invalidates the underlying AnalyticsResult which will no longer be able to be used. VOLATILE: This API is subject to change at any time.

func (*AnalyticsResult) Row

func (r *AnalyticsResult) Row(valuePtr interface{}) error

Row returns the value of the current row

type AnalyticsResultRaw added in v2.2.0

type AnalyticsResultRaw struct {
	// contains filtered or unexported fields
}

AnalyticsResultRaw provides raw access to analytics query data. VOLATILE: This API is subject to change at any time.

func (*AnalyticsResultRaw) Close added in v2.2.0

func (arr *AnalyticsResultRaw) Close() error

Close marks the results as closed, returning any errors that occurred during reading the results.

func (*AnalyticsResultRaw) Err added in v2.2.0

func (arr *AnalyticsResultRaw) Err() error

Err returns any errors that have occurred on the stream

func (*AnalyticsResultRaw) MetaData added in v2.2.0

func (arr *AnalyticsResultRaw) MetaData() ([]byte, error)

MetaData returns any meta-data that was available from this query as bytes.

func (*AnalyticsResultRaw) NextBytes added in v2.2.0

func (arr *AnalyticsResultRaw) NextBytes() []byte

NextBytes returns the next row as bytes.

type AnalyticsScanConsistency

type AnalyticsScanConsistency uint

AnalyticsScanConsistency indicates the level of data consistency desired for an analytics query.

const (
	// AnalyticsScanConsistencyNotBounded indicates no data consistency is required.
	AnalyticsScanConsistencyNotBounded AnalyticsScanConsistency = iota + 1
	// AnalyticsScanConsistencyRequestPlus indicates that request-level data consistency is required.
	AnalyticsScanConsistencyRequestPlus
)

type AnalyticsWarning

type AnalyticsWarning struct {
	Code    uint32
	Message string
}

AnalyticsWarning encapsulates any warnings returned by a query.

type AnalyzeDocumentOptions

type AnalyzeDocumentOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

AnalyzeDocumentOptions is the set of options available to the search index AnalyzeDocument operation.

type AppendOp

type AppendOp struct {
	ID     string
	Value  string
	Result *MutationResult
	Err    error
	// contains filtered or unexported fields
}

AppendOp represents a type of `BulkOp` used for Append operations. See BulkOp. UNCOMMITTED: This API may change in the future.

type AppendOptions

type AppendOptions struct {
	Timeout         time.Duration
	DurabilityLevel DurabilityLevel
	PersistTo       uint
	ReplicateTo     uint
	Cas             Cas
	RetryStrategy   RetryStrategy
	ParentSpan      RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context

	// Internal: This should never be used and is not supported.
	Internal struct {
		User string
	}
}

AppendOptions are the options available to the Append operation.

type ArrayAddUniqueSpecOptions

type ArrayAddUniqueSpecOptions struct {
	CreatePath bool
	IsXattr    bool
}

ArrayAddUniqueSpecOptions are the options available to subdocument ArrayAddUnique operations.

type ArrayAppendSpecOptions

type ArrayAppendSpecOptions struct {
	CreatePath bool
	IsXattr    bool
	// HasMultiple adds multiple values as elements to an array.
	// When used `value` in the spec must be an array type
	// ArrayAppend("path", []int{1,2,3,4}, ArrayAppendSpecOptions{HasMultiple:true}) =>
	//   "path" [..., 1,2,3,4]
	//
	// This is a more efficient version (at both the network and server levels)
	// of doing
	// spec.ArrayAppend("path", 1, nil)
	// spec.ArrayAppend("path", 2, nil)
	// spec.ArrayAppend("path", 3, nil)
	HasMultiple bool
}

ArrayAppendSpecOptions are the options available to subdocument ArrayAppend operations.

type ArrayInsertSpecOptions

type ArrayInsertSpecOptions struct {
	CreatePath bool
	IsXattr    bool
	// HasMultiple adds multiple values as elements to an array.
	// When used `value` in the spec must be an array type
	// ArrayInsert("path[1]", []int{1,2,3,4}, ArrayInsertSpecOptions{HasMultiple:true}) =>
	//   "path" [..., 1,2,3,4]
	//
	// This is a more efficient version (at both the network and server levels)
	// of doing
	// spec.ArrayInsert("path[2]", 1, nil)
	// spec.ArrayInsert("path[3]", 2, nil)
	// spec.ArrayInsert("path[4]", 3, nil)
	HasMultiple bool
}

ArrayInsertSpecOptions are the options available to subdocument ArrayInsert operations.

type ArrayPrependSpecOptions

type ArrayPrependSpecOptions struct {
	CreatePath bool
	IsXattr    bool
	// HasMultiple adds multiple values as elements to an array.
	// When used `value` in the spec must be an array type
	// ArrayPrepend("path", []int{1,2,3,4}, ArrayPrependSpecOptions{HasMultiple:true}) =>
	//   "path" [1,2,3,4, ....]
	//
	// This is a more efficient version (at both the network and server levels)
	// of doing
	// spec.ArrayPrepend("path", 1, nil)
	// spec.ArrayPrepend("path", 2, nil)
	// spec.ArrayPrepend("path", 3, nil)
	HasMultiple bool
}

ArrayPrependSpecOptions are the options available to subdocument ArrayPrepend operations.

type AttemptFunc added in v2.4.0

type AttemptFunc func(*TransactionAttemptContext) error

AttemptFunc represents the lambda used by the Transactions Run function.

type AuthCertRequest

type AuthCertRequest struct {
	Service  ServiceType
	Endpoint string
}

AuthCertRequest encapsulates the data for a certificate request from the new Authenticator interface. VOLATILE: This API is subject to change at any time.

type AuthCredsRequest

type AuthCredsRequest struct {
	Service  ServiceType
	Endpoint string
}

AuthCredsRequest encapsulates the data for a credential request from the new Authenticator interface. VOLATILE: This API is subject to change at any time.

type AuthDomain

type AuthDomain string

AuthDomain specifies the user domain of a specific user

const (
	// LocalDomain specifies users that are locally stored in Couchbase.
	LocalDomain AuthDomain = "local"

	// ExternalDomain specifies users that are externally stored
	// (in LDAP for instance).
	ExternalDomain AuthDomain = "external"
)

type Authenticator

type Authenticator interface {
	// VOLATILE: This API is subject to change at any time.
	SupportsTLS() bool

	// VOLATILE: This API is subject to change at any time.
	SupportsNonTLS() bool

	// VOLATILE: This API is subject to change at any time.
	Certificate(req AuthCertRequest) (*tls.Certificate, error)

	// VOLATILE: This API is subject to change at any time.
	Credentials(req AuthCredsRequest) ([]UserPassPair, error)
}

Authenticator provides an interface to authenticate to each service. Note that only authenticators implemented via the SDK are stable.

type AzureBlobExternalAnalyticsLink struct {
	Dataverse             string
	LinkName              string
	ConnectionString      string
	AccountName           string
	AccountKey            string
	SharedAccessSignature string
	BlobEndpoint          string
	EndpointSuffix        string
}

AzureBlobExternalAnalyticsLink describes an external analytics link which uses the Microsoft Azure Blob Storage service. Only available as of 7.0 Developer Preview. VOLATILE: This API is subject to change at any time.

func NewAzureBlobExternalAnalyticsLink(linkName, dataverseName string,
	opts *NewAzureBlobExternalAnalyticsLinkOptions) *AzureBlobExternalAnalyticsLink

NewAzureBlobExternalAnalyticsLink creates a new AzureBlobExternalAnalyticsLink. VOLATILE: This API is subject to change at any time.

func (*AzureBlobExternalAnalyticsLink) DataverseName added in v2.3.0

func (al *AzureBlobExternalAnalyticsLink) DataverseName() string

DataverseName returns the name of the dataverse that this link belongs to.

func (*AzureBlobExternalAnalyticsLink) FormEncode added in v2.3.0

func (al *AzureBlobExternalAnalyticsLink) FormEncode() ([]byte, error)

FormEncode encodes the link into a form data representation, to sent as the body of a CreateLink or ReplaceLink request.

func (*AzureBlobExternalAnalyticsLink) LinkType added in v2.3.0

LinkType returns the type of analytics type this link is: AnalyticsLinkTypeAzureExternal.

func (*AzureBlobExternalAnalyticsLink) Name added in v2.3.0

Name returns the name of this link.

func (*AzureBlobExternalAnalyticsLink) Validate added in v2.3.0

func (al *AzureBlobExternalAnalyticsLink) Validate() error

Validate is used by CreateLink and ReplaceLink to ensure that the link is valid.

type BackoffCalculator

type BackoffCalculator func(retryAttempts uint32) time.Duration

BackoffCalculator defines how backoff durations will be calculated by the retry API.

type BestEffortRetryStrategy

type BestEffortRetryStrategy struct {
	BackoffCalculator BackoffCalculator
}

BestEffortRetryStrategy represents a strategy that will keep retrying until it succeeds (or the caller times out the request).

func NewBestEffortRetryStrategy

func NewBestEffortRetryStrategy(calculator BackoffCalculator) *BestEffortRetryStrategy

NewBestEffortRetryStrategy returns a new BestEffortRetryStrategy which will use the supplied calculator function to calculate retry durations. If calculator is nil then a controlled backoff will be used.

func (*BestEffortRetryStrategy) RetryAfter

func (rs *BestEffortRetryStrategy) RetryAfter(req RetryRequest, reason RetryReason) RetryAction

RetryAfter calculates and returns a RetryAction describing how long to wait before retrying an operation.

type BinaryCollection

type BinaryCollection struct {
	// contains filtered or unexported fields
}

BinaryCollection is a set of binary operations.

func (*BinaryCollection) Append

func (c *BinaryCollection) Append(id string, val []byte, opts *AppendOptions) (mutOut *MutationResult, errOut error)

Append appends a byte value to a document.

func (*BinaryCollection) Decrement

func (c *BinaryCollection) Decrement(id string, opts *DecrementOptions) (countOut *CounterResult, errOut error)

Decrement performs an atomic subtraction for an integer document. Passing a non-negative `initial` value will cause the document to be created if it did not already exist.

func (*BinaryCollection) Increment

func (c *BinaryCollection) Increment(id string, opts *IncrementOptions) (countOut *CounterResult, errOut error)

Increment performs an atomic addition for an integer document. Passing a non-negative `initial` value will cause the document to be created if it did not already exist.

func (*BinaryCollection) Prepend

func (c *BinaryCollection) Prepend(id string, val []byte, opts *PrependOptions) (mutOut *MutationResult, errOut error)

Prepend prepends a byte value to a document.

type Bucket

type Bucket struct {
	// contains filtered or unexported fields
}

Bucket represents a single bucket within a cluster.

func (*Bucket) Collection

func (b *Bucket) Collection(collectionName string) *Collection

Collection returns an instance of a collection from within the default scope.

func (*Bucket) Collections

func (b *Bucket) Collections() *CollectionManager

Collections provides functions for managing collections. Deprecated: See CollectionsV2.

func (*Bucket) CollectionsV2 added in v2.7.2

func (b *Bucket) CollectionsV2() *CollectionManagerV2

CollectionsV2 provides functions for managing collections.

func (*Bucket) DefaultCollection

func (b *Bucket) DefaultCollection() *Collection

DefaultCollection returns an instance of the default collection.

func (*Bucket) DefaultScope

func (b *Bucket) DefaultScope() *Scope

DefaultScope returns an instance of the default scope.

func (*Bucket) Internal added in v2.1.4

func (b *Bucket) Internal() *InternalBucket

Internal returns an InternalBucket. Internal: This should never be used and is not supported.

func (*Bucket) Name

func (b *Bucket) Name() string

Name returns the name of the bucket.

func (*Bucket) Ping

func (b *Bucket) Ping(opts *PingOptions) (*PingResult, error)

Ping will ping a list of services and verify they are active and responding in an acceptable period of time.

func (*Bucket) Scope

func (b *Bucket) Scope(scopeName string) *Scope

Scope returns an instance of a Scope.

func (*Bucket) ViewIndexes

func (b *Bucket) ViewIndexes() *ViewIndexManager

ViewIndexes returns a ViewIndexManager instance for managing views.

func (*Bucket) ViewQuery

func (b *Bucket) ViewQuery(designDoc string, viewName string, opts *ViewOptions) (*ViewResult, error)

ViewQuery performs a view query and returns a list of rows or an error.

func (*Bucket) WaitUntilReady added in v2.1.0

func (b *Bucket) WaitUntilReady(timeout time.Duration, opts *WaitUntilReadyOptions) error

WaitUntilReady will wait for the bucket object to be ready for use. At present this will wait until memd connections have been established with the server and are ready to be used before performing a ping against the specified services (except KeyValue) which also exist in the cluster map. If no services are specified then will wait until KeyValue is ready. Valid service types are: ServiceTypeKeyValue, ServiceTypeManagement, ServiceTypeQuery, ServiceTypeSearch, ServiceTypeAnalytics, ServiceTypeViews.

type BucketManager

type BucketManager struct {
	// contains filtered or unexported fields
}

BucketManager provides methods for performing bucket management operations. See BucketManager for methods that allow creating and removing buckets themselves.

func (*BucketManager) CreateBucket

func (bm *BucketManager) CreateBucket(settings CreateBucketSettings, opts *CreateBucketOptions) error

CreateBucket creates a bucket on the cluster.

func (*BucketManager) DropBucket

func (bm *BucketManager) DropBucket(name string, opts *DropBucketOptions) error

DropBucket will delete a bucket from the cluster by name.

func (*BucketManager) FlushBucket

func (bm *BucketManager) FlushBucket(name string, opts *FlushBucketOptions) error

FlushBucket will delete all the of the data from a bucket. Keep in mind that you must have flushing enabled in the buckets configuration.

func (*BucketManager) GetAllBuckets

func (bm *BucketManager) GetAllBuckets(opts *GetAllBucketsOptions) (map[string]BucketSettings, error)

GetAllBuckets returns a list of all active buckets on the cluster.

func (*BucketManager) GetBucket

func (bm *BucketManager) GetBucket(bucketName string, opts *GetBucketOptions) (*BucketSettings, error)

GetBucket returns settings for a bucket on the cluster.

func (*BucketManager) UpdateBucket

func (bm *BucketManager) UpdateBucket(settings BucketSettings, opts *UpdateBucketOptions) error

UpdateBucket updates a bucket on the cluster.

type BucketSettings

type BucketSettings struct {
	Name                 string
	FlushEnabled         bool
	ReplicaIndexDisabled bool // inverted so that zero value matches server default.
	RAMQuotaMB           uint64
	NumReplicas          uint32     // NOTE: If not set this will set 0 replicas.
	BucketType           BucketType // Defaults to CouchbaseBucketType.
	EvictionPolicy       EvictionPolicyType
	// Deprecated: Use MaxExpiry instead.
	MaxTTL                 time.Duration
	MaxExpiry              time.Duration
	CompressionMode        CompressionMode
	MinimumDurabilityLevel DurabilityLevel
	StorageBackend         StorageBackend

	// Specifies whether history retention should be enabled or disabled by default on collections in the bucket.
	HistoryRetentionCollectionDefault HistoryRetentionCollectionDefault
	HistoryRetentionBytes             uint64
	HistoryRetentionDuration          time.Duration
}

BucketSettings holds information about the settings for a bucket.

type BucketType

type BucketType string

BucketType specifies the kind of bucket.

const (
	// CouchbaseBucketType indicates a Couchbase bucket type.
	CouchbaseBucketType BucketType = "membase"

	// MemcachedBucketType indicates a Memcached bucket type.
	MemcachedBucketType BucketType = "memcached"

	// EphemeralBucketType indicates an Ephemeral bucket type.
	EphemeralBucketType BucketType = "ephemeral"
)

type BuildDeferredQueryIndexOptions

type BuildDeferredQueryIndexOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Deprecated: See CollectionQueryIndexManager.
	ScopeName string
	// Deprecated: See CollectionQueryIndexManager.
	CollectionName string

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

BuildDeferredQueryIndexOptions is the set of options available to the query indexes BuildDeferredIndexes operation.

type BulkOp

type BulkOp interface {
	// contains filtered or unexported methods
}

BulkOp represents a single operation that can be submitted (within a list of more operations) to .Do() You can create a bulk operation by instantiating one of the implementations of BulkOp, such as GetOp, UpsertOp, ReplaceOp, and more. UNCOMMITTED: This API may change in the future.

type BulkOpOptions

type BulkOpOptions struct {
	Timeout       time.Duration
	Transcoder    Transcoder
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

BulkOpOptions are the set of options available when performing BulkOps using Do.

type Capability added in v2.2.2

type Capability uint32

Capability represents a server capability. Internal: This should never be used and is not supported.

const (
	CapabilityDurableWrites Capability = iota + 1
	CapabilityCreateAsDeleted
	CapabilityReplaceBodyWithXattr
)

type CapabilityStatus added in v2.2.2

type CapabilityStatus uint32

CapabilityStatus represents a status for a server capability. Internal: This should never be used and is not supported.

type Cas

type Cas gocbcore.Cas

Cas represents the specific state of a document on the cluster.

type CertificateAuthenticator

type CertificateAuthenticator struct {
	ClientCertificate *tls.Certificate
}

CertificateAuthenticator implements an Authenticator which can be used with certificate authentication.

func (CertificateAuthenticator) Certificate

Certificate returns the certificate to use when connecting to a specified server. VOLATILE: This API is subject to change at any time.

func (CertificateAuthenticator) Credentials

Credentials returns the credentials for a particular service. VOLATILE: This API is subject to change at any time.

func (CertificateAuthenticator) SupportsNonTLS

func (ca CertificateAuthenticator) SupportsNonTLS() bool

SupportsNonTLS returns whether this authenticator can authenticate a non-TLS connection. VOLATILE: This API is subject to change at any time.

func (CertificateAuthenticator) SupportsTLS

func (ca CertificateAuthenticator) SupportsTLS() bool

SupportsTLS returns whether this authenticator can authenticate a TLS connection. VOLATILE: This API is subject to change at any time.

type ChangePasswordOptions added in v2.5.1

type ChangePasswordOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

ChangePasswordOptions is the set of options available to the user manager ChangePassword operation.

type CircuitBreakerCallback

type CircuitBreakerCallback func(error) bool

CircuitBreakerCallback is the callback used by the circuit breaker to determine if an error should count toward the circuit breaker failure count.

type CircuitBreakerConfig

type CircuitBreakerConfig struct {
	Disabled                 bool
	VolumeThreshold          int64
	ErrorThresholdPercentage float64
	SleepWindow              time.Duration
	RollingWindow            time.Duration
	CompletionCallback       CircuitBreakerCallback
	CanaryTimeout            time.Duration
}

CircuitBreakerConfig are the settings for configuring circuit breakers.

type Cluster

type Cluster struct {
	// contains filtered or unexported fields
}

Cluster represents a connection to a specific Couchbase cluster.

func Connect

func Connect(connStr string, opts ClusterOptions) (*Cluster, error)

Connect creates and returns a Cluster instance created using the provided options and a connection string.

func (*Cluster) AnalyticsIndexes

func (c *Cluster) AnalyticsIndexes() *AnalyticsIndexManager

AnalyticsIndexes returns an AnalyticsIndexManager for managing analytics indexes.

func (*Cluster) AnalyticsQuery

func (c *Cluster) AnalyticsQuery(statement string, opts *AnalyticsOptions) (*AnalyticsResult, error)

AnalyticsQuery executes the analytics query statement on the server.

func (*Cluster) Bucket

func (c *Cluster) Bucket(bucketName string) *Bucket

Bucket connects the cluster to server(s) and returns a new Bucket instance.

func (*Cluster) Buckets

func (c *Cluster) Buckets() *BucketManager

Buckets returns a BucketManager for managing buckets.

func (*Cluster) Close

func (c *Cluster) Close(opts *ClusterCloseOptions) error

Close shuts down all buckets in this cluster and invalidates any references this cluster has.

func (*Cluster) Diagnostics

func (c *Cluster) Diagnostics(opts *DiagnosticsOptions) (*DiagnosticsResult, error)

Diagnostics returns information about the internal state of the SDK.

func (*Cluster) EventingFunctions added in v2.3.2

func (c *Cluster) EventingFunctions() *EventingFunctionManager

EventingFunctions returns a EventingFunctionManager for managing eventing functions.

UNCOMMITTED

This API is UNCOMMITTED and may change in the future.

func (*Cluster) Internal added in v2.4.1

func (c *Cluster) Internal() *InternalCluster

Internal returns an InternalCluster. Internal: This should never be used and is not supported.

func (*Cluster) Ping added in v2.0.3

func (c *Cluster) Ping(opts *PingOptions) (*PingResult, error)

Ping will ping a list of services and verify they are active and responding in an acceptable period of time.

func (*Cluster) Query

func (c *Cluster) Query(statement string, opts *QueryOptions) (*QueryResult, error)

Query executes the query statement on the server.

func (*Cluster) QueryIndexes

func (c *Cluster) QueryIndexes() *QueryIndexManager

QueryIndexes returns a QueryIndexManager for managing query indexes.

func (*Cluster) Search added in v2.7.2

func (c *Cluster) Search(indexName string, request SearchRequest, opts *SearchOptions) (*SearchResult, error)

Search executes the search request on the server.

func (*Cluster) SearchIndexes

func (c *Cluster) SearchIndexes() *SearchIndexManager

SearchIndexes returns a SearchIndexManager for managing cluster-level search indexes.

func (*Cluster) SearchQuery

func (c *Cluster) SearchQuery(indexName string, query cbsearch.Query, opts *SearchOptions) (*SearchResult, error)

SearchQuery executes the search query on the server.

func (*Cluster) Transactions added in v2.4.0

func (c *Cluster) Transactions() *Transactions

Transactions returns a Transactions instance for performing transactions.

func (*Cluster) Users

func (c *Cluster) Users() *UserManager

Users returns a UserManager for managing users.

func (*Cluster) WaitUntilReady added in v2.1.0

func (c *Cluster) WaitUntilReady(timeout time.Duration, opts *WaitUntilReadyOptions) error

WaitUntilReady will wait for the cluster object to be ready for use. At present this will wait until memd connections have been established with the server and are ready to be used before performing a ping against the specified services which also exist in the cluster map. If no services are specified then ServiceTypeManagement, ServiceTypeQuery, ServiceTypeSearch, ServiceTypeAnalytics will be pinged. Valid service types are: ServiceTypeManagement, ServiceTypeQuery, ServiceTypeSearch, ServiceTypeAnalytics.

type ClusterCloseOptions

type ClusterCloseOptions struct {
}

ClusterCloseOptions is the set of options available when disconnecting from a Cluster.

type ClusterConfigProfile added in v2.6.0

type ClusterConfigProfile string

ClusterConfigProfile represents a named profile that can be applied to ClusterOptions. VOLATILE: This API is subject to change at any time.

const (
	// ClusterConfigProfileWanDevelopment represents a wan development profile that can be applied to the ClusterOptions
	// overwriting any properties that exist on the profile.
	// VOLATILE: This API is subject to change at any time.
	ClusterConfigProfileWanDevelopment ClusterConfigProfile = "wan-development"
)

type ClusterOptions

type ClusterOptions struct {
	// Authenticator specifies the authenticator to use with the cluster.
	Authenticator Authenticator

	// Username & Password specifies the cluster username and password to
	// authenticate with.  This is equivalent to passing PasswordAuthenticator
	// as the Authenticator parameter with the same values.
	Username string
	Password string

	// Timeouts specifies various operation timeouts.
	TimeoutsConfig TimeoutsConfig

	// Transcoder is used for trancoding data used in KV operations.
	Transcoder Transcoder

	// RetryStrategy is used to automatically retry operations if they fail.
	RetryStrategy RetryStrategy

	// Tracer specifies the tracer to use for requests.
	Tracer RequestTracer

	Meter Meter

	// OrphanReporterConfig specifies options for the orphan reporter.
	OrphanReporterConfig OrphanReporterConfig

	// CircuitBreakerConfig specifies options for the circuit breakers.
	CircuitBreakerConfig CircuitBreakerConfig

	// IoConfig specifies IO related configuration options.
	IoConfig IoConfig

	// SecurityConfig specifies security related configuration options.
	SecurityConfig SecurityConfig

	// TransactionsConfig specifies transactions related configuration options.
	TransactionsConfig TransactionsConfig

	// CompressionConfig specifies compression related configuration options.
	CompressionConfig CompressionConfig

	// PreferredServerGroup specifies the name of the server group to use with operations supporting ReadPreference.
	// UNCOMMITTED: This API may change in the future.
	PreferredServerGroup string

	// Internal: This should never be used and is not supported.
	InternalConfig InternalConfig
}

ClusterOptions is the set of options available for creating a Cluster.

func (*ClusterOptions) ApplyProfile added in v2.6.0

func (opts *ClusterOptions) ApplyProfile(profile ClusterConfigProfile) error

ApplyProfile will apply a named profile to the ClusterOptions overwriting any properties that exist on the profile. VOLATILE: This API is subject to change at any time.

type ClusterState

type ClusterState uint

ClusterState specifies the current state of the cluster

const (
	// ClusterStateOnline indicates that all nodes are online and reachable.
	ClusterStateOnline ClusterState = iota + 1

	// ClusterStateDegraded indicates that all services will function, but possibly not optimally.
	ClusterStateDegraded

	// ClusterStateOffline indicates that no nodes were reachable.
	ClusterStateOffline
)

type Collection

type Collection struct {
	// contains filtered or unexported fields
}

Collection represents a single collection.

func (*Collection) Binary

func (c *Collection) Binary() *BinaryCollection

Binary creates and returns a BinaryCollection object.

func (*Collection) Bucket added in v2.1.4

func (c *Collection) Bucket() *Bucket

Bucket returns the bucket to which this collection belongs. UNCOMMITTED: This API may change in the future.

func (*Collection) Do

func (c *Collection) Do(ops []BulkOp, opts *BulkOpOptions) error

Do execute one or more `BulkOp` items in parallel. UNCOMMITTED: This API may change in the future.

func (*Collection) Exists

func (c *Collection) Exists(id string, opts *ExistsOptions) (docOut *ExistsResult, errOut error)

Exists checks if a document exists for the given id.

func (*Collection) Get

func (c *Collection) Get(id string, opts *GetOptions) (docOut *GetResult, errOut error)

Get performs a fetch operation against the collection. This can take 3 paths, a standard full document fetch, a subdocument full document fetch also fetching document expiry (when WithExpiry is set), or a subdocument fetch (when Project is used).

func (*Collection) GetAllReplicas

func (c *Collection) GetAllReplicas(id string, opts *GetAllReplicaOptions) (*GetAllReplicasResult, error)

GetAllReplicas returns the value of a particular document from all replica servers. This will return an iterable which streams results one at a time.

func (*Collection) GetAndLock

func (c *Collection) GetAndLock(id string, lockTime time.Duration, opts *GetAndLockOptions) (docOut *GetResult, errOut error)

GetAndLock locks a document for a period of time, providing exclusive RW access to it. A lockTime value of over 30 seconds will be treated as 30 seconds. The resolution used to send this value to the server is seconds and is calculated using uint32(lockTime/time.Second).

func (*Collection) GetAndTouch

func (c *Collection) GetAndTouch(id string, expiry time.Duration, opts *GetAndTouchOptions) (docOut *GetResult, errOut error)

GetAndTouch retrieves a document and simultaneously updates its expiry time.

func (*Collection) GetAnyReplica

func (c *Collection) GetAnyReplica(id string, opts *GetAnyReplicaOptions) (*GetReplicaResult, error)

GetAnyReplica returns the value of a particular document from a replica server.

func (*Collection) Insert

func (c *Collection) Insert(id string, val interface{}, opts *InsertOptions) (mutOut *MutationResult, errOut error)

Insert creates a new document in the Collection.

func (*Collection) List

func (c *Collection) List(id string) *CouchbaseList

List returns a new CouchbaseList for the document specified by id.

func (*Collection) LookupIn

func (c *Collection) LookupIn(id string, ops []LookupInSpec, opts *LookupInOptions) (docOut *LookupInResult, errOut error)

LookupIn performs a set of subdocument lookup operations on the document identified by id.

func (*Collection) LookupInAllReplicas added in v2.7.0

func (c *Collection) LookupInAllReplicas(id string, ops []LookupInSpec, opts *LookupInAllReplicaOptions) (*LookupInAllReplicasResult, error)

LookupInAllReplicas returns the value of a particular document from all replica servers. This will return an iterable which streams results one at a time.

func (*Collection) LookupInAnyReplica added in v2.7.0

func (c *Collection) LookupInAnyReplica(id string, ops []LookupInSpec, opts *LookupInAnyReplicaOptions) (*LookupInReplicaResult, error)

LookupInAnyReplica returns the value of a particular document from a replica server.

func (*Collection) Map

func (c *Collection) Map(id string) *CouchbaseMap

Map returns a new CouchbaseMap.

func (*Collection) MutateIn

func (c *Collection) MutateIn(id string, ops []MutateInSpec, opts *MutateInOptions) (mutOut *MutateInResult, errOut error)

MutateIn performs a set of subdocument mutations on the document specified by id.

func (*Collection) Name

func (c *Collection) Name() string

Name returns the name of the collection.

func (*Collection) QueryIndexes added in v2.6.1

func (c *Collection) QueryIndexes() *CollectionQueryIndexManager

QueryIndexes returns a CollectionQueryIndexManager for managing query indexes. UNCOMMITTED: This API may change in the future.

func (*Collection) Queue

func (c *Collection) Queue(id string) *CouchbaseQueue

Queue returns a new CouchbaseQueue.

func (*Collection) Remove

func (c *Collection) Remove(id string, opts *RemoveOptions) (mutOut *MutationResult, errOut error)

Remove removes a document from the collection.

func (*Collection) Replace

func (c *Collection) Replace(id string, val interface{}, opts *ReplaceOptions) (mutOut *MutationResult, errOut error)

Replace updates a document in the collection.

func (*Collection) Scan added in v2.6.1

func (c *Collection) Scan(scanType ScanType, opts *ScanOptions) (*ScanResult, error)

Scan performs a scan across a Collection, returning a stream of documents. Use this API for low concurrency batch queries where latency is not critical as the system may have to scan a lot of documents to find the matching documents. For low latency range queries, it is recommended that you use SQL++ with the necessary indexes.

func (*Collection) ScopeName added in v2.1.4

func (c *Collection) ScopeName() string

ScopeName returns the name of the scope to which this collection belongs.

func (*Collection) Set

func (c *Collection) Set(id string) *CouchbaseSet

Set returns a new CouchbaseSet.

func (*Collection) Touch

func (c *Collection) Touch(id string, expiry time.Duration, opts *TouchOptions) (mutOut *MutationResult, errOut error)

Touch touches a document, specifying a new expiry time for it.

func (*Collection) Unlock

func (c *Collection) Unlock(id string, cas Cas, opts *UnlockOptions) (errOut error)

Unlock unlocks a document which was locked with GetAndLock.

func (*Collection) Upsert

func (c *Collection) Upsert(id string, val interface{}, opts *UpsertOptions) (mutOut *MutationResult, errOut error)

Upsert creates a new document in the Collection if it does not exist, if it does exist then it updates it.

type CollectionHistorySettings added in v2.7.0

type CollectionHistorySettings struct {
	Enabled bool
}

CollectionHistorySettings specifies settings for whether history retention should be enabled or disabled for this collection.

type CollectionManager

type CollectionManager struct {
	// contains filtered or unexported fields
}

CollectionManager provides methods for performing collections management. Deprecated: See CollectionsV2 and CollectionManagerV2.

func (*CollectionManager) CreateCollection

func (cm *CollectionManager) CreateCollection(spec CollectionSpec, opts *CreateCollectionOptions) error

CreateCollection creates a new collection on the bucket. Will be deprecated in favor of CollectionManagerV2.CreateCollection in the next minor release.

func (*CollectionManager) CreateScope

func (cm *CollectionManager) CreateScope(scopeName string, opts *CreateScopeOptions) error

CreateScope creates a new scope on the bucket. Will be deprecated in favor of CollectionManagerV2.CreateScope in the next minor release.

func (*CollectionManager) DropCollection

func (cm *CollectionManager) DropCollection(spec CollectionSpec, opts *DropCollectionOptions) error

DropCollection removes a collection. Will be deprecated in favor of CollectionManagerV2.DropCollection in the next minor release.

func (*CollectionManager) DropScope

func (cm *CollectionManager) DropScope(scopeName string, opts *DropScopeOptions) error

DropScope removes a scope. Will be deprecated in favor of CollectionManagerV2.DropScope in the next minor release.

func (*CollectionManager) GetAllScopes

func (cm *CollectionManager) GetAllScopes(opts *GetAllScopesOptions) ([]ScopeSpec, error)

GetAllScopes gets all scopes from the bucket. Will be deprecated in favor of CollectionManagerV2.GetAllScopes in the next minor release.

func (*CollectionManager) UpdateCollection added in v2.7.0

func (cm *CollectionManager) UpdateCollection(spec CollectionSpec, opts *UpdateCollectionOptions) error

UpdateCollection updates the settings of an existing collection. Will be deprecated in favor of CollectionManagerV2.UpdateCollection in the next minor release.

type CollectionManagerV2 added in v2.7.2

type CollectionManagerV2 struct {
	// contains filtered or unexported fields
}

CollectionManagerV2 provides methods for performing collections management.

func (*CollectionManagerV2) CreateCollection added in v2.7.2

func (cm *CollectionManagerV2) CreateCollection(scopeName string, collectionName string, settings *CreateCollectionSettings, opts *CreateCollectionOptions) error

CreateCollection creates a new collection on the bucket.

func (*CollectionManagerV2) CreateScope added in v2.7.2

func (cm *CollectionManagerV2) CreateScope(scopeName string, opts *CreateScopeOptions) error

CreateScope creates a new scope on the bucket.

func (*CollectionManagerV2) DropCollection added in v2.7.2

func (cm *CollectionManagerV2) DropCollection(scopeName string, collectionName string, opts *DropCollectionOptions) error

DropCollection removes a collection.

func (*CollectionManagerV2) DropScope added in v2.7.2

func (cm *CollectionManagerV2) DropScope(scopeName string, opts *DropScopeOptions) error

DropScope removes a scope.

func (*CollectionManagerV2) GetAllScopes added in v2.7.2

func (cm *CollectionManagerV2) GetAllScopes(opts *GetAllScopesOptions) ([]ScopeSpec, error)

GetAllScopes gets all scopes from the bucket.

func (*CollectionManagerV2) UpdateCollection added in v2.7.2

func (cm *CollectionManagerV2) UpdateCollection(scopeName string, collectionName string, settings UpdateCollectionSettings, opts *UpdateCollectionOptions) error

UpdateCollection updates the settings of an existing collection.

type CollectionQueryIndexManager added in v2.6.1

type CollectionQueryIndexManager struct {
	// contains filtered or unexported fields
}

CollectionQueryIndexManager provides methods for performing Couchbase query index management against collections. UNCOMMITTED: This API may change in the future.

func (*CollectionQueryIndexManager) BuildDeferredIndexes added in v2.6.1

func (qm *CollectionQueryIndexManager) BuildDeferredIndexes(opts *BuildDeferredQueryIndexOptions) ([]string, error)

BuildDeferredIndexes builds all indexes which are currently in deferred state. If no collection and scope names are specified in the options then *only* indexes created on the bucket directly will be built.

func (*CollectionQueryIndexManager) CreateIndex added in v2.6.1

func (qm *CollectionQueryIndexManager) CreateIndex(indexName string, keys []string, opts *CreateQueryIndexOptions) error

CreateIndex creates an index over the specified fields. The SDK will automatically escape the provided index keys. For more advanced use cases like index keys using keywords scope.Query should be used with the query directly.

func (*CollectionQueryIndexManager) CreatePrimaryIndex added in v2.6.1

CreatePrimaryIndex creates a primary index. An empty customName uses the default naming.

func (*CollectionQueryIndexManager) DropIndex added in v2.6.1

func (qm *CollectionQueryIndexManager) DropIndex(indexName string, opts *DropQueryIndexOptions) error

DropIndex drops a specific index by name.

func (*CollectionQueryIndexManager) DropPrimaryIndex added in v2.6.1

DropPrimaryIndex drops the primary index. Pass an empty customName for unnamed primary indexes.

func (*CollectionQueryIndexManager) GetAllIndexes added in v2.6.1

GetAllIndexes returns a list of all currently registered indexes.

func (*CollectionQueryIndexManager) WatchIndexes added in v2.6.1

func (qm *CollectionQueryIndexManager) WatchIndexes(watchList []string, timeout time.Duration, opts *WatchQueryIndexOptions) error

WatchIndexes waits for a set of indexes to come online.

type CollectionSpec

type CollectionSpec struct {
	Name      string
	ScopeName string

	// The maximum expiry all documents in the collection can have. Defaults to the bucket-level setting.
	// Value of -1 seconds (time.Duration(-1) * time.Second)  denotes 'no expiry'.
	MaxExpiry time.Duration

	History *CollectionHistorySettings
}

CollectionSpec describes the specification of a collection.

type CompressionConfig added in v2.5.0

type CompressionConfig struct {
	Disabled bool

	// MinSize specifies the minimum size of the document to consider compression.
	MinSize uint32
	// MinRatio specifies the minimal compress ratio (compressed / original) for the document to be sent compressed.
	MinRatio float64
}

CompressionConfig specifies options for controlling compression applied to documents before sending to Couchbase Server.

type CompressionMode

type CompressionMode string

CompressionMode specifies the kind of compression to use for a bucket.

const (
	// CompressionModeOff specifies to use no compression for a bucket.
	CompressionModeOff CompressionMode = "off"

	// CompressionModePassive specifies to use passive compression for a bucket.
	CompressionModePassive CompressionMode = "passive"

	// CompressionModeActive specifies to use active compression for a bucket.
	CompressionModeActive CompressionMode = "active"
)

type ConflictResolutionType

type ConflictResolutionType string

ConflictResolutionType specifies the kind of conflict resolution to use for a bucket.

const (
	// ConflictResolutionTypeTimestamp specifies to use timestamp conflict resolution on the bucket.
	ConflictResolutionTypeTimestamp ConflictResolutionType = "lww"

	// ConflictResolutionTypeSequenceNumber specifies to use sequence number conflict resolution on the bucket.
	ConflictResolutionTypeSequenceNumber ConflictResolutionType = "seqno"

	// ConflictResolutionTypeCustom specifies to use a custom bucket conflict resolution.
	// In Couchbase Server 7.1, this feature is only available in "developer-preview" mode. See the UI XDCR settings
	// for the custom conflict resolution properties.
	// VOLATILE: This API is subject to change at any time.
	ConflictResolutionTypeCustom ConflictResolutionType = "custom"
)

type ConnectAnalyticsLinkOptions

type ConnectAnalyticsLinkOptions struct {
	LinkName      string
	DataverseName string

	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

ConnectAnalyticsLinkOptions is the set of options available to the AnalyticsManager ConnectLink operation.

type CouchbaseList

type CouchbaseList struct {
	// contains filtered or unexported fields
}

CouchbaseList represents a list document.

func (*CouchbaseList) Append

func (cl *CouchbaseList) Append(val interface{}) error

Append appends an item to the list.

func (*CouchbaseList) At

func (cl *CouchbaseList) At(index int, valuePtr interface{}) error

At retrieves the value specified at the given index from the list.

func (*CouchbaseList) Clear

func (cl *CouchbaseList) Clear() error

Clear clears a list, also removing it.

func (*CouchbaseList) IndexOf

func (cl *CouchbaseList) IndexOf(val interface{}) (int, error)

IndexOf gets the index of the item in the list.

func (*CouchbaseList) Iterator

func (cl *CouchbaseList) Iterator() ([]interface{}, error)

Iterator returns an iterable for all items in the list.

func (*CouchbaseList) Prepend

func (cl *CouchbaseList) Prepend(val interface{}) error

Prepend prepends an item to the list.

func (*CouchbaseList) RemoveAt

func (cl *CouchbaseList) RemoveAt(index int) error

RemoveAt removes the value specified at the given index from the list.

func (*CouchbaseList) Size

func (cl *CouchbaseList) Size() (int, error)

Size returns the size of the list.

type CouchbaseMap

type CouchbaseMap struct {
	// contains filtered or unexported fields
}

CouchbaseMap represents a map document.

func (*CouchbaseMap) Add

func (cl *CouchbaseMap) Add(id string, val interface{}) error

Add adds an item to the map.

func (*CouchbaseMap) At

func (cl *CouchbaseMap) At(id string, valuePtr interface{}) error

At retrieves the item for the given id from the map.

func (*CouchbaseMap) Clear

func (cl *CouchbaseMap) Clear() error

Clear clears a map, also removing it.

func (*CouchbaseMap) Exists

func (cl *CouchbaseMap) Exists(id string) (bool, error)

Exists verifies whether or an id exists in the map.

func (*CouchbaseMap) Iterator

func (cl *CouchbaseMap) Iterator() (map[string]interface{}, error)

Iterator returns an iterable for all items in the map.

func (*CouchbaseMap) Keys

func (cl *CouchbaseMap) Keys() ([]string, error)

Keys returns all of the keys within the map.

func (*CouchbaseMap) Remove

func (cl *CouchbaseMap) Remove(id string) error

Remove removes an item from the map.

func (*CouchbaseMap) Size

func (cl *CouchbaseMap) Size() (int, error)

Size returns the size of the map.

func (*CouchbaseMap) Values

func (cl *CouchbaseMap) Values() ([]interface{}, error)

Values returns all of the values within the map.

type CouchbaseQueue

type CouchbaseQueue struct {
	// contains filtered or unexported fields
}

CouchbaseQueue represents a queue document.

func (*CouchbaseQueue) Clear

func (cs *CouchbaseQueue) Clear() error

Clear clears a queue, also removing it.

func (*CouchbaseQueue) Iterator

func (cs *CouchbaseQueue) Iterator() ([]interface{}, error)

Iterator returns an iterable for all items in the queue.

func (*CouchbaseQueue) Pop

func (cs *CouchbaseQueue) Pop(valuePtr interface{}) error

Pop pops an items off of the queue.

func (*CouchbaseQueue) Push

func (cs *CouchbaseQueue) Push(val interface{}) error

Push pushes a value onto the queue.

func (*CouchbaseQueue) Size

func (cs *CouchbaseQueue) Size() (int, error)

Size returns the size of the queue.

type CouchbaseRemoteAnalyticsEncryptionSettings added in v2.3.0

type CouchbaseRemoteAnalyticsEncryptionSettings struct {
	// The level of encryption to apply, defaults to none
	EncryptionLevel AnalyticsEncryptionLevel
	// The certificate to use when encryption level is set to full.
	// This must be set if encryption level is set to full.
	Certificate []byte
	// The client certificate to use when encryption level is set to full.
	// This cannot be used if username and password are also used.
	ClientCertificate []byte
	// The client key to use when encryption level is set to full.
	// This cannot be used if username and password are also used.
	ClientKey []byte
}

CouchbaseRemoteAnalyticsEncryptionSettings are the settings available for setting encryption level on a link.

type CouchbaseRemoteAnalyticsLink struct {
	Dataverse  string
	LinkName   string
	Hostname   string
	Encryption CouchbaseRemoteAnalyticsEncryptionSettings
	Username   string
	Password   string
}

CouchbaseRemoteAnalyticsLink describes a remote analytics link which uses a Couchbase data service that is not part of the same cluster as the Analytics Service.

func NewCouchbaseRemoteAnalyticsLink(linkName, hostname, dataverseName string,
	opts *NewCouchbaseRemoteAnalyticsLinkOptions) *CouchbaseRemoteAnalyticsLink

NewCouchbaseRemoteAnalyticsLink creates a new CouchbaseRemoteAnalyticsLink. Scope is the analytics scope in the form of "bucket/scope".

func (*CouchbaseRemoteAnalyticsLink) DataverseName added in v2.3.0

func (al *CouchbaseRemoteAnalyticsLink) DataverseName() string

DataverseName returns the name of the dataverse that this link belongs to.

func (*CouchbaseRemoteAnalyticsLink) FormEncode added in v2.3.0

func (al *CouchbaseRemoteAnalyticsLink) FormEncode() ([]byte, error)

FormEncode encodes the link into a form data representation, to sent as the body of a CreateLink or ReplaceLink request.

func (*CouchbaseRemoteAnalyticsLink) LinkType added in v2.3.0

LinkType returns the type of analytics type this link is: AnalyticsLinkTypeCouchbaseRemote.

func (*CouchbaseRemoteAnalyticsLink) Name added in v2.3.0

Name returns the name of this link.

func (*CouchbaseRemoteAnalyticsLink) Validate added in v2.3.0

func (al *CouchbaseRemoteAnalyticsLink) Validate() error

Validate is used by CreateLink and ReplaceLink to ensure that the link is valid.

type CouchbaseSet

type CouchbaseSet struct {
	// contains filtered or unexported fields
}

CouchbaseSet represents a set document.

func (*CouchbaseSet) Add

func (cs *CouchbaseSet) Add(val interface{}) error

Add adds a value to the set.

func (*CouchbaseSet) Clear

func (cs *CouchbaseSet) Clear() error

Clear clears a set, also removing it.

func (*CouchbaseSet) Contains

func (cs *CouchbaseSet) Contains(val string) (bool, error)

Contains verifies whether or not a value exists within the set.

func (*CouchbaseSet) Iterator

func (cs *CouchbaseSet) Iterator() ([]interface{}, error)

Iterator returns an iterable for all items in the set.

func (*CouchbaseSet) Remove

func (cs *CouchbaseSet) Remove(val string) error

Remove removes an value from the set.

func (*CouchbaseSet) Size

func (cs *CouchbaseSet) Size() (int, error)

Size returns the size of the set

func (*CouchbaseSet) Values

func (cs *CouchbaseSet) Values() ([]interface{}, error)

Values returns all of the values within the set.

type CountSpecOptions

type CountSpecOptions struct {
	IsXattr bool
}

CountSpecOptions are the options available to LookupIn subdoc Count operations.

type Counter added in v2.3.0

type Counter interface {
	IncrementBy(num uint64)
}

Counter is used for incrementing a synchronous count metric.

type CounterResult

type CounterResult struct {
	MutationResult
	// contains filtered or unexported fields
}

CounterResult is the return type of counter operations.

func (CounterResult) Cas

func (mr CounterResult) Cas() Cas

Cas returns the Cas value for a document following an operation.

func (CounterResult) Content

func (mr CounterResult) Content() uint64

Content returns the new value for the counter document.

func (CounterResult) MutationToken

func (mr CounterResult) MutationToken() *MutationToken

MutationToken returns the mutation token belonging to an operation.

type CounterSpecOptions

type CounterSpecOptions struct {
	CreatePath bool
	IsXattr    bool
}

CounterSpecOptions are the options available to subdocument Increment and Decrement operations.

type CreateAnalyticsDatasetOptions

type CreateAnalyticsDatasetOptions struct {
	IgnoreIfExists bool
	Condition      string
	DataverseName  string

	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

CreateAnalyticsDatasetOptions is the set of options available to the AnalyticsManager CreateDataset operation.

type CreateAnalyticsDataverseOptions

type CreateAnalyticsDataverseOptions struct {
	IgnoreIfExists bool

	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

CreateAnalyticsDataverseOptions is the set of options available to the AnalyticsManager CreateDataverse operation.

type CreateAnalyticsIndexOptions

type CreateAnalyticsIndexOptions struct {
	IgnoreIfExists bool
	DataverseName  string

	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

CreateAnalyticsIndexOptions is the set of options available to the AnalyticsManager CreateIndex operation.

type CreateAnalyticsLinkOptions added in v2.3.0

type CreateAnalyticsLinkOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

CreateAnalyticsLinkOptions is the set of options available to the analytics manager CreateLink function.

type CreateBucketOptions

type CreateBucketOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

CreateBucketOptions is the set of options available to the bucket manager CreateBucket operation.

type CreateBucketSettings

type CreateBucketSettings struct {
	BucketSettings
	ConflictResolutionType ConflictResolutionType
}

CreateBucketSettings are the settings available when creating a bucket.

type CreateCollectionOptions

type CreateCollectionOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

CreateCollectionOptions is the set of options available to the CreateCollection operation.

type CreateCollectionSettings added in v2.7.2

type CreateCollectionSettings struct {
	// MaxExpiry is the maximum expiry all documents in the collection can have.
	// Defaults to the bucket-level setting.
	// Value of -1 seconds (time.Duration(-1) * time.Second)  denotes 'no expiry'.
	MaxExpiry time.Duration
	History   *CollectionHistorySettings
}

CreateCollectionSettings specifies settings for a collection to be created

type CreatePrimaryQueryIndexOptions

type CreatePrimaryQueryIndexOptions struct {
	IgnoreIfExists bool
	Deferred       bool
	CustomName     string
	NumReplicas    int

	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Deprecated: See CollectionQueryIndexManager.
	ScopeName string
	// Deprecated: See CollectionQueryIndexManager.
	CollectionName string

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

CreatePrimaryQueryIndexOptions is the set of options available to the query indexes CreatePrimaryIndex operation.

type CreateQueryIndexOptions

type CreateQueryIndexOptions struct {
	IgnoreIfExists bool
	Deferred       bool
	NumReplicas    int

	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Deprecated: See CollectionQueryIndexManager.
	ScopeName string
	// Deprecated: See CollectionQueryIndexManager.
	CollectionName string

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

CreateQueryIndexOptions is the set of options available to the query indexes CreateIndex operation.

type CreateScopeOptions

type CreateScopeOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

CreateScopeOptions is the set of options available to the CreateScope operation.

type DecrementOp

type DecrementOp struct {
	ID      string
	Delta   int64
	Initial int64
	Expiry  time.Duration

	Result *CounterResult
	Err    error
	// contains filtered or unexported fields
}

DecrementOp represents a type of `BulkOp` used for Decrement operations. See BulkOp. UNCOMMITTED: This API may change in the future.

type DecrementOptions

type DecrementOptions struct {
	Timeout time.Duration
	// Expiry is the length of time that the document will be stored in Couchbase.
	// A value of 0 will set the document to never expire.
	Expiry time.Duration
	// Initial, if non-negative, is the `initial` value to use for the document if it does not exist.
	// If present, this is the value that will be returned by a successful operation.
	Initial int64
	// Delta is the value to use for incrementing/decrementing if Initial is not present.
	Delta           uint64
	DurabilityLevel DurabilityLevel
	PersistTo       uint
	ReplicateTo     uint
	RetryStrategy   RetryStrategy
	ParentSpan      RequestSpan

	// Deprecated: Cas is not supported by the server for Decrement, and is no longer used.
	Cas Cas

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context

	// Internal: This should never be used and is not supported.
	Internal struct {
		User string
	}
}

DecrementOptions are the options available to the Decrement operation.

type DeployEventingFunctionOptions added in v2.3.2

type DeployEventingFunctionOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

DeployEventingFunctionOptions are the options available when using the DeployFunction operation.

type DesignDocument

type DesignDocument struct {
	Name  string
	Views map[string]View
}

DesignDocument represents a Couchbase design document containing multiple views.

type DesignDocumentNamespace

type DesignDocumentNamespace uint

DesignDocumentNamespace represents which namespace a design document resides in.

const (
	// DesignDocumentNamespaceProduction means that a design document resides in the production namespace.
	DesignDocumentNamespaceProduction DesignDocumentNamespace = iota

	// DesignDocumentNamespaceDevelopment means that a design document resides in the development namespace.
	DesignDocumentNamespaceDevelopment
)

type DiagnosticsOptions

type DiagnosticsOptions struct {
	ReportID string
}

DiagnosticsOptions are the options that are available for use with the Diagnostics operation.

type DiagnosticsResult

type DiagnosticsResult struct {
	ID       string
	Services map[string][]EndPointDiagnostics

	State ClusterState
	// contains filtered or unexported fields
}

DiagnosticsResult encapsulates the results of a Diagnostics operation.

func (*DiagnosticsResult) MarshalJSON

func (report *DiagnosticsResult) MarshalJSON() ([]byte, error)

MarshalJSON generates a JSON representation of this diagnostics report.

type DisallowQueryingSearchIndexOptions

type DisallowQueryingSearchIndexOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

DisallowQueryingSearchIndexOptions is the set of options available to the search index DisallowQuerying operation.

type DisconnectAnalyticsLinkOptions

type DisconnectAnalyticsLinkOptions struct {
	LinkName      string
	DataverseName string

	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

DisconnectAnalyticsLinkOptions is the set of options available to the AnalyticsManager DisconnectLink operation.

type DropAnalyticsDatasetOptions

type DropAnalyticsDatasetOptions struct {
	IgnoreIfNotExists bool
	DataverseName     string

	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

DropAnalyticsDatasetOptions is the set of options available to the AnalyticsManager DropDataset operation.

type DropAnalyticsDataverseOptions

type DropAnalyticsDataverseOptions struct {
	IgnoreIfNotExists bool

	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

DropAnalyticsDataverseOptions is the set of options available to the AnalyticsManager DropDataverse operation.

type DropAnalyticsIndexOptions

type DropAnalyticsIndexOptions struct {
	IgnoreIfNotExists bool
	DataverseName     string

	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

DropAnalyticsIndexOptions is the set of options available to the AnalyticsManager DropIndex operation.

type DropAnalyticsLinkOptions added in v2.3.0

type DropAnalyticsLinkOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

DropAnalyticsLinkOptions is the set of options available to the analytics manager DropLink function.

type DropBucketOptions

type DropBucketOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

DropBucketOptions is the set of options available to the bucket manager DropBucket operation.

type DropCollectionOptions

type DropCollectionOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

DropCollectionOptions is the set of options available to the DropCollection operation.

type DropDesignDocumentOptions

type DropDesignDocumentOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

DropDesignDocumentOptions is the set of options available to the ViewIndexManager Upsert operation.

type DropEventingFunctionOptions added in v2.3.2

type DropEventingFunctionOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

DropEventingFunctionOptions are the options available when using the DropFunction operation.

type DropGroupOptions

type DropGroupOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

DropGroupOptions is the set of options available to the group manager Drop operation.

type DropPrimaryQueryIndexOptions

type DropPrimaryQueryIndexOptions struct {
	IgnoreIfNotExists bool
	CustomName        string

	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Deprecated: See CollectionQueryIndexManager.
	ScopeName string
	// Deprecated: See CollectionQueryIndexManager.
	CollectionName string

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

DropPrimaryQueryIndexOptions is the set of options available to the query indexes DropPrimaryIndex operation.

type DropQueryIndexOptions

type DropQueryIndexOptions struct {
	IgnoreIfNotExists bool

	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Deprecated: See CollectionQueryIndexManager.
	ScopeName string
	// Deprecated: See CollectionQueryIndexManager.
	CollectionName string

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

DropQueryIndexOptions is the set of options available to the query indexes DropIndex operation.

type DropScopeOptions

type DropScopeOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

DropScopeOptions is the set of options available to the DropScope operation.

type DropSearchIndexOptions

type DropSearchIndexOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

DropSearchIndexOptions is the set of options available to the search index DropIndex operation.

type DropUserOptions

type DropUserOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy

	DomainName string
	ParentSpan RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

DropUserOptions is the set of options available to the user manager Drop operation.

type DurabilityLevel

type DurabilityLevel uint8

DurabilityLevel specifies the level of synchronous replication to use.

const (
	// DurabilityLevelUnknown specifies that the durability level is not set and will default to the default durability level.
	DurabilityLevelUnknown DurabilityLevel = iota

	// DurabilityLevelNone specifies that no durability level should be applied.
	DurabilityLevelNone

	// DurabilityLevelMajority specifies that a mutation must be replicated (held in memory) to a majority of nodes.
	DurabilityLevelMajority

	// DurabilityLevelMajorityAndPersistOnMaster specifies that a mutation must be replicated (held in memory) to a
	// majority of nodes and also persisted (written to disk) on the active node.
	DurabilityLevelMajorityAndPersistOnMaster

	// DurabilityLevelPersistToMajority specifies that a mutation must be persisted (written to disk) to a majority
	// of nodes.
	DurabilityLevelPersistToMajority
)

type EndPointDiagnostics

type EndPointDiagnostics struct {
	Type         ServiceType
	ID           string
	Local        string
	Remote       string
	LastActivity time.Time
	State        EndpointState
	Namespace    string
}

EndPointDiagnostics represents a single entry in a diagnostics report.

type EndpointPingReport

type EndpointPingReport struct {
	ID        string
	Local     string
	Remote    string
	State     PingState
	Error     string
	Namespace string
	Latency   time.Duration
}

EndpointPingReport represents a single entry in a ping report.

type EndpointState

type EndpointState uint

EndpointState specifies the current state of an endpoint.

const (
	// EndpointStateDisconnected indicates the endpoint socket is unreachable.
	EndpointStateDisconnected EndpointState = iota + 1

	// EndpointStateConnecting indicates the endpoint socket is connecting.
	EndpointStateConnecting

	// EndpointStateConnected indicates the endpoint socket is connected and ready.
	EndpointStateConnected

	// EndpointStateDisconnecting indicates the endpoint socket is disconnecting.
	EndpointStateDisconnecting
)

type EventingFunction added in v2.3.2

type EventingFunction struct {
	Name               string // Required
	Code               string // Required
	Version            string
	EnforceSchema      bool
	HandlerUUID        int
	FunctionInstanceID string
	MetadataKeyspace   EventingFunctionKeyspace // Required
	SourceKeyspace     EventingFunctionKeyspace // Required
	BucketBindings     []EventingFunctionBucketBinding
	UrlBindings        []EventingFunctionUrlBinding
	ConstantBindings   []EventingFunctionConstantBinding
	Settings           EventingFunctionSettings
}

EventingFunction represents an eventing function.

func (*EventingFunction) MarshalJSON added in v2.3.2

func (ef *EventingFunction) MarshalJSON() ([]byte, error)

func (*EventingFunction) UnmarshalJSON added in v2.3.2

func (ef *EventingFunction) UnmarshalJSON(b []byte) error

type EventingFunctionBucketAccess added in v2.3.2

type EventingFunctionBucketAccess string

EventingFunctionBucketAccess represents the level of access an eventing function has to a bucket.

var (
	// EventingFunctionBucketAccessReadOnly represents readonly access to a bucket for an eventing function.
	EventingFunctionBucketAccessReadOnly EventingFunctionBucketAccess = "r"

	// EventingFunctionBucketAccessReadWrite represents readwrite access to a bucket for an eventing function.
	EventingFunctionBucketAccessReadWrite EventingFunctionBucketAccess = "rw"
)

type EventingFunctionBucketBinding added in v2.3.2

type EventingFunctionBucketBinding struct {
	Alias  string
	Name   EventingFunctionKeyspace
	Access EventingFunctionBucketAccess
}

EventingFunctionBucketBinding represents an eventing function binding allowing the function access to buckets, scopes, and collections.

type EventingFunctionConstantBinding added in v2.3.2

type EventingFunctionConstantBinding struct {
	Alias   string
	Literal string
}

EventingFunctionConstantBinding represents an eventing function binding allowing the function to utilize global variables.

type EventingFunctionDCPBoundary added in v2.3.2

type EventingFunctionDCPBoundary string

EventingFunctionDCPBoundary sets what data mutations to deploy the eventing function for.

var (
	// EventingFunctionDCPBoundaryEverything will deploy the eventing function for all data mutations.
	EventingFunctionDCPBoundaryEverything EventingFunctionDCPBoundary = "everything"

	// EventingFunctionDCPBoundaryFromNow will deploy the eventing function for only data mutations occurring post deployment.
	EventingFunctionDCPBoundaryFromNow EventingFunctionDCPBoundary = "from_now"
)

type EventingFunctionDeploymentStatus added in v2.3.2

type EventingFunctionDeploymentStatus bool

EventingFunctionDeploymentStatus represents the current deployment status for the eventing function.

var (
	// EventingFunctionDeploymentStatusDeployed represents that the eventing function is currently deployed.
	EventingFunctionDeploymentStatusDeployed EventingFunctionDeploymentStatus = true

	// EventingFunctionDeploymentStatusUndeployed represents that the eventing function is currently undeployed.
	EventingFunctionDeploymentStatusUndeployed EventingFunctionDeploymentStatus = false
)

type EventingFunctionKeyspace added in v2.3.2

type EventingFunctionKeyspace struct {
	Bucket     string
	Scope      string
	Collection string
}

EventingFunctionKeyspace represents a triple of bucket, collection, and scope names.

type EventingFunctionLanguageCompatibility added in v2.3.2

type EventingFunctionLanguageCompatibility string

EventingFunctionLanguageCompatibility represents the eventing function language compatibility for backward compatibility.

var (
	// EventingFunctionLanguageCompatibilityVersion600 represents the eventing function language compatibility 6.0.0.
	EventingFunctionLanguageCompatibilityVersion600 EventingFunctionLanguageCompatibility = "6.0.0"

	// EventingFunctionLanguageCompatibilityVersion650 represents the eventing function language compatibility 6.5.0.
	EventingFunctionLanguageCompatibilityVersion650 EventingFunctionLanguageCompatibility = "6.5.0"

	// EventingFunctionLanguageCompatibilityVersion662 represents the eventing function language compatibility 6.6.2.
	EventingFunctionLanguageCompatibilityVersion662 EventingFunctionLanguageCompatibility = "6.6.2"

	// EventingFunctionLanguageCompatibilityVersion720 represents the eventing function language compatibility 7.2.0
	EventingFunctionLanguageCompatibilityVersion720 EventingFunctionLanguageCompatibility = "7.2.0"
)

type EventingFunctionLogLevel added in v2.3.2

type EventingFunctionLogLevel string

EventingFunctionLogLevel represents the granularity at which to log messages for the eventing function.

var (
	// EventingFunctionLogLevelInfo represents to log messages at INFO for the eventing function.
	EventingFunctionLogLevelInfo EventingFunctionLogLevel = "INFO"

	// EventingFunctionLogLevelError represents to log messages at ERROR for the eventing function.
	EventingFunctionLogLevelError EventingFunctionLogLevel = "ERROR"

	// EventingFunctionLogLevelWarning represents to log messages at WARNING for the eventing function.
	EventingFunctionLogLevelWarning EventingFunctionLogLevel = "WARNING"

	// EventingFunctionLogLevelDebug represents to log messages at DEBUG for the eventing function.
	EventingFunctionLogLevelDebug EventingFunctionLogLevel = "DEBUG"

	// EventingFunctionLogLevelTrace represents to log messages at TRACE for the eventing function.
	EventingFunctionLogLevelTrace EventingFunctionLogLevel = "TRACE"
)

type EventingFunctionManager added in v2.3.2

type EventingFunctionManager struct {
	// contains filtered or unexported fields
}

EventingFunctionManager provides methods for performing eventing function management operations. This manager is designed to work only against Couchbase Server 7.0+, it might work against earlier server versions but that is not tested and is not supported.

UNCOMMITTED

This API is UNCOMMITTED and may change in the future.

func (*EventingFunctionManager) DeployFunction added in v2.3.2

func (efm *EventingFunctionManager) DeployFunction(name string, opts *DeployEventingFunctionOptions) error

DeployFunction deploys an eventing function.

func (*EventingFunctionManager) DropFunction added in v2.3.2

func (efm *EventingFunctionManager) DropFunction(name string, opts *DropEventingFunctionOptions) error

DropFunction drops an eventing function.

func (*EventingFunctionManager) FunctionsStatus added in v2.3.2

FunctionsStatus fetches the current status of all eventing functions.

func (*EventingFunctionManager) GetAllFunctions added in v2.3.2

GetAllFunctions fetches all the eventing functions.

func (*EventingFunctionManager) GetFunction added in v2.3.2

GetFunction fetches an eventing function.

func (*EventingFunctionManager) PauseFunction added in v2.3.2

func (efm *EventingFunctionManager) PauseFunction(name string, opts *PauseEventingFunctionOptions) error

PauseFunction pauses an eventing function.

func (*EventingFunctionManager) ResumeFunction added in v2.3.2

func (efm *EventingFunctionManager) ResumeFunction(name string, opts *ResumeEventingFunctionOptions) error

ResumeFunction resumes an eventing function.

func (*EventingFunctionManager) UndeployFunction added in v2.3.2

func (efm *EventingFunctionManager) UndeployFunction(name string, opts *UndeployEventingFunctionOptions) error

UndeployFunction undeploys an eventing function.

func (*EventingFunctionManager) UpsertFunction added in v2.3.2

func (efm *EventingFunctionManager) UpsertFunction(function EventingFunction, opts *UpsertEventingFunctionOptions) error

UpsertFunction inserts or updates an eventing function.

type EventingFunctionProcessingStatus added in v2.3.2

type EventingFunctionProcessingStatus bool

EventingFunctionProcessingStatus represents the current processing status for the eventing function.

var (
	// EventingFunctionProcessingStatusRunning represents that the eventing function is currently running.
	EventingFunctionProcessingStatusRunning EventingFunctionProcessingStatus = true

	// EventingFunctionProcessingStatusPaused represents that the eventing function is currently paused.
	EventingFunctionProcessingStatusPaused EventingFunctionProcessingStatus = false
)

type EventingFunctionSettings added in v2.3.2

type EventingFunctionSettings struct {
	CPPWorkerThreadCount   int
	DCPStreamBoundary      EventingFunctionDCPBoundary
	Description            string
	DeploymentStatus       EventingFunctionDeploymentStatus
	ProcessingStatus       EventingFunctionProcessingStatus
	LanguageCompatibility  EventingFunctionLanguageCompatibility
	LogLevel               EventingFunctionLogLevel
	ExecutionTimeout       time.Duration
	LCBInstCapacity        int
	LCBRetryCount          int
	LCBTimeout             time.Duration
	QueryConsistency       QueryScanConsistency
	NumTimerPartitions     int
	SockBatchSize          int
	TickDuration           time.Duration
	TimerContextSize       int
	UserPrefix             string
	BucketCacheSize        int
	BucketCacheAge         int
	CurlMaxAllowedRespSize int
	QueryPrepareAll        bool
	WorkerCount            int
	HandlerHeaders         []string
	HandlerFooters         []string
	EnableAppLogRotation   bool
	AppLogDir              string
	AppLogMaxSize          int
	AppLogMaxFiles         int
	CheckpointInterval     time.Duration
}

EventingFunctionSettings are the settings for an EventingFunction.

type EventingFunctionState added in v2.3.2

type EventingFunctionState struct {
	Name                  string
	Status                EventingFunctionStatus
	NumBootstrappingNodes int
	NumDeployedNodes      int
	DeploymentStatus      EventingFunctionDeploymentStatus
	ProcessingStatus      EventingFunctionProcessingStatus
}

EventingFunctionState represents the current state of an eventing function.

type EventingFunctionStatus added in v2.3.2

type EventingFunctionStatus string

EventingFunctionStatus describes the current state of an eventing function.

var (
	// EventingFunctionStateUndeployed represents that the eventing function is undeployed.
	EventingFunctionStateUndeployed EventingFunctionStatus = "undeployed"

	// EventingFunctionStateDeploying represents that the eventing function is deploying.
	EventingFunctionStateDeploying EventingFunctionStatus = "deploying"

	// EventingFunctionStateDeployed represents that the eventing function is deployed.
	EventingFunctionStateDeployed EventingFunctionStatus = "deployed"

	// EventingFunctionStateUndeploying represents that the eventing function is undeploying.
	EventingFunctionStateUndeploying EventingFunctionStatus = "undeploying"

	// EventingFunctionStatePaused represents that the eventing function is paused.
	EventingFunctionStatePaused EventingFunctionStatus = "paused"

	// EventingFunctionStatePausing represents that the eventing function is pausing.
	EventingFunctionStatePausing EventingFunctionStatus = "pausing"
)

type EventingFunctionUrlAuth added in v2.3.2

type EventingFunctionUrlAuth interface {
	Method() string
	Username() string
	Password() string
	Key() string
}

EventingFunctionUrlAuth represents an authentication method for EventingFunctionUrlBinding for an eventing function.

type EventingFunctionUrlAuthBasic added in v2.3.2

type EventingFunctionUrlAuthBasic struct {
	User string
	Pass string
}

EventingFunctionUrlAuthBasic specifies that basic authentication is used for the EventingFunctionUrlBinding.

func (EventingFunctionUrlAuthBasic) Key added in v2.3.2

func (EventingFunctionUrlAuthBasic) Method added in v2.3.2

func (EventingFunctionUrlAuthBasic) Password added in v2.3.2

func (ua EventingFunctionUrlAuthBasic) Password() string

func (EventingFunctionUrlAuthBasic) Username added in v2.3.2

func (ua EventingFunctionUrlAuthBasic) Username() string

type EventingFunctionUrlAuthBearer added in v2.3.2

type EventingFunctionUrlAuthBearer struct {
	BearerKey string
}

EventingFunctionUrlAuthBearer specifies that bearer token authentication is used for the EventingFunctionUrlBinding.

func (EventingFunctionUrlAuthBearer) Key added in v2.3.2

func (EventingFunctionUrlAuthBearer) Method added in v2.3.2

func (EventingFunctionUrlAuthBearer) Password added in v2.3.2

func (ua EventingFunctionUrlAuthBearer) Password() string

func (EventingFunctionUrlAuthBearer) Username added in v2.3.2

func (ua EventingFunctionUrlAuthBearer) Username() string

type EventingFunctionUrlAuthDigest added in v2.3.2

type EventingFunctionUrlAuthDigest struct {
	User string
	Pass string
}

EventingFunctionUrlAuthDigest specifies that digest authentication is used for the EventingFunctionUrlBinding.

func (EventingFunctionUrlAuthDigest) Key added in v2.3.2

func (EventingFunctionUrlAuthDigest) Method added in v2.3.2

func (EventingFunctionUrlAuthDigest) Password added in v2.3.2

func (ua EventingFunctionUrlAuthDigest) Password() string

func (EventingFunctionUrlAuthDigest) Username added in v2.3.2

func (ua EventingFunctionUrlAuthDigest) Username() string

type EventingFunctionUrlBinding added in v2.3.2

type EventingFunctionUrlBinding struct {
	Hostname               string
	Alias                  string
	Auth                   EventingFunctionUrlAuth
	AllowCookies           bool
	ValidateSSLCertificate bool
}

EventingFunctionUrlBinding represents an eventing function binding allowing the function access external resources via cURL.

type EventingFunctionUrlNoAuth added in v2.3.2

type EventingFunctionUrlNoAuth struct{}

EventingFunctionUrlNoAuth specifies that no authentication is used for the EventingFunctionUrlBinding.

func (EventingFunctionUrlNoAuth) Key added in v2.3.2

func (EventingFunctionUrlNoAuth) Method added in v2.3.2

func (ua EventingFunctionUrlNoAuth) Method() string

func (EventingFunctionUrlNoAuth) Password added in v2.3.2

func (ua EventingFunctionUrlNoAuth) Password() string

func (EventingFunctionUrlNoAuth) Username added in v2.3.2

func (ua EventingFunctionUrlNoAuth) Username() string

type EventingFunctionsStatusOptions added in v2.3.2

type EventingFunctionsStatusOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

EventingFunctionsStatusOptions are the options available when using the FunctionsStatus operation.

type EventingStatus added in v2.3.2

type EventingStatus struct {
	NumEventingNodes int
	Functions        []EventingFunctionState
}

EventingStatus represents the current state of all eventing functions.

func (*EventingStatus) UnmarshalJSON added in v2.3.2

func (es *EventingStatus) UnmarshalJSON(b []byte) error

type EvictionPolicyType

type EvictionPolicyType string

EvictionPolicyType specifies the kind of eviction policy to use for a bucket.

const (
	// EvictionPolicyTypeFull specifies to use full eviction for a couchbase bucket.
	EvictionPolicyTypeFull EvictionPolicyType = "fullEviction"

	// EvictionPolicyTypeValueOnly specifies to use value only eviction for a couchbase bucket.
	EvictionPolicyTypeValueOnly EvictionPolicyType = "valueOnly"

	// EvictionPolicyTypeNotRecentlyUsed specifies to use not recently used (nru) eviction for an ephemeral bucket.
	EvictionPolicyTypeNotRecentlyUsed EvictionPolicyType = "nruEviction"

	// EvictionPolicyTypeNoEviction specifies to use no eviction for an ephemeral bucket.
	EvictionPolicyTypeNoEviction EvictionPolicyType = "noEviction"
)

type ExistsOptions

type ExistsOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context

	// Internal: This should never be used and is not supported.
	Internal struct {
		User string
	}
}

ExistsOptions are the options available to the Exists command.

type ExistsResult

type ExistsResult struct {
	Result
	// contains filtered or unexported fields
}

ExistsResult is the return type of Exist operations.

func (*ExistsResult) Exists

func (d *ExistsResult) Exists() bool

Exists returns whether or not the document exists.

type ExistsSpecOptions

type ExistsSpecOptions struct {
	IsXattr bool
}

ExistsSpecOptions are the options available to LookupIn subdoc Exists operations.

type FlushBucketOptions

type FlushBucketOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

FlushBucketOptions is the set of options available to the bucket manager FlushBucket operation.

type FreezePlanSearchIndexOptions

type FreezePlanSearchIndexOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

FreezePlanSearchIndexOptions is the set of options available to the search index FreezePlan operation.

type GenericError added in v2.7.0

type GenericError struct {
	InnerError error                  `json:"-"`
	Context    map[string]interface{} `json:"context,omitempty"`
}

GenericError wraps errors that come from the SDK, and can be returned from any service. Errors returned when protostellar is used are of this type.

UNCOMMITTED

This API is UNCOMMITTED and may change in the future.

func (GenericError) Error added in v2.7.0

func (e GenericError) Error() string

Error returns the string representation of a kv error.

func (GenericError) MarshalJSON added in v2.7.0

func (e GenericError) MarshalJSON() ([]byte, error)

MarshalJSON implements the Marshaler interface.

func (GenericError) Unwrap added in v2.7.0

func (e GenericError) Unwrap() error

Unwrap returns the underlying reason for the error

type GetAllAnalyticsDatasetsOptions

type GetAllAnalyticsDatasetsOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

GetAllAnalyticsDatasetsOptions is the set of options available to the AnalyticsManager GetAllDatasets operation.

type GetAllAnalyticsIndexesOptions

type GetAllAnalyticsIndexesOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

GetAllAnalyticsIndexesOptions is the set of options available to the AnalyticsManager GetAllIndexes operation.

type GetAllBucketsOptions

type GetAllBucketsOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

GetAllBucketsOptions is the set of options available to the bucket manager GetAll operation.

type GetAllDesignDocumentsOptions

type GetAllDesignDocumentsOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

GetAllDesignDocumentsOptions is the set of options available to the ViewIndexManager GetAllDesignDocuments operation.

type GetAllEventingFunctionsOptions added in v2.3.2

type GetAllEventingFunctionsOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

GetAllEventingFunctionsOptions are the options available when using the GetAllFunctions operation.

type GetAllGroupsOptions

type GetAllGroupsOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

GetAllGroupsOptions is the set of options available to the group manager GetAll operation.

type GetAllQueryIndexesOptions

type GetAllQueryIndexesOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Deprecated: See CollectionQueryIndexManager.
	ScopeName string
	// Deprecated: See CollectionQueryIndexManager.
	CollectionName string

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

GetAllQueryIndexesOptions is the set of options available to the query indexes GetAllIndexes operation.

type GetAllReplicaOptions

type GetAllReplicaOptions struct {
	Transcoder    Transcoder
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// UNCOMMITTED: This API may change in the future.
	ReadPreference ReadPreference

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context

	// Internal: This should never be used and is not supported.
	Internal struct {
		User string
	}
}

GetAllReplicaOptions are the options available to the GetAllReplicas command.

type GetAllReplicasResult

type GetAllReplicasResult struct {
	// contains filtered or unexported fields
}

GetAllReplicasResult represents the results of a GetAllReplicas operation.

func (*GetAllReplicasResult) Close

func (r *GetAllReplicasResult) Close() error

Close cancels all remaining get replica requests.

func (*GetAllReplicasResult) Next

Next fetches the next replica result.

type GetAllScopesOptions

type GetAllScopesOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

GetAllScopesOptions is the set of options available to the GetAllScopes operation.

type GetAllSearchIndexOptions

type GetAllSearchIndexOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

GetAllSearchIndexOptions is the set of options available to the search indexes GetAllIndexes operation.

type GetAllUsersOptions

type GetAllUsersOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy

	DomainName string
	ParentSpan RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

GetAllUsersOptions is the set of options available to the user manager GetAll operation.

type GetAnalyticsLinksOptions added in v2.3.0

type GetAnalyticsLinksOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Dataverse restricts the results to a given dataverse, can be given in the form of "namepart" or "namepart1/namepart2".
	Dataverse string
	// LinkType restricts the results to the given link type.
	LinkType AnalyticsLinkType
	// Name restricts the results to the link with the specified name.
	// If set then `Scope` must also be set.
	Name string

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

GetAnalyticsLinksOptions are the options available to the AnalyticsManager GetLinks function.

type GetAndLockOptions

type GetAndLockOptions struct {
	Transcoder    Transcoder
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context

	// Internal: This should never be used and is not supported.
	Internal struct {
		User string
	}
}

GetAndLockOptions are the options available to the GetAndLock operation.

type GetAndTouchOp

type GetAndTouchOp struct {
	ID     string
	Expiry time.Duration
	Result *GetResult
	Err    error
	// contains filtered or unexported fields
}

GetAndTouchOp represents a type of `BulkOp` used for GetAndTouch operations. See BulkOp. UNCOMMITTED: This API may change in the future.

type GetAndTouchOptions

type GetAndTouchOptions struct {
	Transcoder    Transcoder
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context

	// Internal: This should never be used and is not supported.
	Internal struct {
		User string
	}
}

GetAndTouchOptions are the options available to the GetAndTouch operation.

type GetAnyReplicaOptions

type GetAnyReplicaOptions struct {
	Transcoder    Transcoder
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// UNCOMMITTED: This API may change in the future.
	ReadPreference ReadPreference

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context

	// Internal: This should never be used and is not supported.
	Internal struct {
		User string
	}
}

GetAnyReplicaOptions are the options available to the GetAnyReplica command.

type GetBucketOptions

type GetBucketOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

GetBucketOptions is the set of options available to the bucket manager GetBucket operation.

type GetDesignDocumentOptions

type GetDesignDocumentOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

GetDesignDocumentOptions is the set of options available to the ViewIndexManager GetDesignDocument operation.

type GetEventingFunctionOptions added in v2.3.2

type GetEventingFunctionOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

GetEventingFunctionOptions are the options available when using the GetFunction operation.

type GetGroupOptions

type GetGroupOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

GetGroupOptions is the set of options available to the group manager Get operation.

type GetIndexedDocumentsCountOptions

type GetIndexedDocumentsCountOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

GetIndexedDocumentsCountOptions is the set of options available to the search index GetIndexedDocumentsCount operation.

type GetNodesMetadataOptions added in v2.4.1

type GetNodesMetadataOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

GetNodesMetadataOptions is the set of options available to the GetNodesMetadata operation. Internal: This should never be used and is not supported.

type GetOp

type GetOp struct {
	ID     string
	Result *GetResult
	Err    error
	// contains filtered or unexported fields
}

GetOp represents a type of `BulkOp` used for Get operations. See BulkOp. UNCOMMITTED: This API may change in the future.

type GetOptions

type GetOptions struct {
	WithExpiry bool
	// Project causes the Get operation to only fetch the fields indicated
	// by the paths. The result of the operation is then treated as a
	// standard GetResult.
	Project       []string
	Transcoder    Transcoder
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context

	// Internal: This should never be used and is not supported.
	Internal struct {
		User string
	}
}

GetOptions are the options available to a Get operation.

type GetPendingMutationsAnalyticsOptions

type GetPendingMutationsAnalyticsOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

GetPendingMutationsAnalyticsOptions is the set of options available to the user manager GetPendingMutations operation.

type GetReplicaResult

type GetReplicaResult struct {
	GetResult
	// contains filtered or unexported fields
}

GetReplicaResult is the return type of GetReplica operations.

func (*GetReplicaResult) IsReplica

func (r *GetReplicaResult) IsReplica() bool

IsReplica returns whether or not this result came from a replica server.

type GetResult

type GetResult struct {
	Result
	// contains filtered or unexported fields
}

GetResult is the return type of Get operations.

func (*GetResult) Content

func (d *GetResult) Content(valuePtr interface{}) error

Content assigns the value of the result into the valuePtr using default decoding.

func (*GetResult) Expiry

func (d *GetResult) Expiry() *time.Duration

Expiry returns the expiry value for the result if it available. Note that a nil pointer indicates that the Expiry was not fetched, while a valid pointer to a zero Duration indicates that the document will never expire. Deprecated: Use ExpiryTime instead.

func (*GetResult) ExpiryTime added in v2.1.6

func (d *GetResult) ExpiryTime() time.Time

ExpiryTime returns the expiry time for the result if it available. This function will return a zero time if the value either was not fetched or the document does not have an expiry time.

type GetRolesOptions

type GetRolesOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

GetRolesOptions is the set of options available to the user manager GetRoles operation.

type GetSearchIndexOptions

type GetSearchIndexOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

GetSearchIndexOptions is the set of options available to the search indexes GetIndex operation.

type GetSpecOptions

type GetSpecOptions struct {
	IsXattr bool
}

GetSpecOptions are the options available to LookupIn subdoc Get operations.

type GetUserOptions

type GetUserOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy

	DomainName string
	ParentSpan RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

GetUserOptions is the set of options available to the user manager Get operation.

type Group

type Group struct {
	Name               string
	Description        string
	Roles              []Role
	LDAPGroupReference string
}

Group represents a user group on the server.

type HTTPError

type HTTPError struct {
	InnerError    error         `json:"-"`
	UniqueID      string        `json:"unique_id,omitempty"`
	Endpoint      string        `json:"endpoint,omitempty"`
	RetryReasons  []RetryReason `json:"retry_reasons,omitempty"`
	RetryAttempts uint32        `json:"retry_attempts,omitempty"`
	ErrorText     string        `json:"error_text,omitempty"`
	StatusCode    uint32        `json:"status_code,omitempty"`
}

HTTPError is the error type of management HTTP errors. UNCOMMITTED: This API may change in the future.

func (HTTPError) Error

func (e HTTPError) Error() string

Error returns the string representation of this error.

func (HTTPError) MarshalJSON added in v2.2.1

func (e HTTPError) MarshalJSON() ([]byte, error)

MarshalJSON implements the Marshaler interface.

func (HTTPError) Unwrap

func (e HTTPError) Unwrap() error

Unwrap returns the underlying cause for this error.

type HistoryRetentionCollectionDefault added in v2.8.0

type HistoryRetentionCollectionDefault uint8

HistoryRetentionCollectionDefault specifies whether history is enabled on the bucket. This API is UNCOMMITTED and may change in the future.

const (
	// HistoryRetentionCollectionDefaultUnset specifies that history is not set and defaults to the default
	// server value.
	// This API is UNCOMMITTED and may change in the future.
	HistoryRetentionCollectionDefaultUnset HistoryRetentionCollectionDefault = iota

	// HistoryRetentionCollectionDefaultEnabled specifies that history is enabled.
	// This API is UNCOMMITTED and may change in the future.
	HistoryRetentionCollectionDefaultEnabled

	// HistoryRetentionCollectionDefaultDisabled specifies that history is disabled.
	// This API is UNCOMMITTED and may change in the future.
	HistoryRetentionCollectionDefaultDisabled
)

type IncrementOp

type IncrementOp struct {
	ID      string
	Delta   int64
	Initial int64
	Expiry  time.Duration

	Result *CounterResult
	Err    error
	// contains filtered or unexported fields
}

IncrementOp represents a type of `BulkOp` used for Increment operations. See BulkOp. UNCOMMITTED: This API may change in the future.

type IncrementOptions

type IncrementOptions struct {
	Timeout time.Duration
	// Expiry is the length of time that the document will be stored in Couchbase.
	// A value of 0 will set the document to never expire.
	Expiry time.Duration
	// Initial, if non-negative, is the `initial` value to use for the document if it does not exist.
	// If present, this is the value that will be returned by a successful operation.
	Initial int64
	// Delta is the value to use for incrementing/decrementing if Initial is not present.
	Delta           uint64
	DurabilityLevel DurabilityLevel
	PersistTo       uint
	ReplicateTo     uint
	RetryStrategy   RetryStrategy
	ParentSpan      RequestSpan

	// Deprecated: Cas is not supported by the server for Increment, and is no longer used.
	Cas Cas

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context

	// Internal: This should never be used and is not supported.
	Internal struct {
		User string
	}
}

IncrementOptions are the options available to the Increment operation.

type InsertOp

type InsertOp struct {
	ID     string
	Value  interface{}
	Expiry time.Duration
	Result *MutationResult
	Err    error
	// contains filtered or unexported fields
}

InsertOp represents a type of `BulkOp` used for Insert operations. See BulkOp. UNCOMMITTED: This API may change in the future.

type InsertOptions

type InsertOptions struct {
	Expiry          time.Duration
	PersistTo       uint
	ReplicateTo     uint
	DurabilityLevel DurabilityLevel
	Transcoder      Transcoder
	Timeout         time.Duration
	RetryStrategy   RetryStrategy
	ParentSpan      RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context

	// Internal: This should never be used and is not supported.
	Internal struct {
		User string
	}
}

InsertOptions are options that can be applied to an Insert operation.

type InsertSpecOptions

type InsertSpecOptions struct {
	CreatePath bool
	IsXattr    bool
}

InsertSpecOptions are the options available to subdocument Insert operations.

type InternalBucket added in v2.1.4

type InternalBucket struct {
	// contains filtered or unexported fields
}

InternalBucket is used for internal functionality. Internal: This should never be used and is not supported.

func (*InternalBucket) CapabilityStatus added in v2.2.2

func (ib *InternalBucket) CapabilityStatus(cap Capability) (CapabilityStatus, error)

HasCapabilityStatus verifies whether support for a server capability is in a given state.

func (*InternalBucket) IORouter added in v2.1.4

func (ib *InternalBucket) IORouter() (*gocbcore.Agent, error)

IORouter returns the collection's internal core router.

type InternalCluster added in v2.4.1

type InternalCluster struct {
	// contains filtered or unexported fields
}

InternalCluster is used for internal functionality. Internal: This should never be used and is not supported.

func (*InternalCluster) GetNodesMetadata added in v2.4.1

func (ic *InternalCluster) GetNodesMetadata(opts *GetNodesMetadataOptions) ([]NodeMetadata, error)

GetNodesMetadata returns a list of information about nodes in the cluster.

type InternalConfig added in v2.1.0

type InternalConfig struct {
	TLSRootCAProvider    func() *x509.CertPool
	ConnectionBufferSize uint
}

InternalConfig specifies options for controlling various internal items. Internal: This should never be used and is not supported.

type InternalTransactionAttemptContext added in v2.4.0

type InternalTransactionAttemptContext struct {
	// contains filtered or unexported fields
}

InternalTransactionAttemptContext is used for internal dealings. Internal: This should never be used and is not supported.

func (*InternalTransactionAttemptContext) IsExpired added in v2.4.0

func (iac *InternalTransactionAttemptContext) IsExpired() bool

type IoConfig

type IoConfig struct {
	DisableMutationTokens  bool
	DisableServerDurations bool
}

IoConfig specifies IO related configuration options.

type JSONTranscoder

type JSONTranscoder struct {
}

JSONTranscoder implements the default transcoding behavior and applies JSON transcoding to all values.

This will apply the following behavior to the value: binary ([]byte) -> error. default -> JSON value, JSON Flags.

func NewJSONTranscoder

func NewJSONTranscoder() *JSONTranscoder

NewJSONTranscoder returns a new JSONTranscoder.

func (*JSONTranscoder) Decode

func (t *JSONTranscoder) Decode(bytes []byte, flags uint32, out interface{}) error

Decode applies JSON transcoding behaviour to decode into a Go type.

func (*JSONTranscoder) Encode

func (t *JSONTranscoder) Encode(value interface{}) ([]byte, uint32, error)

Encode applies JSON transcoding behaviour to encode a Go type.

type KeyValueError

type KeyValueError struct {
	InnerError         error           `json:"-"`
	StatusCode         memd.StatusCode `json:"status_code,omitempty"`
	DocumentID         string          `json:"document_id,omitempty"`
	BucketName         string          `json:"bucket,omitempty"`
	ScopeName          string          `json:"scope,omitempty"`
	CollectionName     string          `json:"collection,omitempty"`
	CollectionID       uint32          `json:"collection_id,omitempty"`
	ErrorName          string          `json:"error_name,omitempty"`
	ErrorDescription   string          `json:"error_description,omitempty"`
	Opaque             uint32          `json:"opaque,omitempty"`
	Context            string          `json:"context,omitempty"`
	Ref                string          `json:"ref,omitempty"`
	RetryReasons       []RetryReason   `json:"retry_reasons,omitempty"`
	RetryAttempts      uint32          `json:"retry_attempts,omitempty"`
	LastDispatchedTo   string          `json:"last_dispatched_to,omitempty"`
	LastDispatchedFrom string          `json:"last_dispatched_from,omitempty"`
	LastConnectionID   string          `json:"last_connection_id,omitempty"`
}

KeyValueError wraps key-value errors that occur within the SDK. UNCOMMITTED: This API may change in the future.

func (KeyValueError) Error

func (e KeyValueError) Error() string

Error returns the string representation of a kv error.

func (KeyValueError) MarshalJSON added in v2.2.1

func (e KeyValueError) MarshalJSON() ([]byte, error)

MarshalJSON implements the Marshaler interface.

func (KeyValueError) Unwrap

func (e KeyValueError) Unwrap() error

Unwrap returns the underlying reason for the error

type LegacyTranscoder

type LegacyTranscoder struct {
}

LegacyTranscoder implements the behaviour for a backward-compatible transcoder. This transcoder implements behaviour matching that of gocb v1.

This will apply the following behavior to the value: binary ([]byte) -> binary bytes, Binary expectedFlags. string -> string bytes, String expectedFlags. default -> JSON value, JSON expectedFlags.

func NewLegacyTranscoder

func NewLegacyTranscoder() *LegacyTranscoder

NewLegacyTranscoder returns a new LegacyTranscoder.

func (*LegacyTranscoder) Decode

func (t *LegacyTranscoder) Decode(bytes []byte, flags uint32, out interface{}) error

Decode applies legacy transcoding behaviour to decode into a Go type.

func (*LegacyTranscoder) Encode

func (t *LegacyTranscoder) Encode(value interface{}) ([]byte, uint32, error)

Encode applies legacy transcoding behavior to encode a Go type.

type LogLevel

type LogLevel gocbcore.LogLevel

LogLevel specifies the severity of a log message.

Various logging levels (or subsystems) which can categorize the message. Currently these are ordered in decreasing severity.

type LogRedactLevel

type LogRedactLevel uint

LogRedactLevel specifies the degree with which to redact the logs.

const (
	// RedactNone indicates to perform no redactions
	RedactNone LogRedactLevel = iota

	// RedactPartial indicates to redact all possible user-identifying information from logs.
	RedactPartial

	// RedactFull indicates to fully redact all possible identifying information from logs.
	RedactFull
)

type Logger

type Logger interface {
	// Log Outputs logging information:
	// level is the verbosity level
	// offset is the position within the calling stack from which the message
	// originated. This is useful for contextual loggers which retrieve file/line
	// information.
	Log(level LogLevel, offset int, format string, v ...interface{}) error
}

Logger defines a logging interface. You can either use one of the default loggers (DefaultStdioLogger(), VerboseStdioLogger()) or implement your own.

func DefaultStdioLogger

func DefaultStdioLogger() Logger

DefaultStdioLogger gets the default standard I/O logger.

gocb.SetLogger(gocb.DefaultStdioLogger())

func VerboseStdioLogger

func VerboseStdioLogger() Logger

VerboseStdioLogger is a more verbose level of DefaultStdioLogger(). Messages pertaining to the scheduling of ordinary commands (and their responses) will also be emitted.

gocb.SetLogger(gocb.VerboseStdioLogger())

type LoggingMeter added in v2.3.0

type LoggingMeter struct {
	// contains filtered or unexported fields
}

LoggingMeter is a Meter implementation providing a simplified, but useful, view into current SDK state.

func NewAggregatingMeter added in v2.3.0

func NewAggregatingMeter(opts *AggregatingMeterOptions) *LoggingMeter

NewAggregatingMeter creates a new LoggingMeter. Note that this function will soon be deprecated. Deprecated: See NewLoggingMeter.

func NewLoggingMeter added in v2.4.1

func NewLoggingMeter(opts *LoggingMeterOptions) *LoggingMeter

NewLoggingMeter creates a new LoggingMeter.

func (*LoggingMeter) Counter added in v2.3.0

func (am *LoggingMeter) Counter(_ string, _ map[string]string) (Counter, error)

func (*LoggingMeter) ValueRecorder added in v2.3.0

func (am *LoggingMeter) ValueRecorder(name string, tags map[string]string) (ValueRecorder, error)

type LoggingMeterOptions added in v2.4.1

type LoggingMeterOptions struct {
	EmitInterval time.Duration
}

LoggingMeterOptions is the set of options available when creating a LoggingMeter.

type LookupInAllReplicaOptions added in v2.7.0

type LookupInAllReplicaOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// UNCOMMITTED: This API may change in the future.
	ReadPreference ReadPreference

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context

	// Internal: This should never be used and is not supported.
	Internal struct {
		DocFlags SubdocDocFlag
		User     string
	}
}

LookupInAllReplicaOptions are the set of options available to LookupInAllReplicas.

type LookupInAllReplicasResult added in v2.7.0

type LookupInAllReplicasResult struct {
	// contains filtered or unexported fields
}

LookupInAllReplicasResult represents the results of a LookupInAllReplicas operation.

func (*LookupInAllReplicasResult) Close added in v2.7.0

func (r *LookupInAllReplicasResult) Close() error

Close cancels all remaining get replica requests.

func (*LookupInAllReplicasResult) Next added in v2.7.0

Next fetches the next replica result.

type LookupInAnyReplicaOptions added in v2.7.0

type LookupInAnyReplicaOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// UNCOMMITTED: This API may change in the future.
	ReadPreference ReadPreference

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context

	// Internal: This should never be used and is not supported.
	Internal struct {
		DocFlags SubdocDocFlag
		User     string
	}
}

LookupInAnyReplicaOptions are the set of options available to LookupInAnyReplica.

type LookupInOptions

type LookupInOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context

	// Internal: This should never be used and is not supported.
	Internal struct {
		DocFlags SubdocDocFlag
		User     string
	}
}

LookupInOptions are the set of options available to LookupIn.

type LookupInReplicaResult added in v2.7.0

type LookupInReplicaResult struct {
	*LookupInResult
	// contains filtered or unexported fields
}

LookupInReplicaResult is the return type of LookupInReplica operations.

func (*LookupInReplicaResult) IsReplica added in v2.7.0

func (r *LookupInReplicaResult) IsReplica() bool

IsReplica returns whether or not this result came from a replica server.

type LookupInResult

type LookupInResult struct {
	Result
	// contains filtered or unexported fields
}

LookupInResult is the return type for LookupIn.

func (*LookupInResult) ContentAt

func (lir *LookupInResult) ContentAt(idx uint, valuePtr interface{}) error

ContentAt retrieves the value of the operation by its index. The index is the position of the operation as it was added to the builder.

func (*LookupInResult) Exists

func (lir *LookupInResult) Exists(idx uint) bool

Exists verifies that the item at idx exists.

type LookupInSpec

type LookupInSpec struct {
	// contains filtered or unexported fields
}

LookupInSpec is the representation of an operation available when calling LookupIn

func CountSpec

func CountSpec(path string, opts *CountSpecOptions) LookupInSpec

CountSpec allows you to retrieve the number of items in an array or keys within an dictionary within an element of a document.

func ExistsSpec

func ExistsSpec(path string, opts *ExistsSpecOptions) LookupInSpec

ExistsSpec is similar to Path(), but does not actually retrieve the value from the server. This may save bandwidth if you only need to check for the existence of a path (without caring for its content). You can check the status of this operation by using .ContentAt (and ignoring the value) or .Exists() on the LookupResult.

func GetSpec

func GetSpec(path string, opts *GetSpecOptions) LookupInSpec

GetSpec indicates a path to be retrieved from the document. The value of the path can later be retrieved from the LookupResult. The path syntax follows query's path syntax (e.g. `foo.bar.baz`).

type LostTransactionsCleaner added in v2.4.0

type LostTransactionsCleaner interface {
	ProcessATR(bucket *Bucket, collection, scope, atrID string) ([]TransactionCleanupAttempt, TransactionsProcessATRStats)
	ProcessClient(bucket *Bucket, collection, scope, clientUUID string) (*TransactionsClientRecordDetails, error)
	RemoveClient(uuid string) error
	Close()
}

LostTransactionsCleaner is responsible for performing cleanup of lost transactions. Internal: This should never be used and is not supported.

func NewLostTransactionsCleanup added in v2.4.0

func NewLostTransactionsCleanup(bucketProvider TransactionsBucketProviderFn, locationProvider TransactionsLostCleanupKeyspaceProviderFn,
	config *TransactionsConfig) LostTransactionsCleaner

NewLostTransactionsCleanup returns a LostTransactionsCleaner implementation. Internal: This should never be used and is not supported.

type Meter added in v2.3.0

type Meter interface {
	Counter(name string, tags map[string]string) (Counter, error)
	ValueRecorder(name string, tags map[string]string) (ValueRecorder, error)
}

Meter handles metrics information for SDK operations.

type MutateInOptions

type MutateInOptions struct {
	Expiry          time.Duration
	Cas             Cas
	PersistTo       uint
	ReplicateTo     uint
	DurabilityLevel DurabilityLevel
	StoreSemantic   StoreSemantics
	Timeout         time.Duration
	RetryStrategy   RetryStrategy
	ParentSpan      RequestSpan
	PreserveExpiry  bool

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context

	// Internal: This should never be used and is not supported.
	Internal struct {
		DocFlags SubdocDocFlag
		User     string
	}
}

MutateInOptions are the set of options available to MutateIn.

type MutateInResult

type MutateInResult struct {
	MutationResult
	// contains filtered or unexported fields
}

MutateInResult is the return type of any mutate in related operations. It contains Cas, mutation tokens and any returned content.

func (MutateInResult) ContentAt

func (mir MutateInResult) ContentAt(idx uint, valuePtr interface{}) error

ContentAt retrieves the value of the operation by its index. The index is the position of the operation as it was added to the builder.

type MutateInSpec

type MutateInSpec struct {
	// contains filtered or unexported fields
}

MutateInSpec is the representation of an operation available when calling MutateIn

func ArrayAddUniqueSpec

func ArrayAddUniqueSpec(path string, val interface{}, opts *ArrayAddUniqueSpecOptions) MutateInSpec

ArrayAddUniqueSpec adds an dictionary add unique operation to this mutation operation set.

func ArrayAppendSpec

func ArrayAppendSpec(path string, val interface{}, opts *ArrayAppendSpecOptions) MutateInSpec

ArrayAppendSpec adds an element(s) to the end (i.e. right) of an array

func ArrayInsertSpec

func ArrayInsertSpec(path string, val interface{}, opts *ArrayInsertSpecOptions) MutateInSpec

ArrayInsertSpec inserts an element at a given position within an array. The position should be specified as part of the path, e.g. path.to.array[3]

func ArrayPrependSpec

func ArrayPrependSpec(path string, val interface{}, opts *ArrayPrependSpecOptions) MutateInSpec

ArrayPrependSpec adds an element to the beginning (i.e. left) of an array

func DecrementSpec

func DecrementSpec(path string, delta int64, opts *CounterSpecOptions) MutateInSpec

DecrementSpec adds a decrement operation to this mutation operation set.

func IncrementSpec

func IncrementSpec(path string, delta int64, opts *CounterSpecOptions) MutateInSpec

IncrementSpec adds an increment operation to this mutation operation set.

func InsertSpec

func InsertSpec(path string, val interface{}, opts *InsertSpecOptions) MutateInSpec

InsertSpec inserts a value at the specified path within the document.

func RemoveSpec

func RemoveSpec(path string, opts *RemoveSpecOptions) MutateInSpec

RemoveSpec removes the field at path.

func ReplaceSpec

func ReplaceSpec(path string, val interface{}, opts *ReplaceSpecOptions) MutateInSpec

ReplaceSpec replaces the value of the field at path.

func UpsertSpec

func UpsertSpec(path string, val interface{}, opts *UpsertSpecOptions) MutateInSpec

UpsertSpec creates a new value at the specified path within the document if it does not exist, if it does exist then it updates it.

type MutationMacro

type MutationMacro string

MutationMacro can be supplied to MutateIn operations to perform ExpandMacros operations.

const (
	// MutationMacroCAS can be used to tell the server to use the CAS macro.
	MutationMacroCAS MutationMacro = "\"${Mutation.CAS}\""

	// MutationMacroSeqNo can be used to tell the server to use the seqno macro.
	MutationMacroSeqNo MutationMacro = "\"${Mutation.seqno}\""

	// MutationMacroValueCRC32c can be used to tell the server to use the value_crc32c macro.
	MutationMacroValueCRC32c MutationMacro = "\"${Mutation.value_crc32c}\""
)

type MutationResult

type MutationResult struct {
	Result
	// contains filtered or unexported fields
}

MutationResult is the return type of any store related operations. It contains Cas and mutation tokens.

func (MutationResult) MutationToken

func (mr MutationResult) MutationToken() *MutationToken

MutationToken returns the mutation token belonging to an operation.

type MutationState

type MutationState struct {
	// contains filtered or unexported fields
}

MutationState holds and aggregates MutationToken's across multiple operations.

func NewMutationState

func NewMutationState(tokens ...MutationToken) *MutationState

NewMutationState creates a new MutationState for tracking mutation state.

func (*MutationState) Add

func (mt *MutationState) Add(tokens ...MutationToken)

Add includes an operation's mutation information in this mutation state.

func (*MutationState) Internal added in v2.1.4

func (mt *MutationState) Internal() *MutationStateInternal

Internal return a new MutationStateInternal. Internal: This should never be used and is not supported.

func (*MutationState) MarshalJSON

func (mt *MutationState) MarshalJSON() ([]byte, error)

MarshalJSON marshal's this mutation state to JSON.

func (*MutationState) UnmarshalJSON

func (mt *MutationState) UnmarshalJSON(data []byte) error

UnmarshalJSON unmarshal's a mutation state from JSON.

type MutationStateInternal added in v2.1.4

type MutationStateInternal struct {
	// contains filtered or unexported fields
}

MutationStateInternal specifies internal operations. Internal: This should never be used and is not supported.

func (*MutationStateInternal) Add added in v2.1.4

func (mti *MutationStateInternal) Add(bucket string, tokens ...gocbcore.MutationToken)

Add includes an operation's mutation information in this mutation state.

func (*MutationStateInternal) Tokens added in v2.1.4

func (mti *MutationStateInternal) Tokens() []MutationToken

Tokens returns the tokens belonging to the mutation state.

type MutationToken

type MutationToken struct {
	// contains filtered or unexported fields
}

MutationToken holds the mutation state information from an operation.

func (MutationToken) BucketName

func (mt MutationToken) BucketName() string

BucketName returns the name of the bucket that this token belongs to.

func (MutationToken) PartitionID

func (mt MutationToken) PartitionID() uint64

PartitionID returns the ID of the vbucket that this token belongs to.

func (MutationToken) PartitionUUID

func (mt MutationToken) PartitionUUID() uint64

PartitionUUID returns the UUID of the vbucket that this token belongs to.

func (MutationToken) SequenceNumber

func (mt MutationToken) SequenceNumber() uint64

SequenceNumber returns the sequence number of the vbucket that this token belongs to.

type NewAzureBlobExternalAnalyticsLinkOptions added in v2.3.0

type NewAzureBlobExternalAnalyticsLinkOptions struct {
	ConnectionString      string
	AccountName           string
	AccountKey            string
	SharedAccessSignature string
	BlobEndpoint          string
	EndpointSuffix        string
}

NewAzureBlobExternalAnalyticsLinkOptions are the options available when creating a new AzureBlobExternalAnalyticsLink. VOLATILE: This API is subject to change at any time.

type NewCouchbaseRemoteAnalyticsLinkOptions added in v2.3.0

type NewCouchbaseRemoteAnalyticsLinkOptions struct {
	Encryption CouchbaseRemoteAnalyticsEncryptionSettings
	Username   string
	Password   string
}

NewCouchbaseRemoteAnalyticsLinkOptions are the options available when creating a new CouchbaseRemoteAnalyticsLink.

type NewS3ExternalAnalyticsLinkOptions added in v2.3.0

type NewS3ExternalAnalyticsLinkOptions struct {
	SessionToken    string
	ServiceEndpoint string
}

NewS3ExternalAnalyticsLinkOptions are the options available when creating a new S3ExternalAnalyticsLink.

type NoRetryRetryAction

type NoRetryRetryAction struct {
}

NoRetryRetryAction represents an action that indicates to not retry.

func (*NoRetryRetryAction) Duration

func (ra *NoRetryRetryAction) Duration() time.Duration

Duration is the length of time to wait before retrying an operation.

type NodeMetadata added in v2.4.1

type NodeMetadata struct {
	ClusterCompatibility int
	ClusterMembership    string
	CouchAPIBase         string
	Hostname             string
	InterestingStats     map[string]float64
	MCDMemoryAllocated   float64
	MCDMemoryReserved    float64
	MemoryFree           float64
	MemoryTotal          float64
	OS                   string
	Ports                map[string]int
	Status               string
	Uptime               int
	Version              string
	ThisNode             bool
}

NodeMetadata contains information about a node in the cluster. Internal: This should never be used and is not supported.

type NoopMeter added in v2.3.0

type NoopMeter struct {
}

NoopMeter is a Meter implementation which performs no metrics operations.

func (*NoopMeter) Counter added in v2.3.0

func (nm *NoopMeter) Counter(name string, tags map[string]string) (Counter, error)

Counter is used for incrementing a synchronous count metric.

func (*NoopMeter) ValueRecorder added in v2.3.0

func (nm *NoopMeter) ValueRecorder(name string, tags map[string]string) (ValueRecorder, error)

ValueRecorder is used for grouping synchronous count metrics.

type NoopTracer added in v2.3.0

type NoopTracer struct {
}

NoopTracer is a RequestTracer implementation that does not perform any tracing.

func (*NoopTracer) RequestSpan added in v2.3.0

func (tracer *NoopTracer) RequestSpan(parentContext RequestSpanContext, operationName string) RequestSpan

RequestSpan creates a new RequestSpan.

type Origin

type Origin struct {
	Type string
	Name string
}

Origin indicates why a user has a specific role. Is the Origin Type is "user" then the role is assigned directly to the user. If the type is "group" then it means that the role has been inherited from the group identified by the Name field.

type OrphanReporterConfig

type OrphanReporterConfig struct {
	Disabled       bool
	ReportInterval time.Duration
	SampleSize     uint32
}

OrphanReporterConfig specifies options for controlling the orphan reporter which records when the SDK receives responses for requests that are no longer in the system (usually due to being timed out).

type OtelAwareMeter added in v2.9.2

type OtelAwareMeter interface {
	Wrapped() metric.Meter
	Provider() metric.MeterProvider
}

type OtelAwareRequestSpan added in v2.9.2

type OtelAwareRequestSpan interface {
	Wrapped() trace.Span
}

type OtelAwareRequestTracer added in v2.9.2

type OtelAwareRequestTracer interface {
	Wrapped() trace.Tracer
	Provider() trace.TracerProvider
}

type PasswordAuthenticator

type PasswordAuthenticator struct {
	Username string
	Password string
}

PasswordAuthenticator implements an Authenticator which uses an RBAC username and password.

func (PasswordAuthenticator) Certificate

func (ra PasswordAuthenticator) Certificate(req AuthCertRequest) (*tls.Certificate, error)

Certificate returns the certificate to use when connecting to a specified server. VOLATILE: This API is subject to change at any time.

func (PasswordAuthenticator) Credentials

func (ra PasswordAuthenticator) Credentials(req AuthCredsRequest) ([]UserPassPair, error)

Credentials returns the credentials for a particular service. VOLATILE: This API is subject to change at any time.

func (PasswordAuthenticator) SupportsNonTLS

func (ra PasswordAuthenticator) SupportsNonTLS() bool

SupportsNonTLS returns whether this authenticator can authenticate a non-TLS connection. VOLATILE: This API is subject to change at any time.

func (PasswordAuthenticator) SupportsTLS

func (ra PasswordAuthenticator) SupportsTLS() bool

SupportsTLS returns whether this authenticator can authenticate a TLS connection. VOLATILE: This API is subject to change at any time.

type PauseEventingFunctionOptions added in v2.3.2

type PauseEventingFunctionOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

PauseEventingFunctionOptions are the options available when using the PauseFunction operation.

type PauseIngestSearchIndexOptions

type PauseIngestSearchIndexOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

PauseIngestSearchIndexOptions is the set of options available to the search index PauseIngest operation.

type PingOptions

type PingOptions struct {
	ServiceTypes []ServiceType
	ReportID     string
	Timeout      time.Duration
	ParentSpan   RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

PingOptions are the options available to the Ping operation.

type PingResult

type PingResult struct {
	ID       string
	Services map[ServiceType][]EndpointPingReport
	// contains filtered or unexported fields
}

PingResult encapsulates the details from a executed ping operation.

func (*PingResult) MarshalJSON

func (report *PingResult) MarshalJSON() ([]byte, error)

MarshalJSON generates a JSON representation of this ping report.

type PingState

type PingState uint

PingState specifies the result of the ping operation

const (
	// PingStateOk indicates that the ping operation was successful.
	PingStateOk PingState = iota + 1

	// PingStateTimeout indicates that the ping operation timed out.
	PingStateTimeout

	// PingStateError indicates that the ping operation failed.
	PingStateError
)

type PrependOp

type PrependOp struct {
	ID     string
	Value  string
	Result *MutationResult
	Err    error
	// contains filtered or unexported fields
}

PrependOp represents a type of `BulkOp` used for Prepend operations. See BulkOp. UNCOMMITTED: This API may change in the future.

type PrependOptions

type PrependOptions struct {
	Timeout         time.Duration
	DurabilityLevel DurabilityLevel
	PersistTo       uint
	ReplicateTo     uint
	Cas             Cas
	RetryStrategy   RetryStrategy
	ParentSpan      RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context

	// Internal: This should never be used and is not supported.
	Internal struct {
		User string
	}
}

PrependOptions are the options available to the Prepend operation.

type PublishDesignDocumentOptions

type PublishDesignDocumentOptions struct {
	Timeout       time.Duration
	RetryStrategy RetryStrategy
	ParentSpan    RequestSpan

	// Using a deadlined Context alongside a Timeout will cause the shorter of the two to cause cancellation, this
	// also applies to global level timeouts.
	// UNCOMMITTED: This API may change in the future.
	Context context.Context
}

PublishDesignDocumentOptions is the set of options available to the ViewIndexManager PublishDesignDocument operation.

type QueryError

type QueryError struct {
	InnerError      error            `json:"-"`
	Statement       string           `json:"statement,omitempty"`
	ClientContextID string           `json:"client_context_id,omitempty"`
	Errors          []QueryErrorDesc `json:"errors,omitempty"`
	Endpoint        string           `json:"endpoint,omitempty"`
	RetryReasons    []RetryReason    `json:"retry_reasons,omitempty"`
	RetryAttempts   uint32           `json:"retry_attempts,omitempty"`
	ErrorText       string           `json:"error_text,omitempty"`
	HTTPStatusCode  int              `json:"http_status_code,omitempty"`
}

QueryError is the error type of all query errors. UNCOMMITTED: This API may change in the future.

func (QueryError) Error

func (e QueryError) Error() string

Error returns the string representation of this error.

func (QueryError) MarshalJSON added in v2.2.1

func (e QueryError) MarshalJSON() ([]byte, error)

func (QueryError) Unwrap

func (e QueryError) Unwrap() error

Unwrap returns the underlying cause for this error.

type QueryErrorDesc

type QueryErrorDesc struct {
	Code    uint32
	Message string
	Retry   bool
	Reason  map[string]interface{}
}

QueryErrorDesc represents a specific error returned from the query service.

func (QueryErrorDesc) MarshalJSON added in v2.4.1

func (e QueryErrorDesc) MarshalJSON() ([]byte, error)

MarshalJSON implements the Marshaler interface.

type QueryIndex

type QueryIndex struct {
	Name           string
	IsPrimary      bool
	Type           QueryIndexType
	State          string
	Keyspace       string
	Namespace      string
	IndexKey       []string
	Condition      string
	Partition      string
	CollectionName string
	ScopeName      string
	BucketName     string
}

QueryIndex represents a Couchbase GSI index.

type QueryIndexManager

type QueryIndexManager struct {
	// contains filtered or unexported fields
}

QueryIndexManager provides methods for performing Couchbase query index management.

func (*QueryIndexManager) BuildDeferredIndexes

func (qm *QueryIndexManager) BuildDeferredIndexes(bucketName string, opts *BuildDeferredQueryIndexOptions) ([]string, error)

BuildDeferredIndexes builds all indexes which are currently in deferred state. If no collection and scope names are specified in the options then *only* indexes created on the bucket directly will be built.

func (*QueryIndexManager) CreateIndex