pkg/database/cosmosdb/zz_generated_subscriptiondocument.go (247 lines of code) (raw):

// Code generated by github.com/bennerv/go-cosmosdb, DO NOT EDIT. package cosmosdb import ( "context" "net/http" "strconv" "strings" pkg "github.com/Azure/ARO-RP/pkg/api" ) type subscriptionDocumentClient struct { *databaseClient path string } // SubscriptionDocumentClient is a subscriptionDocument client type SubscriptionDocumentClient interface { Create(context.Context, string, *pkg.SubscriptionDocument, *Options) (*pkg.SubscriptionDocument, error) List(*Options) SubscriptionDocumentIterator ListAll(context.Context, *Options) (*pkg.SubscriptionDocuments, error) Get(context.Context, string, string, *Options) (*pkg.SubscriptionDocument, error) Replace(context.Context, string, *pkg.SubscriptionDocument, *Options) (*pkg.SubscriptionDocument, error) Delete(context.Context, string, *pkg.SubscriptionDocument, *Options) error Query(string, *Query, *Options) SubscriptionDocumentRawIterator QueryAll(context.Context, string, *Query, *Options) (*pkg.SubscriptionDocuments, error) ChangeFeed(*Options) SubscriptionDocumentIterator } type subscriptionDocumentChangeFeedIterator struct { *subscriptionDocumentClient continuation string options *Options } type subscriptionDocumentListIterator struct { *subscriptionDocumentClient continuation string done bool options *Options } type subscriptionDocumentQueryIterator struct { *subscriptionDocumentClient partitionkey string query *Query continuation string done bool options *Options } // SubscriptionDocumentIterator is a subscriptionDocument iterator type SubscriptionDocumentIterator interface { Next(context.Context, int) (*pkg.SubscriptionDocuments, error) Continuation() string } // SubscriptionDocumentRawIterator is a subscriptionDocument raw iterator type SubscriptionDocumentRawIterator interface { SubscriptionDocumentIterator NextRaw(context.Context, int, interface{}) error } // NewSubscriptionDocumentClient returns a new subscriptionDocument client func NewSubscriptionDocumentClient(collc CollectionClient, collid string) SubscriptionDocumentClient { return &subscriptionDocumentClient{ databaseClient: collc.(*collectionClient).databaseClient, path: collc.(*collectionClient).path + "/colls/" + collid, } } func (c *subscriptionDocumentClient) all(ctx context.Context, i SubscriptionDocumentIterator) (*pkg.SubscriptionDocuments, error) { allsubscriptionDocuments := &pkg.SubscriptionDocuments{} for { subscriptionDocuments, err := i.Next(ctx, -1) if err != nil { return nil, err } if subscriptionDocuments == nil { break } allsubscriptionDocuments.Count += subscriptionDocuments.Count allsubscriptionDocuments.ResourceID = subscriptionDocuments.ResourceID allsubscriptionDocuments.SubscriptionDocuments = append(allsubscriptionDocuments.SubscriptionDocuments, subscriptionDocuments.SubscriptionDocuments...) } return allsubscriptionDocuments, nil } func (c *subscriptionDocumentClient) Create(ctx context.Context, partitionkey string, newsubscriptionDocument *pkg.SubscriptionDocument, options *Options) (subscriptionDocument *pkg.SubscriptionDocument, err error) { headers := http.Header{} headers.Set("X-Ms-Documentdb-Partitionkey", `["`+partitionkey+`"]`) if options == nil { options = &Options{} } options.NoETag = true err = c.setOptions(options, newsubscriptionDocument, headers) if err != nil { return } err = c.do(ctx, http.MethodPost, c.path+"/docs", "docs", c.path, http.StatusCreated, &newsubscriptionDocument, &subscriptionDocument, headers) return } func (c *subscriptionDocumentClient) List(options *Options) SubscriptionDocumentIterator { continuation := "" if options != nil { continuation = options.Continuation } return &subscriptionDocumentListIterator{subscriptionDocumentClient: c, options: options, continuation: continuation} } func (c *subscriptionDocumentClient) ListAll(ctx context.Context, options *Options) (*pkg.SubscriptionDocuments, error) { return c.all(ctx, c.List(options)) } func (c *subscriptionDocumentClient) Get(ctx context.Context, partitionkey, subscriptionDocumentid string, options *Options) (subscriptionDocument *pkg.SubscriptionDocument, err error) { headers := http.Header{} headers.Set("X-Ms-Documentdb-Partitionkey", `["`+partitionkey+`"]`) err = c.setOptions(options, nil, headers) if err != nil { return } err = c.do(ctx, http.MethodGet, c.path+"/docs/"+subscriptionDocumentid, "docs", c.path+"/docs/"+subscriptionDocumentid, http.StatusOK, nil, &subscriptionDocument, headers) return } func (c *subscriptionDocumentClient) Replace(ctx context.Context, partitionkey string, newsubscriptionDocument *pkg.SubscriptionDocument, options *Options) (subscriptionDocument *pkg.SubscriptionDocument, err error) { headers := http.Header{} headers.Set("X-Ms-Documentdb-Partitionkey", `["`+partitionkey+`"]`) err = c.setOptions(options, newsubscriptionDocument, headers) if err != nil { return } err = c.do(ctx, http.MethodPut, c.path+"/docs/"+newsubscriptionDocument.ID, "docs", c.path+"/docs/"+newsubscriptionDocument.ID, http.StatusOK, &newsubscriptionDocument, &subscriptionDocument, headers) return } func (c *subscriptionDocumentClient) Delete(ctx context.Context, partitionkey string, subscriptionDocument *pkg.SubscriptionDocument, options *Options) (err error) { headers := http.Header{} headers.Set("X-Ms-Documentdb-Partitionkey", `["`+partitionkey+`"]`) err = c.setOptions(options, subscriptionDocument, headers) if err != nil { return } err = c.do(ctx, http.MethodDelete, c.path+"/docs/"+subscriptionDocument.ID, "docs", c.path+"/docs/"+subscriptionDocument.ID, http.StatusNoContent, nil, nil, headers) return } func (c *subscriptionDocumentClient) Query(partitionkey string, query *Query, options *Options) SubscriptionDocumentRawIterator { continuation := "" if options != nil { continuation = options.Continuation } return &subscriptionDocumentQueryIterator{subscriptionDocumentClient: c, partitionkey: partitionkey, query: query, options: options, continuation: continuation} } func (c *subscriptionDocumentClient) QueryAll(ctx context.Context, partitionkey string, query *Query, options *Options) (*pkg.SubscriptionDocuments, error) { return c.all(ctx, c.Query(partitionkey, query, options)) } func (c *subscriptionDocumentClient) ChangeFeed(options *Options) SubscriptionDocumentIterator { continuation := "" if options != nil { continuation = options.Continuation } return &subscriptionDocumentChangeFeedIterator{subscriptionDocumentClient: c, options: options, continuation: continuation} } func (c *subscriptionDocumentClient) setOptions(options *Options, subscriptionDocument *pkg.SubscriptionDocument, headers http.Header) error { if options == nil { return nil } if subscriptionDocument != nil && !options.NoETag { if subscriptionDocument.ETag == "" { return ErrETagRequired } headers.Set("If-Match", subscriptionDocument.ETag) } if len(options.PreTriggers) > 0 { headers.Set("X-Ms-Documentdb-Pre-Trigger-Include", strings.Join(options.PreTriggers, ",")) } if len(options.PostTriggers) > 0 { headers.Set("X-Ms-Documentdb-Post-Trigger-Include", strings.Join(options.PostTriggers, ",")) } if len(options.PartitionKeyRangeID) > 0 { headers.Set("X-Ms-Documentdb-PartitionKeyRangeID", options.PartitionKeyRangeID) } return nil } func (i *subscriptionDocumentChangeFeedIterator) Next(ctx context.Context, maxItemCount int) (subscriptionDocuments *pkg.SubscriptionDocuments, err error) { headers := http.Header{} headers.Set("A-IM", "Incremental feed") headers.Set("X-Ms-Max-Item-Count", strconv.Itoa(maxItemCount)) if i.continuation != "" { headers.Set("If-None-Match", i.continuation) } err = i.setOptions(i.options, nil, headers) if err != nil { return } err = i.do(ctx, http.MethodGet, i.path+"/docs", "docs", i.path, http.StatusOK, nil, &subscriptionDocuments, headers) if IsErrorStatusCode(err, http.StatusNotModified) { err = nil } if err != nil { return } i.continuation = headers.Get("Etag") return } func (i *subscriptionDocumentChangeFeedIterator) Continuation() string { return i.continuation } func (i *subscriptionDocumentListIterator) Next(ctx context.Context, maxItemCount int) (subscriptionDocuments *pkg.SubscriptionDocuments, err error) { if i.done { return } headers := http.Header{} headers.Set("X-Ms-Max-Item-Count", strconv.Itoa(maxItemCount)) if i.continuation != "" { headers.Set("X-Ms-Continuation", i.continuation) } err = i.setOptions(i.options, nil, headers) if err != nil { return } err = i.do(ctx, http.MethodGet, i.path+"/docs", "docs", i.path, http.StatusOK, nil, &subscriptionDocuments, headers) if err != nil { return } i.continuation = headers.Get("X-Ms-Continuation") i.done = i.continuation == "" return } func (i *subscriptionDocumentListIterator) Continuation() string { return i.continuation } func (i *subscriptionDocumentQueryIterator) Next(ctx context.Context, maxItemCount int) (subscriptionDocuments *pkg.SubscriptionDocuments, err error) { err = i.NextRaw(ctx, maxItemCount, &subscriptionDocuments) return } func (i *subscriptionDocumentQueryIterator) NextRaw(ctx context.Context, maxItemCount int, raw interface{}) (err error) { if i.done { return } headers := http.Header{} headers.Set("X-Ms-Max-Item-Count", strconv.Itoa(maxItemCount)) headers.Set("X-Ms-Documentdb-Isquery", "True") headers.Set("Content-Type", "application/query+json") if i.partitionkey != "" { headers.Set("X-Ms-Documentdb-Partitionkey", `["`+i.partitionkey+`"]`) } else { headers.Set("X-Ms-Documentdb-Query-Enablecrosspartition", "True") } if i.continuation != "" { headers.Set("X-Ms-Continuation", i.continuation) } err = i.setOptions(i.options, nil, headers) if err != nil { return } err = i.do(ctx, http.MethodPost, i.path+"/docs", "docs", i.path, http.StatusOK, &i.query, &raw, headers) if err != nil { return } i.continuation = headers.Get("X-Ms-Continuation") i.done = i.continuation == "" return } func (i *subscriptionDocumentQueryIterator) Continuation() string { return i.continuation }