api package - github.com/influxdata/influxdb-client-go/v2/api - Go Packages (original) (raw)

Package api provides clients for InfluxDB server APIs.

This section is empty.

This section is empty.

DataToPoint converts custom point structures into a Point. Each visible field of the point on input must be annotated with 'lp' prefix and values measurement,tag, field or timestamp. Valid point must contain measurement and at least one field.

A field with timestamp must be of a type time.Time

type TemperatureSensor struct { Measurement string lp:"measurement" Sensor string lp:"tag,sensor" ID string lp:"tag,device_id" Temp float64 lp:"field,temperature" Hum int lp:"field,humidity" Time time.Time lp:"timestamp,temperature" Description string lp:"-" }

DefaultDialect return flux query Dialect with full annotations (datatype, group, default), header and comma char as a delimiter

type AuthorizationsAPI interface {

GetAuthorizations(ctx [context](/context).[Context](/context#Context)) (*[][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Authorization](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Authorization), [error](/builtin#error))

FindAuthorizationsByUserName(ctx [context](/context).[Context](/context#Context), userName [string](/builtin#string)) (*[][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Authorization](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Authorization), [error](/builtin#error))

FindAuthorizationsByUserID(ctx [context](/context).[Context](/context#Context), userID [string](/builtin#string)) (*[][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Authorization](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Authorization), [error](/builtin#error))

FindAuthorizationsByOrgName(ctx [context](/context).[Context](/context#Context), orgName [string](/builtin#string)) (*[][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Authorization](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Authorization), [error](/builtin#error))

FindAuthorizationsByOrgID(ctx [context](/context).[Context](/context#Context), orgID [string](/builtin#string)) (*[][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Authorization](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Authorization), [error](/builtin#error))

CreateAuthorization(ctx [context](/context).[Context](/context#Context), authorization *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Authorization](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Authorization)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Authorization](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Authorization), [error](/builtin#error))

CreateAuthorizationWithOrgID(ctx [context](/context).[Context](/context#Context), orgID [string](/builtin#string), permissions [][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Permission](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Permission)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Authorization](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Authorization), [error](/builtin#error))

UpdateAuthorizationStatus(ctx [context](/context).[Context](/context#Context), authorization *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Authorization](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Authorization), status [domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[AuthorizationUpdateRequestStatus](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#AuthorizationUpdateRequestStatus)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Authorization](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Authorization), [error](/builtin#error))

UpdateAuthorizationStatusWithID(ctx [context](/context).[Context](/context#Context), authID [string](/builtin#string), status [domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[AuthorizationUpdateRequestStatus](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#AuthorizationUpdateRequestStatus)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Authorization](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Authorization), [error](/builtin#error))

DeleteAuthorization(ctx [context](/context).[Context](/context#Context), authorization *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Authorization](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Authorization)) [error](/builtin#error)

DeleteAuthorizationWithID(ctx [context](/context).[Context](/context#Context), authID [string](/builtin#string)) [error](/builtin#error)

}

AuthorizationsAPI provides methods for organizing Authorization in a InfluxDB server

package main

import ( "context" "fmt"

"github.com/influxdata/influxdb-client-go/v2/domain"

influxdb2 "github.com/influxdata/influxdb-client-go/v2/internal/examples"

)

func main() { // Create a new client using an InfluxDB server base URL and an authentication token client := influxdb2.NewClient("http://localhost:8086", "my-token")

// Find user to grant permission
user, err := client.UsersAPI().FindUserByName(context.Background(), "user-01")
if err != nil {
    panic(err)
}

// Find organization
org, err := client.OrganizationsAPI().FindOrganizationByName(context.Background(), "my-org")
if err != nil {
    panic(err)
}

// create write permission for buckets
permissionWrite := &domain.Permission{
    Action: domain.PermissionActionWrite,
    Resource: domain.Resource{
        Type: domain.ResourceTypeBuckets,
    },
}

// create read permission for buckets
permissionRead := &domain.Permission{
    Action: domain.PermissionActionRead,
    Resource: domain.Resource{
        Type: domain.ResourceTypeBuckets,
    },
}

// group permissions
permissions := []domain.Permission{*permissionWrite, *permissionRead}

// create authorization object using info above
auth := &domain.Authorization{
    OrgID:       org.Id,
    Permissions: &permissions,
    UserID:      user.Id,
}

// grant permission and create token
authCreated, err := client.AuthorizationsAPI().CreateAuthorization(context.Background(), auth)
if err != nil {
    panic(err)
}
// Use token
fmt.Println("Token: ", *authCreated.Token)
// Ensures background processes finishes
client.Close()

}

Output:

NewAuthorizationsAPI creates new instance of AuthorizationsAPI

type BucketsAPI interface {

GetBuckets(ctx [context](/context).[Context](/context#Context), pagingOptions ...[PagingOption](#PagingOption)) (*[][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Bucket](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Bucket), [error](/builtin#error))

FindBucketByName(ctx [context](/context).[Context](/context#Context), bucketName [string](/builtin#string)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Bucket](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Bucket), [error](/builtin#error))

FindBucketByID(ctx [context](/context).[Context](/context#Context), bucketID [string](/builtin#string)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Bucket](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Bucket), [error](/builtin#error))


FindBucketsByOrgID(ctx [context](/context).[Context](/context#Context), orgID [string](/builtin#string), pagingOptions ...[PagingOption](#PagingOption)) (*[][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Bucket](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Bucket), [error](/builtin#error))

FindBucketsByOrgName(ctx [context](/context).[Context](/context#Context), orgName [string](/builtin#string), pagingOptions ...[PagingOption](#PagingOption)) (*[][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Bucket](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Bucket), [error](/builtin#error))

CreateBucket(ctx [context](/context).[Context](/context#Context), bucket *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Bucket](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Bucket)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Bucket](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Bucket), [error](/builtin#error))

CreateBucketWithName(ctx [context](/context).[Context](/context#Context), org *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Organization](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Organization), bucketName [string](/builtin#string), rules ...[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[RetentionRule](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#RetentionRule)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Bucket](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Bucket), [error](/builtin#error))

CreateBucketWithNameWithID(ctx [context](/context).[Context](/context#Context), orgID, bucketName [string](/builtin#string), rules ...[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[RetentionRule](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#RetentionRule)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Bucket](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Bucket), [error](/builtin#error))

UpdateBucket(ctx [context](/context).[Context](/context#Context), bucket *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Bucket](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Bucket)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Bucket](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Bucket), [error](/builtin#error))

DeleteBucket(ctx [context](/context).[Context](/context#Context), bucket *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Bucket](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Bucket)) [error](/builtin#error)

DeleteBucketWithID(ctx [context](/context).[Context](/context#Context), bucketID [string](/builtin#string)) [error](/builtin#error)

GetMembers(ctx [context](/context).[Context](/context#Context), bucket *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Bucket](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Bucket)) (*[][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[ResourceMember](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#ResourceMember), [error](/builtin#error))

GetMembersWithID(ctx [context](/context).[Context](/context#Context), bucketID [string](/builtin#string)) (*[][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[ResourceMember](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#ResourceMember), [error](/builtin#error))

AddMember(ctx [context](/context).[Context](/context#Context), bucket *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Bucket](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Bucket), user *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[User](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#User)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[ResourceMember](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#ResourceMember), [error](/builtin#error))

AddMemberWithID(ctx [context](/context).[Context](/context#Context), bucketID, memberID [string](/builtin#string)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[ResourceMember](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#ResourceMember), [error](/builtin#error))

RemoveMember(ctx [context](/context).[Context](/context#Context), bucket *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Bucket](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Bucket), user *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[User](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#User)) [error](/builtin#error)

RemoveMemberWithID(ctx [context](/context).[Context](/context#Context), bucketID, memberID [string](/builtin#string)) [error](/builtin#error)

GetOwners(ctx [context](/context).[Context](/context#Context), bucket *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Bucket](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Bucket)) (*[][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[ResourceOwner](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#ResourceOwner), [error](/builtin#error))

GetOwnersWithID(ctx [context](/context).[Context](/context#Context), bucketID [string](/builtin#string)) (*[][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[ResourceOwner](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#ResourceOwner), [error](/builtin#error))

AddOwner(ctx [context](/context).[Context](/context#Context), bucket *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Bucket](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Bucket), user *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[User](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#User)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[ResourceOwner](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#ResourceOwner), [error](/builtin#error))

AddOwnerWithID(ctx [context](/context).[Context](/context#Context), bucketID, memberID [string](/builtin#string)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[ResourceOwner](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#ResourceOwner), [error](/builtin#error))

RemoveOwner(ctx [context](/context).[Context](/context#Context), bucket *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Bucket](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Bucket), user *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[User](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#User)) [error](/builtin#error)

RemoveOwnerWithID(ctx [context](/context).[Context](/context#Context), bucketID, memberID [string](/builtin#string)) [error](/builtin#error)

}

BucketsAPI provides methods for managing Buckets in a InfluxDB server.

package main

import ( "context"

"github.com/influxdata/influxdb-client-go/v2/domain"

influxdb2 "github.com/influxdata/influxdb-client-go/v2/internal/examples"

)

func main() { // Create a new client using an InfluxDB server base URL and an authentication token client := influxdb2.NewClient("http://localhost:8086", "my-token")

ctx := context.Background()
// Get Buckets API client
bucketsAPI := client.BucketsAPI()

// Get organization that will own new bucket
org, err := client.OrganizationsAPI().FindOrganizationByName(ctx, "my-org")
if err != nil {
    panic(err)
}
// Create  a bucket with 1 day retention policy
bucket, err := bucketsAPI.CreateBucketWithName(ctx, org, "bucket-sensors", domain.RetentionRule{EverySeconds: 3600 * 24})
if err != nil {
    panic(err)
}

// Update description of the bucket
desc := "Bucket for sensor data"
bucket.Description = &desc
bucket, err = bucketsAPI.UpdateBucket(ctx, bucket)
if err != nil {
    panic(err)
}

// Close the client
client.Close()

}

Output:

NewBucketsAPI creates new instance of BucketsAPI

type DeleteAPI interface {

Delete(ctx [context](/context).[Context](/context#Context), org *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Organization](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Organization), bucket *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Bucket](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Bucket), start, stop [time](/time).[Time](/time#Time), predicate [string](/builtin#string)) [error](/builtin#error)

DeleteWithID(ctx [context](/context).[Context](/context#Context), orgID, bucketID [string](/builtin#string), start, stop [time](/time).[Time](/time#Time), predicate [string](/builtin#string)) [error](/builtin#error)

DeleteWithName(ctx [context](/context).[Context](/context#Context), orgName, bucketName [string](/builtin#string), start, stop [time](/time).[Time](/time#Time), predicate [string](/builtin#string)) [error](/builtin#error)

}

DeleteAPI provides methods for deleting time series data from buckets. Deleted series are selected by the time range specified by start and stop arguments and optional predicate string which contains condition for selecting data for deletion, such as:

tag1="value1" and (tag2="value2" and tag3!="value3")

Empty predicate string means all data from the given time range will be deleted. See https://v2.docs.influxdata.com/v2.0/reference/syntax/delete-predicate/for more info about predicate syntax.

package main

import ( "context" "time"

influxdb2 "github.com/influxdata/influxdb-client-go/v2/internal/examples"

)

func main() { // Create a new client using an InfluxDB server base URL and an authentication token client := influxdb2.NewClient("http://localhost:8086", "my-token")

ctx := context.Background()
// Get Delete API client
deleteAPI := client.DeleteAPI()
// Delete last hour data with tag b = static
err := deleteAPI.DeleteWithName(ctx, "org", "my-bucket", time.Now().Add(-time.Hour), time.Now(), "b=static")
if err != nil {
    panic(err)
}

// Close the client
client.Close()

}

Output:

NewDeleteAPI creates new instance of DeleteAPI

type LabelsAPI interface {

GetLabels(ctx [context](/context).[Context](/context#Context)) (*[][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Label](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Label), [error](/builtin#error))

FindLabelsByOrg(ctx [context](/context).[Context](/context#Context), org *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Organization](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Organization)) (*[][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Label](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Label), [error](/builtin#error))

FindLabelsByOrgID(ctx [context](/context).[Context](/context#Context), orgID [string](/builtin#string)) (*[][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Label](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Label), [error](/builtin#error))

FindLabelByID(ctx [context](/context).[Context](/context#Context), labelID [string](/builtin#string)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Label](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Label), [error](/builtin#error))

FindLabelByName(ctx [context](/context).[Context](/context#Context), orgID, labelName [string](/builtin#string)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Label](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Label), [error](/builtin#error))

CreateLabel(ctx [context](/context).[Context](/context#Context), label *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[LabelCreateRequest](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#LabelCreateRequest)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Label](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Label), [error](/builtin#error))


CreateLabelWithName(ctx [context](/context).[Context](/context#Context), org *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Organization](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Organization), labelName [string](/builtin#string), properties map[[string](/builtin#string)][string](/builtin#string)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Label](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Label), [error](/builtin#error))


CreateLabelWithNameWithID(ctx [context](/context).[Context](/context#Context), orgID, labelName [string](/builtin#string), properties map[[string](/builtin#string)][string](/builtin#string)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Label](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Label), [error](/builtin#error))


UpdateLabel(ctx [context](/context).[Context](/context#Context), label *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Label](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Label)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Label](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Label), [error](/builtin#error))

DeleteLabelWithID(ctx [context](/context).[Context](/context#Context), labelID [string](/builtin#string)) [error](/builtin#error)

DeleteLabel(ctx [context](/context).[Context](/context#Context), label *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Label](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Label)) [error](/builtin#error)

}

LabelsAPI provides methods for managing labels in a InfluxDB server.

package main

import ( "context"

influxdb2 "github.com/influxdata/influxdb-client-go/v2/internal/examples"

)

func main() { // Create a new client using an InfluxDB server base URL and an authentication token client := influxdb2.NewClient("http://localhost:8086", "my-token")

ctx := context.Background()
// Get Labels API client
labelsAPI := client.LabelsAPI()
// Get Organizations API client
orgsAPI := client.OrganizationsAPI()

// Get organization that will own label
myorg, err := orgsAPI.FindOrganizationByName(ctx, "my-org")
if err != nil {
    panic(err)
}

labelName := "Active State"
props := map[string]string{"color": "33ffdd", "description": "Marks org active"}
label, err := labelsAPI.CreateLabelWithName(ctx, myorg, labelName, props)
if err != nil {
    panic(err)
}

// Change color property
label.Properties.AdditionalProperties = map[string]string{"color": "ff1122"}
label, err = labelsAPI.UpdateLabel(ctx, label)
if err != nil {
    panic(err)
}

// Close the client
client.Close()

}

Output:

NewLabelsAPI creates new instance of LabelsAPI

type OrganizationsAPI interface {

GetOrganizations(ctx [context](/context).[Context](/context#Context), pagingOptions ...[PagingOption](#PagingOption)) (*[][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Organization](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Organization), [error](/builtin#error))

FindOrganizationByName(ctx [context](/context).[Context](/context#Context), orgName [string](/builtin#string)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Organization](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Organization), [error](/builtin#error))

FindOrganizationByID(ctx [context](/context).[Context](/context#Context), orgID [string](/builtin#string)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Organization](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Organization), [error](/builtin#error))


FindOrganizationsByUserID(ctx [context](/context).[Context](/context#Context), userID [string](/builtin#string), pagingOptions ...[PagingOption](#PagingOption)) (*[][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Organization](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Organization), [error](/builtin#error))

CreateOrganization(ctx [context](/context).[Context](/context#Context), org *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Organization](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Organization)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Organization](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Organization), [error](/builtin#error))

CreateOrganizationWithName(ctx [context](/context).[Context](/context#Context), orgName [string](/builtin#string)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Organization](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Organization), [error](/builtin#error))

UpdateOrganization(ctx [context](/context).[Context](/context#Context), org *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Organization](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Organization)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Organization](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Organization), [error](/builtin#error))

DeleteOrganization(ctx [context](/context).[Context](/context#Context), org *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Organization](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Organization)) [error](/builtin#error)

DeleteOrganizationWithID(ctx [context](/context).[Context](/context#Context), orgID [string](/builtin#string)) [error](/builtin#error)

GetMembers(ctx [context](/context).[Context](/context#Context), org *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Organization](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Organization)) (*[][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[ResourceMember](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#ResourceMember), [error](/builtin#error))

GetMembersWithID(ctx [context](/context).[Context](/context#Context), orgID [string](/builtin#string)) (*[][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[ResourceMember](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#ResourceMember), [error](/builtin#error))

AddMember(ctx [context](/context).[Context](/context#Context), org *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Organization](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Organization), user *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[User](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#User)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[ResourceMember](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#ResourceMember), [error](/builtin#error))

AddMemberWithID(ctx [context](/context).[Context](/context#Context), orgID, memberID [string](/builtin#string)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[ResourceMember](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#ResourceMember), [error](/builtin#error))

RemoveMember(ctx [context](/context).[Context](/context#Context), org *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Organization](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Organization), user *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[User](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#User)) [error](/builtin#error)

RemoveMemberWithID(ctx [context](/context).[Context](/context#Context), orgID, memberID [string](/builtin#string)) [error](/builtin#error)

GetOwners(ctx [context](/context).[Context](/context#Context), org *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Organization](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Organization)) (*[][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[ResourceOwner](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#ResourceOwner), [error](/builtin#error))

GetOwnersWithID(ctx [context](/context).[Context](/context#Context), orgID [string](/builtin#string)) (*[][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[ResourceOwner](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#ResourceOwner), [error](/builtin#error))

AddOwner(ctx [context](/context).[Context](/context#Context), org *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Organization](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Organization), user *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[User](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#User)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[ResourceOwner](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#ResourceOwner), [error](/builtin#error))

AddOwnerWithID(ctx [context](/context).[Context](/context#Context), orgID, memberID [string](/builtin#string)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[ResourceOwner](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#ResourceOwner), [error](/builtin#error))

RemoveOwner(ctx [context](/context).[Context](/context#Context), org *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Organization](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Organization), user *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[User](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#User)) [error](/builtin#error)

RemoveOwnerWithID(ctx [context](/context).[Context](/context#Context), orgID, memberID [string](/builtin#string)) [error](/builtin#error)

}

OrganizationsAPI provides methods for managing Organizations in a InfluxDB server.

package main

import ( "context"

influxdb2 "github.com/influxdata/influxdb-client-go/v2/internal/examples"

)

func main() { // Create a new client using an InfluxDB server base URL and an authentication token client := influxdb2.NewClient("http://localhost:8086", "my-token")

// Get Organizations API client
orgAPI := client.OrganizationsAPI()

// Create new organization
org, err := orgAPI.CreateOrganizationWithName(context.Background(), "org-2")
if err != nil {
    panic(err)
}

orgDescription := "My second org "
org.Description = &orgDescription

org, err = orgAPI.UpdateOrganization(context.Background(), org)
if err != nil {
    panic(err)
}

// Find user to set owner
user, err := client.UsersAPI().FindUserByName(context.Background(), "user-01")
if err != nil {
    panic(err)
}

// Add another owner (first owner is the one who create organization
_, err = orgAPI.AddOwner(context.Background(), org, user)
if err != nil {
    panic(err)
}

// Create new user to add to org
newUser, err := client.UsersAPI().CreateUserWithName(context.Background(), "user-02")
if err != nil {
    panic(err)
}

// Add new user to organization
_, err = orgAPI.AddMember(context.Background(), org, newUser)
if err != nil {
    panic(err)
}
// Ensures background processes finishes
client.Close()

}

Output:

NewOrganizationsAPI creates new instance of OrganizationsAPI

Paging holds pagination parameters for various Get* functions of InfluxDB 2 API Not the all options are usable for some Get* functions

type PagingOption func(p *Paging)

PagingOption is the function type for applying paging option

PagingWithAfter set after option - the last resource ID from which to seek from (but not including). This is to be used instead of `offset`.

func PagingWithDescending(descending bool) PagingOption

PagingWithDescending changes sorting direction

func PagingWithLimit(limit int) PagingOption

PagingWithLimit sets limit option - maximum number of items returned.

func PagingWithOffset(offset int) PagingOption

PagingWithOffset set starting offset for returning items. Default 0.

func PagingWithSortBy(sortBy string) PagingOption

PagingWithSortBy sets field name which should be used for sorting

type QueryAPI interface {

QueryRaw(ctx [context](/context).[Context](/context#Context), query [string](/builtin#string), dialect *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Dialect](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Dialect)) ([string](/builtin#string), [error](/builtin#error))

QueryRawWithParams(ctx [context](/context).[Context](/context#Context), query [string](/builtin#string), dialect *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Dialect](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Dialect), params interface{}) ([string](/builtin#string), [error](/builtin#error))

Query(ctx [context](/context).[Context](/context#Context), query [string](/builtin#string)) (*[QueryTableResult](#QueryTableResult), [error](/builtin#error))

QueryWithParams(ctx [context](/context).[Context](/context#Context), query [string](/builtin#string), params interface{}) (*[QueryTableResult](#QueryTableResult), [error](/builtin#error))

}

QueryAPI provides methods for performing synchronously flux query against InfluxDB server.

Flux query can contain reference to parameters, which must be passed via queryParams. it can be a struct or map. Param values can be only simple types or time.Time. The name of a struct field or a map key (must be a string) will be a param name. The name of the parameter represented by a struct field can be specified by JSON annotation:

type Condition struct { Start time.Time json:"start" Field string json:"field" Value float64 json:"value" }

Parameters are then accessed via the Flux params object:

query:= from(bucket: "environment") |> range(start: time(v: params.start)) |> filter(fn: (r) => r._measurement == "air") |> filter(fn: (r) => r._field == params.field) |> filter(fn: (r) => r._value > params.value)

package main

import ( "context" "fmt"

influxdb2 "github.com/influxdata/influxdb-client-go/v2/internal/examples"

)

func main() { // Create a new client using an InfluxDB server base URL and an authentication token client := influxdb2.NewClient("http://localhost:8086", "my-token") // Get query client queryAPI := client.QueryAPI("my-org") // get QueryTableResult result, err := queryAPI.Query(context.Background(), from(bucket:"my-bucket")|> range(start: -1h) |> filter(fn: (r) => r._measurement == "stat")) if err == nil { // Iterate over query response for result.Next() { // Notice when group key has changed if result.TableChanged() { fmt.Printf("table: %s\n", result.TableMetadata().String()) } // Access data fmt.Printf("value: %v\n", result.Record().Value()) } // check for an error if result.Err() != nil { fmt.Printf("query parsing error: %s\n", result.Err().Error()) } } else { panic(err) } // Ensures background processes finishes client.Close() }

Output:

package main

import ( "context" "fmt"

"github.com/influxdata/influxdb-client-go/v2/api"

influxdb2 "github.com/influxdata/influxdb-client-go/v2/internal/examples"

)

func main() { // Create a new client using an InfluxDB server base URL and an authentication token client := influxdb2.NewClient("http://localhost:8086", "my-token") // Get query client queryAPI := client.QueryAPI("my-org") // Query and get complete result as a string // Use default dialect result, err := queryAPI.QueryRaw(context.Background(), from(bucket:"my-bucket")|> range(start: -1h) |> filter(fn: (r) => r._measurement == "stat"), api.DefaultDialect()) if err == nil { fmt.Println("QueryResult:") fmt.Println(result) } else { panic(err) } // Ensures background processes finishes client.Close() }

Output:

package main

import ( "context" "fmt"

influxdb2 "github.com/influxdata/influxdb-client-go/v2/internal/examples"

)

func main() { // Create a new client using an InfluxDB server base URL and an authentication token client := influxdb2.NewClient("http://localhost:8086", "my-token") // Get query client queryAPI := client.QueryAPI("my-org") // Define parameters parameters := struct { Start string json:"start" Field string json:"field" Value float64 json:"value" }{ "-1h", "temperature", 25, } // Query with parameters query := from(bucket:"my-bucket") |> range(start: duration(params.start)) |> filter(fn: (r) => r._measurement == "stat") |> filter(fn: (r) => r._field == params.field) |> filter(fn: (r) => r._value > params.value)

// Get result
result, err := queryAPI.QueryWithParams(context.Background(), query, parameters)
if err == nil {
    // Iterate over query response
    for result.Next() {
        // Notice when group key has changed
        if result.TableChanged() {
            fmt.Printf("table: %s\n", result.TableMetadata().String())
        }
        // Access data
        fmt.Printf("value: %v\n", result.Record().Value())
    }
    // check for an error
    if result.Err() != nil {
        fmt.Printf("query parsing error: %s\n", result.Err().Error())
    }
} else {
    panic(err)
}
// Ensures background processes finishes
client.Close()

}

Output:

NewQueryAPI returns new query client for querying buckets belonging to org

type QueryTableResult struct { io.Closer

}

QueryTableResult parses streamed flux query response into structures representing flux table parts Walking though the result is done by repeatedly calling Next() until returns false. Actual flux table info (columns with names, data types, etc) is returned by TableMetadata() method. Data are acquired by Record() method. Preliminary end can be caused by an error, so when Next() return false, check Err() for an error

NewQueryTableResult returns new QueryTableResult

Close reads remaining data and closes underlying Closer

Err returns an error raised during flux query response parsing

Next advances to next row in query result. During the first time it is called, Next creates also table metadata Actual parsed row is available through Record() function Returns false in case of end or an error, otherwise true

Record returns last parsed flux table data row Use Record methods to access value and row properties

func (q *QueryTableResult) TableChanged() bool

TableChanged returns true if last call of Next() found also new result table Table information is available via TableMetadata method

TableMetadata returns actual flux table metadata

func (q *QueryTableResult) TablePosition() int

TablePosition returns actual flux table position in the result, or -1 if no table was found yet Each new table is introduced by an annotation in csv

RunFilter defines filtering options for FindRun* functions.

TaskFilter defines filtering options for FindTasks functions.

type TasksAPI interface {

FindTasks(ctx [context](/context).[Context](/context#Context), filter *[TaskFilter](#TaskFilter)) ([][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Task](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Task), [error](/builtin#error))

GetTask(ctx [context](/context).[Context](/context#Context), task *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Task](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Task)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Task](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Task), [error](/builtin#error))

GetTaskByID(ctx [context](/context).[Context](/context#Context), taskID [string](/builtin#string)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Task](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Task), [error](/builtin#error))


CreateTask(ctx [context](/context).[Context](/context#Context), task *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Task](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Task)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Task](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Task), [error](/builtin#error))


CreateTaskWithEvery(ctx [context](/context).[Context](/context#Context), name, flux, every, orgID [string](/builtin#string)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Task](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Task), [error](/builtin#error))


CreateTaskWithCron(ctx [context](/context).[Context](/context#Context), name, flux, cron, orgID [string](/builtin#string)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Task](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Task), [error](/builtin#error))

CreateTaskByFlux(ctx [context](/context).[Context](/context#Context), flux, orgID [string](/builtin#string)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Task](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Task), [error](/builtin#error))


UpdateTask(ctx [context](/context).[Context](/context#Context), task *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Task](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Task)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Task](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Task), [error](/builtin#error))

DeleteTask(ctx [context](/context).[Context](/context#Context), task *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Task](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Task)) [error](/builtin#error)

DeleteTaskWithID(ctx [context](/context).[Context](/context#Context), taskID [string](/builtin#string)) [error](/builtin#error)

FindMembers(ctx [context](/context).[Context](/context#Context), task *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Task](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Task)) ([][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[ResourceMember](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#ResourceMember), [error](/builtin#error))

FindMembersWithID(ctx [context](/context).[Context](/context#Context), taskID [string](/builtin#string)) ([][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[ResourceMember](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#ResourceMember), [error](/builtin#error))

AddMember(ctx [context](/context).[Context](/context#Context), task *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Task](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Task), user *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[User](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#User)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[ResourceMember](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#ResourceMember), [error](/builtin#error))

AddMemberWithID(ctx [context](/context).[Context](/context#Context), taskID, memberID [string](/builtin#string)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[ResourceMember](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#ResourceMember), [error](/builtin#error))

RemoveMember(ctx [context](/context).[Context](/context#Context), task *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Task](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Task), user *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[User](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#User)) [error](/builtin#error)

RemoveMemberWithID(ctx [context](/context).[Context](/context#Context), taskID, memberID [string](/builtin#string)) [error](/builtin#error)

FindOwners(ctx [context](/context).[Context](/context#Context), task *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Task](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Task)) ([][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[ResourceOwner](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#ResourceOwner), [error](/builtin#error))

FindOwnersWithID(ctx [context](/context).[Context](/context#Context), taskID [string](/builtin#string)) ([][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[ResourceOwner](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#ResourceOwner), [error](/builtin#error))

AddOwner(ctx [context](/context).[Context](/context#Context), task *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Task](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Task), user *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[User](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#User)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[ResourceOwner](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#ResourceOwner), [error](/builtin#error))

AddOwnerWithID(ctx [context](/context).[Context](/context#Context), taskID, memberID [string](/builtin#string)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[ResourceOwner](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#ResourceOwner), [error](/builtin#error))

RemoveOwner(ctx [context](/context).[Context](/context#Context), task *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Task](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Task), user *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[User](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#User)) [error](/builtin#error)

RemoveOwnerWithID(ctx [context](/context).[Context](/context#Context), taskID, memberID [string](/builtin#string)) [error](/builtin#error)

FindRuns(ctx [context](/context).[Context](/context#Context), task *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Task](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Task), filter *[RunFilter](#RunFilter)) ([][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Run](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Run), [error](/builtin#error))

FindRunsWithID(ctx [context](/context).[Context](/context#Context), taskID [string](/builtin#string), filter *[RunFilter](#RunFilter)) ([][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Run](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Run), [error](/builtin#error))

GetRun(ctx [context](/context).[Context](/context#Context), run *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Run](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Run)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Run](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Run), [error](/builtin#error))

GetRunByID(ctx [context](/context).[Context](/context#Context), taskID, runID [string](/builtin#string)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Run](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Run), [error](/builtin#error))

FindRunLogs(ctx [context](/context).[Context](/context#Context), run *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Run](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Run)) ([][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[LogEvent](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#LogEvent), [error](/builtin#error))

FindRunLogsWithID(ctx [context](/context).[Context](/context#Context), taskID, runID [string](/builtin#string)) ([][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[LogEvent](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#LogEvent), [error](/builtin#error))

RunManually(ctx [context](/context).[Context](/context#Context), task *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Task](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Task)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Run](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Run), [error](/builtin#error))

RunManuallyWithID(ctx [context](/context).[Context](/context#Context), taskID [string](/builtin#string)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Run](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Run), [error](/builtin#error))

RetryRun(ctx [context](/context).[Context](/context#Context), run *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Run](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Run)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Run](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Run), [error](/builtin#error))

RetryRunWithID(ctx [context](/context).[Context](/context#Context), taskID, runID [string](/builtin#string)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Run](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Run), [error](/builtin#error))

CancelRun(ctx [context](/context).[Context](/context#Context), run *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Run](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Run)) [error](/builtin#error)

CancelRunWithID(ctx [context](/context).[Context](/context#Context), taskID, runID [string](/builtin#string)) [error](/builtin#error)

FindLogs(ctx [context](/context).[Context](/context#Context), task *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Task](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Task)) ([][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[LogEvent](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#LogEvent), [error](/builtin#error))

FindLogsWithID(ctx [context](/context).[Context](/context#Context), taskID [string](/builtin#string)) ([][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[LogEvent](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#LogEvent), [error](/builtin#error))

FindLabels(ctx [context](/context).[Context](/context#Context), task *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Task](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Task)) ([][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Label](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Label), [error](/builtin#error))

FindLabelsWithID(ctx [context](/context).[Context](/context#Context), taskID [string](/builtin#string)) ([][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Label](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Label), [error](/builtin#error))

AddLabel(ctx [context](/context).[Context](/context#Context), task *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Task](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Task), label *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Label](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Label)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Label](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Label), [error](/builtin#error))

AddLabelWithID(ctx [context](/context).[Context](/context#Context), taskID, labelID [string](/builtin#string)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Label](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Label), [error](/builtin#error))

RemoveLabel(ctx [context](/context).[Context](/context#Context), task *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Task](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Task), label *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[Label](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#Label)) [error](/builtin#error)

RemoveLabelWithID(ctx [context](/context).[Context](/context#Context), taskID, labelID [string](/builtin#string)) [error](/builtin#error)

}

TasksAPI provides methods for managing tasks and task runs in an InfluxDB server.

package main

import ( "context" "fmt"

influxdb2 "github.com/influxdata/influxdb-client-go/v2/internal/examples"

)

func main() { // Create a new client using an InfluxDB server base URL and an authentication token client := influxdb2.NewClient("http://localhost:8086", "my-token")

ctx := context.Background()
// Get Delete API client
tasksAPI := client.TasksAPI()
// Get organization that will own task
myorg, err := client.OrganizationsAPI().FindOrganizationByName(ctx, "my-org")
if err != nil {
    panic(err)
}
// task flux script from https://www.influxdata.com/blog/writing-tasks-and-setting-up-alerts-for-influxdb-cloud/
flux := `fruitCollected = from(bucket: “farming”)

|> range(start: -task.every) |> filter(fn: (r) => (r._measurement == “totalFruitsCollected)) |> filter(fn: (r) => (r._field == “fruits)) |> group(columns: [“farmName”]) |> aggregateWindow(fn: sum, every: task.every) |> map(fn: (r) => { return: _time: r._time, _stop: r._stop, _start: r._start, _measurement: “fruitCollectionRate”, _field: “fruits”, _value: r._value, farmName: farmName, } })

fruitCollected |> to(bucket: “farming”) ` task, err := tasksAPI.CreateTaskWithEvery(ctx, "fruitCollectedRate", flux, "1h", *myorg.Id) if err != nil { panic(err) } // Force running a task run, err := tasksAPI.RunManually(ctx, task) if err != nil { panic(err) }

fmt.Println("Forced run completed on ", *run.FinishedAt, " with status ", *run.Status)

// Print logs
logs, err := tasksAPI.FindRunLogs(ctx, run)
if err != nil {
    panic(err)
}

fmt.Println("Log:")
for _, logEvent := range logs {
    fmt.Println(" Time:", *logEvent.Time, ", Message: ", *logEvent.Message)
}

// Close the client
client.Close()

}

Output:

NewTasksAPI creates new instance of TasksAPI

type UsersAPI interface {

GetUsers(ctx [context](/context).[Context](/context#Context)) (*[][domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[User](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#User), [error](/builtin#error))

FindUserByID(ctx [context](/context).[Context](/context#Context), userID [string](/builtin#string)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[User](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#User), [error](/builtin#error))

FindUserByName(ctx [context](/context).[Context](/context#Context), userName [string](/builtin#string)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[User](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#User), [error](/builtin#error))

CreateUser(ctx [context](/context).[Context](/context#Context), user *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[User](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#User)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[User](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#User), [error](/builtin#error))

CreateUserWithName(ctx [context](/context).[Context](/context#Context), userName [string](/builtin#string)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[User](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#User), [error](/builtin#error))

UpdateUser(ctx [context](/context).[Context](/context#Context), user *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[User](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#User)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[User](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#User), [error](/builtin#error))

UpdateUserPassword(ctx [context](/context).[Context](/context#Context), user *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[User](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#User), password [string](/builtin#string)) [error](/builtin#error)

UpdateUserPasswordWithID(ctx [context](/context).[Context](/context#Context), userID [string](/builtin#string), password [string](/builtin#string)) [error](/builtin#error)

DeleteUserWithID(ctx [context](/context).[Context](/context#Context), userID [string](/builtin#string)) [error](/builtin#error)

DeleteUser(ctx [context](/context).[Context](/context#Context), user *[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[User](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#User)) [error](/builtin#error)

Me(ctx [context](/context).[Context](/context#Context)) (*[domain](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain).[User](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/domain#User), [error](/builtin#error))

MeUpdatePassword(ctx [context](/context).[Context](/context#Context), oldPassword, newPassword [string](/builtin#string)) [error](/builtin#error)

SignIn(ctx [context](/context).[Context](/context#Context), username, password [string](/builtin#string)) [error](/builtin#error)

SignOut(ctx [context](/context).[Context](/context#Context)) [error](/builtin#error)

}

UsersAPI provides methods for managing users in a InfluxDB server

package main

import ( "context"

influxdb2 "github.com/influxdata/influxdb-client-go/v2/internal/examples"

)

func main() { // Create a new client using an InfluxDB server base URL and an authentication token client := influxdb2.NewClient("http://localhost:8086", "my-token")

// Find organization
org, err := client.OrganizationsAPI().FindOrganizationByName(context.Background(), "my-org")
if err != nil {
    panic(err)
}

// Get users API client
usersAPI := client.UsersAPI()

// Create new user
user, err := usersAPI.CreateUserWithName(context.Background(), "user-01")
if err != nil {
    panic(err)
}

// Set user password
err = usersAPI.UpdateUserPassword(context.Background(), user, "pass-at-least-8-chars")
if err != nil {
    panic(err)
}

// Add user to organization
_, err = client.OrganizationsAPI().AddMember(context.Background(), org, user)
if err != nil {
    panic(err)
}
// Ensures background processes finishes
client.Close()

}

Output:

package main

import ( "context"

influxdb2 "github.com/influxdata/influxdb-client-go/v2/internal/examples"

)

func main() { // Create a new client using an InfluxDB server base URL and empty token client := influxdb2.NewClient("http://localhost:8086", "") // Always close client at the end defer client.Close()

ctx := context.Background()

// The first call must be signIn
err := client.UsersAPI().SignIn(ctx, "username", "password")
if err != nil {
    panic(err)
}

// Perform some authorized operations
err = client.WriteAPIBlocking("my-org", "my-bucket").WriteRecord(ctx, "test,a=rock,b=local f=1.2,i=-5i")
if err != nil {
    panic(err)
}

// Sign out at the end
err = client.UsersAPI().SignOut(ctx)
if err != nil {
    panic(err)
}

}

Output:

NewUsersAPI creates new instance of UsersAPI

type WriteAPI interface {

WriteRecord(line [string](/builtin#string))


WritePoint(point *[write](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/api/write).[Point](/github.com/influxdata/influxdb-client-go/v2@v2.14.0/api/write#Point))

Flush()


Errors() <-chan [error](/builtin#error)


SetWriteFailedCallback(cb [WriteFailedCallback](#WriteFailedCallback))

}

WriteAPI is Write client interface with non-blocking methods for writing time series data asynchronously in batches into an InfluxDB server. WriteAPI can be used concurrently. When using multiple goroutines for writing, use a single WriteAPI instance in all goroutines.

package main

import ( "fmt" "math/rand" "time"

"github.com/influxdata/influxdb-client-go/v2/api/write"

influxdb2 "github.com/influxdata/influxdb-client-go/v2/internal/examples"

)

func main() { // Create a new client using an InfluxDB server base URL and an authentication token client := influxdb2.NewClient("http://localhost:8086", "my-token") // Get non-blocking write client writeAPI := client.WriteAPI("my-org", "my-bucket") // write some points for i := 0; i < 100; i++ { // create point p := write.NewPoint( "system", map[string]string{ "id": fmt.Sprintf("rack_%v", i%10), "vendor": "AWS", "hostname": fmt.Sprintf("host_%v", i%100), }, map[string]interface{}{ "temperature": rand.Float64() * 80.0, "disk_free": rand.Float64() * 1000.0, "disk_total": (i/10 + 1) * 1000000, "mem_total": (i/100 + 1) * 10000000, "mem_free": rand.Uint64(), }, time.Now()) // write asynchronously writeAPI.WritePoint(p) } // Force all unwritten data to be sent writeAPI.Flush() // Ensures background processes finishes client.Close() }

Output:

package main

import ( "fmt" "math/rand" "time"

apiHttp "github.com/influxdata/influxdb-client-go/v2/api/http"
"github.com/influxdata/influxdb-client-go/v2/api/write"

influxdb2 "github.com/influxdata/influxdb-client-go/v2/internal/examples"

)

func main() { // Create a new client using an InfluxDB server base URL and an authentication token client := influxdb2.NewClient("http://localhost:8086", "my-token") // Get non-blocking write client writeAPI := client.WriteAPI("my-org", "my-bucket") // Get errors channel errorsCh := writeAPI.Errors() // Create go proc for reading and logging errors go func() { for err := range errorsCh { fmt.Printf("write error: %s\n", err.Error()) fmt.Printf("trace-id: %s\n", err.(*apiHttp.Error).Header.Get("Trace-ID")) } }() // write some points for i := 0; i < 100; i++ { // create point p := write.NewPointWithMeasurement("stat"). AddTag("id", fmt.Sprintf("rack_%v", i%10)). AddTag("vendor", "AWS"). AddTag("hostname", fmt.Sprintf("host_%v", i%100)). AddField("temperature", rand.Float64()*80.0). AddField("disk_free", rand.Float64()*1000.0). AddField("disk_total", (i/10+1)*1000000). AddField("mem_total", (i/100+1)*10000000). AddField("mem_free", rand.Uint64()). SetTime(time.Now()) // write asynchronously writeAPI.WritePoint(p) } // Force all unwritten data to be sent writeAPI.Flush() // Ensures background processes finishes client.Close() }

Output:

WriteAPIBlocking can be used concurrently. When using multiple goroutines for writing, use a single WriteAPIBlocking instance in all goroutines.

package main

import ( "context" "fmt" "math/rand" "time"

"github.com/influxdata/influxdb-client-go/v2/api/write"

influxdb2 "github.com/influxdata/influxdb-client-go/v2/internal/examples"

)

func main() { // Create a new client using an InfluxDB server base URL and an authentication token client := influxdb2.NewClient("http://localhost:8086", "my-token") // Get blocking write client writeAPI := client.WriteAPIBlocking("my-org", "my-bucket") // write some points for i := 0; i < 100; i++ { // create data point p := write.NewPoint( "system", map[string]string{ "id": fmt.Sprintf("rack_%v", i%10), "vendor": "AWS", "hostname": fmt.Sprintf("host_%v", i%100), }, map[string]interface{}{ "temperature": rand.Float64() * 80.0, "disk_free": rand.Float64() * 1000.0, "disk_total": (i/10 + 1) * 1000000, "mem_total": (i/100 + 1) * 10000000, "mem_free": rand.Uint64(), }, time.Now()) // write synchronously err := writeAPI.WritePoint(context.Background(), p) if err != nil { panic(err) } } // Ensures background processes finishes client.Close() }

Output:

NewWriteAPIBlocking creates new instance of blocking write client for writing data to bucket belonging to org

NewWriteAPIBlockingWithBatching creates new instance of blocking write client for writing data to bucket belonging to org with batching enabled

type WriteAPIImpl struct {

}

WriteAPIImpl provides main implementation for WriteAPI

NewWriteAPI returns new non-blocking write client for writing data to bucket belonging to org

func (w *WriteAPIImpl) Close()

Close finishes outstanding write operations, stop background routines and closes all channels

func (w *WriteAPIImpl) Errors() <-chan error

Errors returns a channel for reading errors which occurs during async writes. Must be called before performing any writes for errors to be collected. New error is skipped when channel is not read.

func (w *WriteAPIImpl) Flush()

Flush forces all pending writes from the buffer to be sent. Flush also tries sending batches from retry queue without additional retrying.

func (w *WriteAPIImpl) SetWriteFailedCallback(cb WriteFailedCallback)

SetWriteFailedCallback sets callback allowing custom handling of failed writes. If callback returns true, failed batch will be retried, otherwise discarded.

WritePoint writes asynchronously Point into bucket. WritePoint adds Point into the buffer which is sent on the background when it reaches the batch size. Blocking alternative is available in the WriteAPIBlocking interface

WriteRecord writes asynchronously line protocol record into bucket. WriteRecord adds record into the buffer which is sent on the background when it reaches the batch size. Blocking alternative is available in the WriteAPIBlocking interface

WriteFailedCallback is synchronously notified in case non-blocking write fails. batch contains complete payload, error holds detailed error information, retryAttempts means number of retries, 0 if it failed during first write. It must return true if WriteAPI should continue with retrying, false will discard the batch.