Documentation ¶
Overview ¶
Package api provides clients for InfluxDB server APIs.
Index ¶
- func DefaultDialect() *domain.Dialect
- func NewWriteAPI(org string, bucket string, service http.Service, writeOptions *write.Options) *writeAPI
- func NewWriteAPIBlocking(org string, bucket string, service http.Service, writeOptions *write.Options) *writeAPIBlocking
- type AuthorizationsAPI
- type AuthorizationsApi
- type BucketsAPI
- type BucketsApi
- type DeleteAPI
- type DeleteApi
- type LabelsAPI
- type LabelsApi
- type OrganizationsAPI
- type OrganizationsApi
- type Paging
- type PagingOption
- type QueryAPI
- type QueryApi
- type QueryTableResult
- type UsersAPI
- type UsersApi
- type WriteAPI
- type WriteAPIBlocking
- type WriteApi
- type WriteApiBlocking
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DefaultDialect ¶ added in v1.2.0
DefaultDialect return flux query Dialect with full annotations (datatype, group, default), header and comma char as a delimiter
func NewWriteAPI ¶ added in v1.4.0
Types ¶
type AuthorizationsAPI ¶ added in v1.4.0
type AuthorizationsAPI interface { // GetAuthorizations returns all authorizations GetAuthorizations(ctx context.Context) (*[]domain.Authorization, error) // FindAuthorizationsByUserName returns all authorizations for given userName FindAuthorizationsByUserName(ctx context.Context, userName string) (*[]domain.Authorization, error) // FindAuthorizationsByUserID returns all authorizations for given userID FindAuthorizationsByUserID(ctx context.Context, userID string) (*[]domain.Authorization, error) // FindAuthorizationsByOrgName returns all authorizations for given organization name FindAuthorizationsByOrgName(ctx context.Context, orgName string) (*[]domain.Authorization, error) // FindAuthorizationsByOrgID returns all authorizations for given organization id FindAuthorizationsByOrgID(ctx context.Context, orgID string) (*[]domain.Authorization, error) // CreateAuthorization creates new authorization CreateAuthorization(ctx context.Context, authorization *domain.Authorization) (*domain.Authorization, error) // CreateAuthorizationWithOrgID creates new authorization with given permissions scoped to given orgID CreateAuthorizationWithOrgID(ctx context.Context, orgID string, permissions []domain.Permission) (*domain.Authorization, error) // UpdateAuthorizationStatus updates status of authorization UpdateAuthorizationStatus(ctx context.Context, authorization *domain.Authorization, status domain.AuthorizationUpdateRequestStatus) (*domain.Authorization, error) // UpdateAuthorizationStatusWithID updates status of authorization with authID UpdateAuthorizationStatusWithID(ctx context.Context, authID string, status domain.AuthorizationUpdateRequestStatus) (*domain.Authorization, error) // DeleteAuthorization deletes authorization DeleteAuthorization(ctx context.Context, authorization *domain.Authorization) error // DeleteAuthorization deletes authorization with authID DeleteAuthorizationWithID(ctx context.Context, authID string) error }
AuthorizationsAPI provides methods for organizing Authorization in a InfluxDB server
Example ¶
package main import ( "context" "fmt" "github.com/influxdata/influxdb-client-go/domain" influxdb2 "github.com/influxdata/influxdb-client-go/internal/examples" ) func main() { // Create influxdb client client := influxdb2.NewClient("http://localhost:9999", "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, User: &user.Name, 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:
func NewAuthorizationsAPI ¶ added in v1.4.0
func NewAuthorizationsAPI(apiClient *domain.ClientWithResponses) AuthorizationsAPI
type AuthorizationsApi ¶
type AuthorizationsApi interface { // GetAuthorizations returns all authorizations GetAuthorizations(ctx context.Context) (*[]domain.Authorization, error) // FindAuthorizationsByUserName returns all authorizations for given userName FindAuthorizationsByUserName(ctx context.Context, userName string) (*[]domain.Authorization, error) // FindAuthorizationsByUserId returns all authorizations for given userID FindAuthorizationsByUserId(ctx context.Context, userId string) (*[]domain.Authorization, error) // FindAuthorizationsByOrgName returns all authorizations for given organization name FindAuthorizationsByOrgName(ctx context.Context, orgName string) (*[]domain.Authorization, error) // FindAuthorizationsByUserId returns all authorizations for given organization id FindAuthorizationsByOrgId(ctx context.Context, orgId string) (*[]domain.Authorization, error) // CreateAuthorization creates new authorization CreateAuthorization(ctx context.Context, authorization *domain.Authorization) (*domain.Authorization, error) // CreateAuthorizationWithOrgId creates new authorization with given permissions scoped to given orgId CreateAuthorizationWithOrgId(ctx context.Context, orgId string, permissions []domain.Permission) (*domain.Authorization, error) // UpdateAuthorizationStatus updates status of authorization with authId UpdateAuthorizationStatus(ctx context.Context, authId string, status domain.AuthorizationUpdateRequestStatus) (*domain.Authorization, error) // DeleteAuthorization deletes authorization with authId DeleteAuthorization(ctx context.Context, authId string) error }
AuthorizationsApi provides methods for organizing Authorization in a InfluxDB server Deprecated: Use AuthorizationsAPI instead
func NewAuthorizationsApi ¶ added in v1.4.0
func NewAuthorizationsApi(apiClient *domain.ClientWithResponses) AuthorizationsApi
NewAuthorizationsApi creates instance of AuthorizationsApi Deprecated: Use NewAuthorizationsAPI instead.
type BucketsAPI ¶ added in v1.4.0
type BucketsAPI interface { // GetBuckets returns all buckets, with the specified paging. Empty pagingOptions means the default paging (first 20 results). GetBuckets(ctx context.Context, pagingOptions ...PagingOption) (*[]domain.Bucket, error) // FindBucketByName returns a bucket found using bucketName. FindBucketByName(ctx context.Context, bucketName string) (*domain.Bucket, error) // FindBucketByID returns a bucket found using bucketID. FindBucketByID(ctx context.Context, bucketID string) (*domain.Bucket, error) // FindBucketsByOrgID returns buckets belonging to the organization with ID orgID, with the specified paging. Empty pagingOptions means the default paging (first 20 results). FindBucketsByOrgID(ctx context.Context, orgID string, pagingOptions ...PagingOption) (*[]domain.Bucket, error) // FindBucketsByOrgName returns buckets belonging to the organization with name orgName, with the specified paging. Empty pagingOptions means the default paging (first 20 results). FindBucketsByOrgName(ctx context.Context, orgName string, pagingOptions ...PagingOption) (*[]domain.Bucket, error) // CreateBucket creates a new bucket. CreateBucket(ctx context.Context, bucket *domain.Bucket) (*domain.Bucket, error) // CreateBucketWithName creates a new bucket with bucketName in organization org, with retention specified in rules. Empty rules means infinite retention. CreateBucketWithName(ctx context.Context, org *domain.Organization, bucketName string, rules ...domain.RetentionRule) (*domain.Bucket, error) // CreateBucketWithNameWithID creates a new bucket with bucketName in organization with orgID, with retention specified in rules. Empty rules means infinite retention. CreateBucketWithNameWithID(ctx context.Context, orgID, bucketName string, rules ...domain.RetentionRule) (*domain.Bucket, error) // UpdateBucket updates a bucket. UpdateBucket(ctx context.Context, bucket *domain.Bucket) (*domain.Bucket, error) // DeleteBucket deletes a bucket. DeleteBucket(ctx context.Context, bucket *domain.Bucket) error // DeleteBucketWithID deletes a bucket with bucketID. DeleteBucketWithID(ctx context.Context, bucketID string) error // GetMembers returns members of a bucket. GetMembers(ctx context.Context, bucket *domain.Bucket) (*[]domain.ResourceMember, error) // GetMembersWithID returns members of a bucket with bucketID. GetMembersWithID(ctx context.Context, bucketID string) (*[]domain.ResourceMember, error) // AddMember adds a member to a bucket. AddMember(ctx context.Context, bucket *domain.Bucket, user *domain.User) (*domain.ResourceMember, error) // AddMember adds a member with id memberID to a bucket with bucketID. AddMemberWithID(ctx context.Context, bucketID, memberID string) (*domain.ResourceMember, error) // RemoveMember removes a member from a bucket. RemoveMember(ctx context.Context, bucket *domain.Bucket, user *domain.User) error // RemoveMember removes a member with id memberID from a bucket with bucketID. RemoveMemberWithID(ctx context.Context, bucketID, memberID string) error // GetOwners returns owners of a bucket. GetOwners(ctx context.Context, bucket *domain.Bucket) (*[]domain.ResourceOwner, error) // GetOwnersWithID returns owners of a bucket with bucketID. GetOwnersWithID(ctx context.Context, bucketID string) (*[]domain.ResourceOwner, error) // AddOwner adds an owner to a bucket. AddOwner(ctx context.Context, bucket *domain.Bucket, user *domain.User) (*domain.ResourceOwner, error) // AddOwner adds an owner with id memberID to a bucket with bucketID. AddOwnerWithID(ctx context.Context, bucketID, memberID string) (*domain.ResourceOwner, error) // RemoveOwner removes an owner from a bucket. RemoveOwner(ctx context.Context, bucket *domain.Bucket, user *domain.User) error // RemoveOwner removes a member with id memberID from a bucket with bucketID. RemoveOwnerWithID(ctx context.Context, bucketID, memberID string) error }
BucketsAPI provides methods for managing Buckets in a InfluxDB server.
Example ¶
package main import ( "context" "github.com/influxdata/influxdb-client-go/domain" influxdb2 "github.com/influxdata/influxdb-client-go/internal/examples" ) func main() { // Create influxdb client client := influxdb2.NewClient("http://localhost:9999", "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:
func NewBucketsAPI ¶ added in v1.4.0
func NewBucketsAPI(apiClient *domain.ClientWithResponses) BucketsAPI
type BucketsApi ¶ added in v1.2.0
type BucketsApi interface { // GetBuckets returns all buckets, with the specified paging. Empty pagingOptions means the default paging (first 20 results). GetBuckets(ctx context.Context, pagingOptions ...PagingOption) (*[]domain.Bucket, error) // FindBucketByName returns a bucket found using bucketName. FindBucketByName(ctx context.Context, bucketName string) (*domain.Bucket, error) // FindBucketById returns a bucket found using bucketId. FindBucketById(ctx context.Context, bucketId string) (*domain.Bucket, error) // FindBucketsByOrgId returns buckets belonging to the organization with Id orgId, with the specified paging. Empty pagingOptions means the default paging (first 20 results). FindBucketsByOrgId(ctx context.Context, orgId string, pagingOptions ...PagingOption) (*[]domain.Bucket, error) // FindBucketsByOrgName returns buckets belonging to the organization with name orgName, with the specified paging. Empty pagingOptions means the default paging (first 20 results). FindBucketsByOrgName(ctx context.Context, orgName string, pagingOptions ...PagingOption) (*[]domain.Bucket, error) // CreateBucket creates a new bucket. CreateBucket(ctx context.Context, bucket *domain.Bucket) (*domain.Bucket, error) // CreateBucketWithName creates a new bucket with bucketName in organization org, with retention specified in rules. Empty rules means infinite retention. CreateBucketWithName(ctx context.Context, org *domain.Organization, bucketName string, rules ...domain.RetentionRule) (*domain.Bucket, error) // CreateBucketWithNameWithId creates a new bucket with bucketName in organization with orgId, with retention specified in rules. Empty rules means infinite retention. CreateBucketWithNameWithId(ctx context.Context, orgId, bucketName string, rules ...domain.RetentionRule) (*domain.Bucket, error) // UpdateBucket updates a bucket. UpdateBucket(ctx context.Context, bucket *domain.Bucket) (*domain.Bucket, error) // DeleteBucket deletes a bucket. DeleteBucket(ctx context.Context, bucket *domain.Bucket) error // DeleteBucketWithId deletes a bucket with bucketId. DeleteBucketWithId(ctx context.Context, bucketId string) error // GetMembers returns members of a bucket. GetMembers(ctx context.Context, bucket *domain.Bucket) (*[]domain.ResourceMember, error) // GetMembersWithId returns members of a bucket with bucketId. GetMembersWithId(ctx context.Context, bucketId string) (*[]domain.ResourceMember, error) // AddMember adds a member to a bucket. AddMember(ctx context.Context, bucket *domain.Bucket, user *domain.User) (*domain.ResourceMember, error) // AddMember adds a member with id memberId to a bucket with bucketId. AddMemberWithId(ctx context.Context, bucketId, memberId string) (*domain.ResourceMember, error) // RemoveMember removes a member from a bucket. RemoveMember(ctx context.Context, bucket *domain.Bucket, user *domain.User) error // RemoveMember removes a member with id memberId from a bucket with bucketId. RemoveMemberWithId(ctx context.Context, bucketId, memberId string) error // GetOwners returns owners of a bucket. GetOwners(ctx context.Context, bucket *domain.Bucket) (*[]domain.ResourceOwner, error) // GetOwnersWithId returns owners of a bucket with bucketId. GetOwnersWithId(ctx context.Context, bucketId string) (*[]domain.ResourceOwner, error) // AddOwner adds an owner to a bucket. AddOwner(ctx context.Context, bucket *domain.Bucket, user *domain.User) (*domain.ResourceOwner, error) // AddOwner adds an owner with id memberId to a bucket with bucketId. AddOwnerWithId(ctx context.Context, bucketId, memberId string) (*domain.ResourceOwner, error) // RemoveOwner removes an owner from a bucket. RemoveOwner(ctx context.Context, bucket *domain.Bucket, user *domain.User) error // RemoveOwner removes a member with id memberId from a bucket with bucketId. RemoveOwnerWithId(ctx context.Context, bucketId, memberId string) error }
BucketsApi provides methods for managing Buckets in a InfluxDB server. Deprecated: Use BucketsAPI instead.
func NewBucketsApi ¶ added in v1.2.0
func NewBucketsApi(apiClient *domain.ClientWithResponses) BucketsApi
NewBucketsApi creates instance of BucketsApi Deprecated: Use NewBucketsAPI instead
type DeleteAPI ¶ added in v1.4.0
type DeleteAPI interface { // Delete deletes series selected by by the time range specified by start and stop arguments and optional predicate string from the bucket bucket belonging to the organization org. Delete(ctx context.Context, org *domain.Organization, bucket *domain.Bucket, start, stop time.Time, predicate string) error // Delete deletes series selected by by the time range specified by start and stop arguments and optional predicate string from the bucket with ID bucketID belonging to the organization with ID orgID. DeleteWithID(ctx context.Context, orgID, bucketID string, start, stop time.Time, predicate string) error // Delete deletes series selected by by the time range specified by start and stop arguments and optional predicate string from the bucket with name bucketName belonging to the organization with name orgName. DeleteWithName(ctx context.Context, orgName, bucketName string, start, stop time.Time, predicate string) 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.
func NewDeleteAPI ¶ added in v1.4.0
func NewDeleteAPI(apiClient *domain.ClientWithResponses) DeleteAPI
type DeleteApi ¶ added in v1.2.0
type DeleteApi interface { // Delete deletes series selected by by the time range specified by start and stop arguments and optional predicate string from the bucket bucket belonging to the organization org. Delete(ctx context.Context, org *domain.Organization, bucket *domain.Bucket, start, stop time.Time, predicate string) error // Delete deletes series selected by by the time range specified by start and stop arguments and optional predicate string from the bucket with Id bucketId belonging to the organization with Id orgId. DeleteWithId(ctx context.Context, orgId, bucketId string, start, stop time.Time, predicate string) error // Delete deletes series selected by by the time range specified by start and stop arguments and optional predicate string from the bucket with name bucketName belonging to the organization with name orgName. DeleteWithName(ctx context.Context, orgName, bucketName string, start, stop time.Time, predicate string) 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. Deprecated: Use DeleteAPI instead.
func NewDeleteApi ¶ added in v1.2.0
func NewDeleteApi(apiClient *domain.ClientWithResponses) DeleteApi
NewDeleteApi creates instance of DeleteApi Deprecated: Use NewDeleteAPI instead
type LabelsAPI ¶ added in v1.4.0
type LabelsAPI interface { // GetLabels returns all labels. GetLabels(ctx context.Context) (*[]domain.Label, error) // FindLabelsByOrg returns labels belonging to organization org. FindLabelsByOrg(ctx context.Context, org *domain.Organization) (*[]domain.Label, error) // FindLabelsByOrgID returns labels belonging to organization with id orgID. FindLabelsByOrgID(ctx context.Context, orgID string) (*[]domain.Label, error) // FindLabelByID returns a label with labelID. FindLabelByID(ctx context.Context, labelID string) (*domain.Label, error) // FindLabelByName returns a label with name labelName under an organization orgID. FindLabelByName(ctx context.Context, orgID, labelName string) (*domain.Label, error) // CreateLabel creates a new label. CreateLabel(ctx context.Context, label *domain.LabelCreateRequest) (*domain.Label, error) // CreateLabelWithName creates a new label with label labelName and properties, under the organization org. // Properties example: {"color": "ffb3b3", "description": "this is a description"}. CreateLabelWithName(ctx context.Context, org *domain.Organization, labelName string, properties map[string]string) (*domain.Label, error) // CreateLabelWithName creates a new label with label labelName and properties, under the organization with id orgID. // Properties example: {"color": "ffb3b3", "description": "this is a description"}. CreateLabelWithNameWithID(ctx context.Context, orgID, labelName string, properties map[string]string) (*domain.Label, error) // UpdateLabel updates the label. // Properties can be removed by sending an update with an empty value. UpdateLabel(ctx context.Context, label *domain.Label) (*domain.Label, error) // DeleteLabelWithID deletes a label with labelID. DeleteLabelWithID(ctx context.Context, labelID string) error // DeleteLabel deletes a label. DeleteLabel(ctx context.Context, label *domain.Label) error }
LabelsAPI provides methods for managing labels in a InfluxDB server.
Example ¶
package main import ( "context" influxdb2 "github.com/influxdata/influxdb-client-go/internal/examples" ) func main() { // Create influxdb client client := influxdb2.NewClient("http://localhost:9999", "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) } // Get organization that will have the label org, err := orgsAPI.FindOrganizationByName(ctx, "IT") if err != nil { panic(err) } // Add label to org _, err = orgsAPI.AddLabel(ctx, org, label) 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:
func NewLabelsAPI ¶ added in v1.4.0
func NewLabelsAPI(apiClient *domain.ClientWithResponses) LabelsAPI
type LabelsApi ¶ added in v1.3.0
type LabelsApi interface { // GetLabels returns all labels. GetLabels(ctx context.Context) (*[]domain.Label, error) // FindLabelsByOrg returns labels belonging to organization org. FindLabelsByOrg(ctx context.Context, org *domain.Organization) (*[]domain.Label, error) // FindLabelsByOrgId returns labels belonging to organization with id orgId. FindLabelsByOrgId(ctx context.Context, orgID string) (*[]domain.Label, error) // FindLabelById returns a label with labelID. FindLabelById(ctx context.Context, labelID string) (*domain.Label, error) // FindLabelByName returns a label with name labelName under an organization orgId. FindLabelByName(ctx context.Context, orgId, labelName string) (*domain.Label, error) // CreateLabel creates a new label. CreateLabel(ctx context.Context, label *domain.LabelCreateRequest) (*domain.Label, error) // CreateLabelWithName creates a new label with label labelName and properties, under the organization org. // Properties example: {"color": "ffb3b3", "description": "this is a description"}. CreateLabelWithName(ctx context.Context, org *domain.Organization, labelName string, properties map[string]string) (*domain.Label, error) // CreateLabelWithName creates a new label with label labelName and properties, under the organization with id orgId. // Properties example: {"color": "ffb3b3", "description": "this is a description"}. CreateLabelWithNameWithId(ctx context.Context, orgId, labelName string, properties map[string]string) (*domain.Label, error) // UpdateLabel updates the label. // Properties can be removed by sending an update with an empty value. UpdateLabel(ctx context.Context, label *domain.Label) (*domain.Label, error) // DeleteLabelWithId deletes a label with labelId. DeleteLabelWithId(ctx context.Context, labelID string) error // DeleteLabel deletes a label. DeleteLabel(ctx context.Context, label *domain.Label) error }
LabelsApi provides methods for managing labels in a InfluxDB server. Deprecated: Use LabelsAPI instead.
func NewLabelsApi ¶ added in v1.3.0
func NewLabelsApi(apiClient *domain.ClientWithResponses) LabelsApi
NewLabelsApi creates instance of LabelsApi Deprecated: use NewLabelsAPI instead.
type OrganizationsAPI ¶ added in v1.4.0
type OrganizationsAPI interface { // GetOrganizations returns all organizations. GetOrganizations(ctx context.Context) (*[]domain.Organization, error) // FindOrganizationByName returns an organization found using orgName. FindOrganizationByName(ctx context.Context, orgName string) (*domain.Organization, error) // FindOrganizationByID returns an organization found using orgID. FindOrganizationByID(ctx context.Context, orgID string) (*domain.Organization, error) // FindOrganizationsByUserID returns organizations an user with userID belongs to. FindOrganizationsByUserID(ctx context.Context, userID string) (*[]domain.Organization, error) // CreateOrganization creates new organization. CreateOrganization(ctx context.Context, org *domain.Organization) (*domain.Organization, error) // CreateOrganizationWithName creates new organization with orgName and with status active. CreateOrganizationWithName(ctx context.Context, orgName string) (*domain.Organization, error) // UpdateOrganization updates organization. UpdateOrganization(ctx context.Context, org *domain.Organization) (*domain.Organization, error) // DeleteOrganization deletes an organization. DeleteOrganization(ctx context.Context, org *domain.Organization) error // DeleteOrganizationWithID deletes an organization with orgID. DeleteOrganizationWithID(ctx context.Context, orgID string) error // GetMembers returns members of an organization. GetMembers(ctx context.Context, org *domain.Organization) (*[]domain.ResourceMember, error) // GetMembersWithID returns members of an organization with orgID. GetMembersWithID(ctx context.Context, orgID string) (*[]domain.ResourceMember, error) // AddMember adds a member to an organization. AddMember(ctx context.Context, org *domain.Organization, user *domain.User) (*domain.ResourceMember, error) // AddMemberWithID adds a member with id memberID to an organization with orgID. AddMemberWithID(ctx context.Context, orgID, memberID string) (*domain.ResourceMember, error) // RemoveMember removes a member from an organization. RemoveMember(ctx context.Context, org *domain.Organization, user *domain.User) error // RemoveMemberWithID removes a member with id memberID from an organization with orgID. RemoveMemberWithID(ctx context.Context, orgID, memberID string) error // GetOwners returns owners of an organization. GetOwners(ctx context.Context, org *domain.Organization) (*[]domain.ResourceOwner, error) // GetOwnersWithID returns owners of an organization with orgID. GetOwnersWithID(ctx context.Context, orgID string) (*[]domain.ResourceOwner, error) // AddOwner adds an owner to an organization. AddOwner(ctx context.Context, org *domain.Organization, user *domain.User) (*domain.ResourceOwner, error) // AddOwnerWithID adds an owner with id memberID to an organization with orgID. AddOwnerWithID(ctx context.Context, orgID, memberID string) (*domain.ResourceOwner, error) // RemoveOwner removes an owner from an organization. RemoveOwner(ctx context.Context, org *domain.Organization, user *domain.User) error // RemoveOwnerWithID removes an owner with id memberID from an organization with orgID. RemoveOwnerWithID(ctx context.Context, orgID, memberID string) error // GetLabels returns labels of an organization. GetLabels(ctx context.Context, org *domain.Organization) (*[]domain.Label, error) // GetLabelsWithID returns labels of an organization with orgID. GetLabelsWithID(ctx context.Context, orgID string) (*[]domain.Label, error) // AddLabel adds a label to an organization. AddLabel(ctx context.Context, org *domain.Organization, label *domain.Label) (*domain.Label, error) // AddLabelWithID adds a label with id labelID to an organization with orgID. AddLabelWithID(ctx context.Context, orgID, labelID string) (*domain.Label, error) // RemoveLabel removes an label from an organization. RemoveLabel(ctx context.Context, org *domain.Organization, label *domain.Label) error // RemoveLabelWithID removes an label with id labelID from an organization with orgID. RemoveLabelWithID(ctx context.Context, orgID, labelID string) error }
OrganizationsAPI provides methods for managing Organizations in a InfluxDB server.
Example ¶
package main import ( "context" influxdb2 "github.com/influxdata/influxdb-client-go/internal/examples" ) func main() { // Create influxdb client client := influxdb2.NewClient("http://localhost:9999", "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:
func NewOrganizationsAPI ¶ added in v1.4.0
func NewOrganizationsAPI(apiClient *domain.ClientWithResponses) OrganizationsAPI
type OrganizationsApi ¶
type OrganizationsApi interface { // GetOrganizations returns all organizations. GetOrganizations(ctx context.Context) (*[]domain.Organization, error) // FindOrganizationByName returns an organization found using orgName. FindOrganizationByName(ctx context.Context, orgName string) (*domain.Organization, error) // FindOrganizationById returns an organization found using orgId. FindOrganizationById(ctx context.Context, orgId string) (*domain.Organization, error) // FindOrganizationsByUserId returns organizations an user with userID belongs to. FindOrganizationsByUserId(ctx context.Context, userID string) (*[]domain.Organization, error) // CreateOrganization creates new organization. CreateOrganization(ctx context.Context, org *domain.Organization) (*domain.Organization, error) // CreateOrganizationWithName creates new organization with orgName and with status active. CreateOrganizationWithName(ctx context.Context, orgName string) (*domain.Organization, error) // UpdateOrganization updates organization. UpdateOrganization(ctx context.Context, org *domain.Organization) (*domain.Organization, error) // DeleteOrganization deletes an organization. DeleteOrganization(ctx context.Context, org *domain.Organization) error // DeleteOrganizationWithId deletes an organization with orgId. DeleteOrganizationWithId(ctx context.Context, orgId string) error // GetMembers returns members of an organization. GetMembers(ctx context.Context, org *domain.Organization) (*[]domain.ResourceMember, error) // GetMembersWithId returns members of an organization with orgId. GetMembersWithId(ctx context.Context, orgId string) (*[]domain.ResourceMember, error) // AddMember adds a member to an organization. AddMember(ctx context.Context, org *domain.Organization, user *domain.User) (*domain.ResourceMember, error) // AddMemberWithId adds a member with id memberId to an organization with orgId. AddMemberWithId(ctx context.Context, orgId, memberId string) (*domain.ResourceMember, error) // RemoveMember removes a member from an organization. RemoveMember(ctx context.Context, org *domain.Organization, user *domain.User) error // RemoveMemberWithId removes a member with id memberId from an organization with orgId. RemoveMemberWithId(ctx context.Context, orgId, memberId string) error // GetOwners returns owners of an organization. GetOwners(ctx context.Context, org *domain.Organization) (*[]domain.ResourceOwner, error) // GetOwnersWithId returns owners of an organization with orgId. GetOwnersWithId(ctx context.Context, orgId string) (*[]domain.ResourceOwner, error) // AddOwner adds an owner to an organization. AddOwner(ctx context.Context, org *domain.Organization, user *domain.User) (*domain.ResourceOwner, error) // AddOwnerWithId adds an owner with id memberId to an organization with orgId. AddOwnerWithId(ctx context.Context, orgId, memberId string) (*domain.ResourceOwner, error) // RemoveOwner removes an owner from an organization. RemoveOwner(ctx context.Context, org *domain.Organization, user *domain.User) error // RemoveOwnerWithId removes an owner with id memberId from an organization with orgId. RemoveOwnerWithId(ctx context.Context, orgId, memberId string) error // GetLabels returns labels of an organization. GetLabels(ctx context.Context, org *domain.Organization) (*[]domain.Label, error) // GetLabelsWithId returns labels of an organization with orgId. GetLabelsWithId(ctx context.Context, orgId string) (*[]domain.Label, error) // AddLabel adds a label to an organization. AddLabel(ctx context.Context, org *domain.Organization, label *domain.Label) (*domain.Label, error) // AddLabelWithId adds a label with id labelId to an organization with orgId. AddLabelWithId(ctx context.Context, orgId, labelId string) (*domain.Label, error) // RemoveLabel removes an label from an organization. RemoveLabel(ctx context.Context, org *domain.Organization, label *domain.Label) error // RemoveLabelWithId removes an label with id labelId from an organization with orgId. RemoveLabelWithId(ctx context.Context, orgId, labelId string) error }
OrganizationsApi provides methods for managing Organizations in a InfluxDB server. Deprecated: Use OrganizationsAPI instead.
func NewOrganizationsApi ¶
func NewOrganizationsApi(apiClient *domain.ClientWithResponses) OrganizationsApi
NewOrganizationsApi creates instance of OrganizationsApi Deprecated: use NewOrganizationsAPI instead.
type Paging ¶ added in v1.2.0
type Paging struct {
// contains filtered or unexported fields
}
Paging holds pagination parameters for various Get* functions of InfluxDB 2 API
type PagingOption ¶ added in v1.2.0
type PagingOption func(p *Paging)
func PagingWithDescending ¶ added in v1.2.0
func PagingWithDescending(descending bool) PagingOption
func PagingWithLimit ¶ added in v1.2.0
func PagingWithLimit(limit int) PagingOption
func PagingWithOffset ¶ added in v1.2.0
func PagingWithOffset(offset int) PagingOption
func PagingWithSortBy ¶ added in v1.2.0
func PagingWithSortBy(sortBy string) PagingOption
type QueryAPI ¶ added in v1.4.0
type QueryAPI interface { // QueryRaw executes flux query on the InfluxDB server and returns complete query result as a string with table annotations according to dialect QueryRaw(ctx context.Context, query string, dialect *domain.Dialect) (string, error) // Query executes flux query on the InfluxDB server and returns QueryTableResult which parses streamed response into structures representing flux table parts Query(ctx context.Context, query string) (*QueryTableResult, error) }
QueryAPI provides methods for performing synchronously flux query against InfluxDB server.
Example (Query) ¶
package main import ( "context" "fmt" influxdb2 "github.com/influxdata/influxdb-client-go/internal/examples" ) func main() { // Create client client := influxdb2.NewClient("http://localhost:9999", "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:
Example (QueryRaw) ¶
package main import ( "context" "fmt" "github.com/influxdata/influxdb-client-go/api" influxdb2 "github.com/influxdata/influxdb-client-go/internal/examples" ) func main() { // Create client client := influxdb2.NewClient("http://localhost:9999", "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:
type QueryApi ¶ added in v1.2.0
type QueryApi interface { // QueryRaw executes flux query on the InfluxDB server and returns complete query result as a string with table annotations according to dialect QueryRaw(ctx context.Context, query string, dialect *domain.Dialect) (string, error) // Query executes flux query on the InfluxDB server and returns QueryTableResult which parses streamed response into structures representing flux table parts Query(ctx context.Context, query string) (*QueryTableResult, error) }
QueryApi provides methods for performing synchronously flux query against InfluxDB server. Deprecated: Use QueryAPI instead.
type QueryTableResult ¶ added in v1.2.0
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
func (*QueryTableResult) Err ¶ added in v1.2.0
func (q *QueryTableResult) Err() error
Err returns an error raised during flux query response parsing
func (*QueryTableResult) Next ¶ added in v1.2.0
func (q *QueryTableResult) Next() bool
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
func (*QueryTableResult) Record ¶ added in v1.2.0
func (q *QueryTableResult) Record() *query.FluxRecord
Record returns last parsed flux table data row Use Record methods to access value and row properties
func (*QueryTableResult) TableChanged ¶ added in v1.2.0
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
func (*QueryTableResult) TableMetadata ¶ added in v1.2.0
func (q *QueryTableResult) TableMetadata() *query.FluxTableMetadata
TableMetadata returns actual flux table metadata
func (*QueryTableResult) TablePosition ¶ added in v1.2.0
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
type UsersAPI ¶ added in v1.4.0
type UsersAPI interface { // GetUsers returns all users GetUsers(ctx context.Context) (*[]domain.User, error) // FindUserByID returns user with userID FindUserByID(ctx context.Context, userID string) (*domain.User, error) // FindUserByName returns user with name userName FindUserByName(ctx context.Context, userName string) (*domain.User, error) // CreateUser creates new user CreateUser(ctx context.Context, user *domain.User) (*domain.User, error) // CreateUserWithName creates new user with userName CreateUserWithName(ctx context.Context, userName string) (*domain.User, error) // UpdateUser updates user UpdateUser(ctx context.Context, user *domain.User) (*domain.User, error) // UpdateUserPassword sets password for an user UpdateUserPassword(ctx context.Context, user *domain.User, password string) error // UpdateUserPasswordWithID sets password for an user with userID UpdateUserPasswordWithID(ctx context.Context, userID string, password string) error // DeleteUserWithID deletes an user with userID DeleteUserWithID(ctx context.Context, userID string) error // DeleteUser deletes an user DeleteUser(ctx context.Context, user *domain.User) error // Me returns actual user Me(ctx context.Context) (*domain.User, error) // MeUpdatePassword set password of actual user MeUpdatePassword(ctx context.Context, password string) error }
UsersAPI provides methods for managing users in a InfluxDB server
Example ¶
package main import ( "context" influxdb2 "github.com/influxdata/influxdb-client-go/internal/examples" ) func main() { // Create influxdb client client := influxdb2.NewClient("http://localhost:9999", "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:
func NewUsersAPI ¶ added in v1.4.0
func NewUsersAPI(apiClient *domain.ClientWithResponses) UsersAPI
type UsersApi ¶
type UsersApi interface { // GetUsers returns all users GetUsers(ctx context.Context) (*[]domain.User, error) // FindUserById returns user with userID FindUserById(ctx context.Context, userID string) (*domain.User, error) // FindUserByName returns user with name userName FindUserByName(ctx context.Context, userName string) (*domain.User, error) // CreateUser creates new user CreateUser(ctx context.Context, user *domain.User) (*domain.User, error) // CreateUserWithName creates new user with userName CreateUserWithName(ctx context.Context, userName string) (*domain.User, error) // UpdateUser updates user UpdateUser(ctx context.Context, user *domain.User) (*domain.User, error) // UpdateUserPassword sets password for an user UpdateUserPassword(ctx context.Context, user *domain.User, password string) error // UpdateUserPasswordWithId sets password for an user with userId UpdateUserPasswordWithId(ctx context.Context, userID string, password string) error // DeleteUserWithId deletes an user with userId DeleteUserWithId(ctx context.Context, userID string) error // DeleteUser deletes an user DeleteUser(ctx context.Context, user *domain.User) error // Me returns actual user Me(ctx context.Context) (*domain.User, error) // MeUpdatePassword set password of actual user MeUpdatePassword(ctx context.Context, password string) error }
UsersApi provides methods for managing users in a InfluxDB server. Deprecated: use UsersAPI instead.
func NewUsersApi ¶
func NewUsersApi(apiClient *domain.ClientWithResponses) UsersApi
NewUsersApi creates instance of UsersApi Deprecated: use NewUsersAPI instead.
type WriteAPI ¶ added in v1.4.0
type WriteAPI 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 WriteRecord(line string) // 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 WritePoint(point *write.Point) // Flush forces all pending writes from the buffer to be sent Flush() // Flushes all pending writes and stop async processes. After this the Write client cannot be used Close() // Errors returns a channel for reading errors which occurs during async writes. // Must be called before performing any writes for errors to be collected. // The chan is unbuffered and must be drained or the writer will block. Errors() <-chan error }
WriteAPI is Write client interface with non-blocking methods for writing time series data asynchronously in batches into an InfluxDB server.
Example ¶
package main import ( "fmt" "github.com/influxdata/influxdb-client-go/api/write" influxdb2 "github.com/influxdata/influxdb-client-go/internal/examples" "math/rand" "time" ) func main() { // Create client client := influxdb2.NewClient("http://localhost:9999", "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:
Example (Errors) ¶
package main import ( "fmt" "github.com/influxdata/influxdb-client-go/api/write" influxdb2 "github.com/influxdata/influxdb-client-go/internal/examples" "math/rand" "time" ) func main() { // Create client client := influxdb2.NewClient("http://localhost:9999", "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()) } }() // 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:
type WriteAPIBlocking ¶ added in v1.4.0
type WriteAPIBlocking interface { // WriteRecord writes line protocol record(s) into bucket. // WriteRecord writes without implicit batching. Batch is created from given number of records // Non-blocking alternative is available in the WriteApi interface WriteRecord(ctx context.Context, line ...string) error // WritePoint data point into bucket. // WritePoint writes without implicit batching. Batch is created from given number of points // Non-blocking alternative is available in the WriteApi interface WritePoint(ctx context.Context, point ...*write.Point) error }
WriteAPIBlocking offers blocking methods for writing time series data synchronously into an InfluxDB server.
Example ¶
package main import ( "context" "fmt" "github.com/influxdata/influxdb-client-go/api/write" influxdb2 "github.com/influxdata/influxdb-client-go/internal/examples" "math/rand" "time" ) func main() { // Create client client := influxdb2.NewClient("http://localhost:9999", "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:
type WriteApi ¶ added in v1.2.0
type WriteApi 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 WriteRecord(line string) // 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 WritePoint(point *write.Point) // Flush forces all pending writes from the buffer to be sent Flush() // Flushes all pending writes and stop async processes. After this the Write client cannot be used Close() // Errors returns a channel for reading errors which occurs during async writes. // Must be called before performing any writes for errors to be collected. // The chan is unbuffered and must be drained or the writer will block. Errors() <-chan error }
WriteApi is Write client interface with non-blocking methods for writing time series data asynchronously in batches into an InfluxDB server. Deprecated: Use WriteAPI instead.
type WriteApiBlocking ¶ added in v1.2.0
type WriteApiBlocking interface { // WriteRecord writes line protocol record(s) into bucket. // WriteRecord writes without implicit batching. Batch is created from given number of records // Non-blocking alternative is available in the WriteApi interface WriteRecord(ctx context.Context, line ...string) error // WritePoint data point into bucket. // WritePoint writes without implicit batching. Batch is created from given number of points // Non-blocking alternative is available in the WriteApi interface WritePoint(ctx context.Context, point ...*write.Point) error }
WriteApiBlocking offers blocking methods for writing time series data synchronously into an InfluxDB server. Deprecated: use WriteAPIBlocking instead.
Source Files ¶
- authorizations.go
- authorizations_deprecated.go
- buckets.go
- buckets_deprecated.go
- delete.go
- delete_deprecated.go
- doc.go
- labels.go
- labels_deprecated.go
- organizations.go
- organizations_deprecated.go
- paging.go
- query.go
- query_deprecated.go
- users.go
- users_deprecated.go
- write.go
- writeAPIBlocking.go
- write_deprecated.go
Directories ¶
Path | Synopsis |
---|---|
Package http holds HTTP options
|
Package http holds HTTP options |
Package query defined types for representing flux query result
|
Package query defined types for representing flux query result |
Package write provides the Point struct
|
Package write provides the Point struct |