github.com/influxdata/influxdb/v2@v2.7.6/organization.go (about) 1 package influxdb 2 3 import ( 4 "context" 5 6 "github.com/influxdata/influxdb/v2/kit/platform" 7 "github.com/influxdata/influxdb/v2/kit/platform/errors" 8 ) 9 10 // Organization is an organization. 🎉 11 type Organization struct { 12 ID platform.ID `json:"id,omitempty"` 13 Name string `json:"name"` 14 Description string `json:"description"` 15 CRUDLog 16 } 17 18 // errors of org 19 var ( 20 // ErrOrgNameisEmpty is error when org name is empty 21 ErrOrgNameisEmpty = &errors.Error{ 22 Code: errors.EInvalid, 23 Msg: "org name is empty", 24 } 25 ) 26 27 // ops for orgs error and orgs op logs. 28 const ( 29 OpFindOrganizationByID = "FindOrganizationByID" 30 OpFindOrganization = "FindOrganization" 31 OpFindOrganizations = "FindOrganizations" 32 OpCreateOrganization = "CreateOrganization" 33 OpPutOrganization = "PutOrganization" 34 OpUpdateOrganization = "UpdateOrganization" 35 OpDeleteOrganization = "DeleteOrganization" 36 ) 37 38 // OrganizationService represents a service for managing organization data. 39 type OrganizationService interface { 40 // Returns a single organization by ID. 41 FindOrganizationByID(ctx context.Context, id platform.ID) (*Organization, error) 42 43 // Returns the first organization that matches filter. 44 FindOrganization(ctx context.Context, filter OrganizationFilter) (*Organization, error) 45 46 // Returns a list of organizations that match filter and the total count of matching organizations. 47 // Additional options provide pagination & sorting. 48 FindOrganizations(ctx context.Context, filter OrganizationFilter, opt ...FindOptions) ([]*Organization, int, error) 49 50 // Creates a new organization and sets b.ID with the new identifier. 51 CreateOrganization(ctx context.Context, b *Organization) error 52 53 // Updates a single organization with changeset. 54 // Returns the new organization state after update. 55 UpdateOrganization(ctx context.Context, id platform.ID, upd OrganizationUpdate) (*Organization, error) 56 57 // Removes a organization by ID. 58 DeleteOrganization(ctx context.Context, id platform.ID) error 59 } 60 61 // OrganizationUpdate represents updates to a organization. 62 // Only fields which are set are updated. 63 type OrganizationUpdate struct { 64 Name *string 65 Description *string `json:"description,omitempty"` 66 } 67 68 // ErrInvalidOrgFilter is the error indicate org filter is empty 69 var ErrInvalidOrgFilter = &errors.Error{ 70 Code: errors.EInvalid, 71 Msg: "Please provide either orgID or org", 72 } 73 74 // OrganizationFilter represents a set of filter that restrict the returned results. 75 type OrganizationFilter struct { 76 Name *string 77 ID *platform.ID 78 UserID *platform.ID 79 }