// Package manufacturers provides access to the Manufacturer Center API. // // See https://developers.google.com/manufacturers/ // // Usage example: // // import "google.golang.org/api/manufacturers/v1" // ... // manufacturersService, err := manufacturers.New(oauthHttpClient) package manufacturers // import "google.golang.org/api/manufacturers/v1" import ( "bytes" "encoding/json" "errors" "fmt" context "golang.org/x/net/context" ctxhttp "golang.org/x/net/context/ctxhttp" gensupport "google.golang.org/api/gensupport" googleapi "google.golang.org/api/googleapi" "io" "net/http" "net/url" "strconv" "strings" ) // Always reference these packages, just in case the auto-generated code // below doesn't. var _ = bytes.NewBuffer var _ = strconv.Itoa var _ = fmt.Sprintf var _ = json.NewDecoder var _ = io.Copy var _ = url.Parse var _ = gensupport.MarshalJSON var _ = googleapi.Version var _ = errors.New var _ = strings.Replace var _ = context.Canceled var _ = ctxhttp.Do const apiId = "manufacturers:v1" const apiName = "manufacturers" const apiVersion = "v1" const basePath = "https://manufacturers.googleapis.com/" // OAuth2 scopes used by this API. const ( // Manage your product listings for Google Manufacturer Center ManufacturercenterScope = "https://www.googleapis.com/auth/manufacturercenter" ) func New(client *http.Client) (*Service, error) { if client == nil { return nil, errors.New("client is nil") } s := &Service{client: client, BasePath: basePath} s.Accounts = NewAccountsService(s) return s, nil } type Service struct { client *http.Client BasePath string // API endpoint base URL UserAgent string // optional additional User-Agent fragment Accounts *AccountsService } func (s *Service) userAgent() string { if s.UserAgent == "" { return googleapi.UserAgent } return googleapi.UserAgent + " " + s.UserAgent } func NewAccountsService(s *Service) *AccountsService { rs := &AccountsService{s: s} rs.Products = NewAccountsProductsService(s) return rs } type AccountsService struct { s *Service Products *AccountsProductsService } func NewAccountsProductsService(s *Service) *AccountsProductsService { rs := &AccountsProductsService{s: s} return rs } type AccountsProductsService struct { s *Service } // Attributes: Attributes of the product. For more information, // see // https://support.google.com/manufacturers/answer/6124116. type Attributes struct { // AdditionalImageLink: The additional images of the product. For more // information, // see // https://support.google.com/manufacturers/answer/6124116#addlimage. AdditionalImageLink []*Image `json:"additionalImageLink,omitempty"` // AgeGroup: The target age group of the product. For more information, // see // https://support.google.com/manufacturers/answer/6124116#agegroup. AgeGroup string `json:"ageGroup,omitempty"` // Brand: The brand name of the product. For more information, // see // https://support.google.com/manufacturers/answer/6124116#brand. Brand string `json:"brand,omitempty"` // Capacity: The capacity of the product. For more information, // see // https://support.google.com/manufacturers/answer/6124116#capacity. Capacity *Capacity `json:"capacity,omitempty"` // Color: The color of the product. For more information, // see // https://support.google.com/manufacturers/answer/6124116#color. Color string `json:"color,omitempty"` // Count: The count of the product. For more information, // see // https://support.google.com/manufacturers/answer/6124116#count. Count *Count `json:"count,omitempty"` // Description: The description of the product. For more information, // see // https://support.google.com/manufacturers/answer/6124116#descriptio // n. Description string `json:"description,omitempty"` // DisclosureDate: The disclosure date of the product. For more // information, // see // https://support.google.com/manufacturers/answer/6124116#disclosure // . DisclosureDate string `json:"disclosureDate,omitempty"` // FeatureDescription: The rich format description of the product. For // more information, // see // https://support.google.com/manufacturers/answer/6124116#featuredes // c. FeatureDescription []*FeatureDescription `json:"featureDescription,omitempty"` // Flavor: The flavor of the product. For more information, // see // https://support.google.com/manufacturers/answer/6124116#flavor. Flavor string `json:"flavor,omitempty"` // Format: The format of the product. For more information, // see // https://support.google.com/manufacturers/answer/6124116#format. Format string `json:"format,omitempty"` // Gender: The target gender of the product. For more information, // see // https://support.google.com/manufacturers/answer/6124116#gender. Gender string `json:"gender,omitempty"` // Gtin: The Global Trade Item Number (GTIN) of the product. For more // information, // see https://support.google.com/manufacturers/answer/6124116#gtin. Gtin []string `json:"gtin,omitempty"` // ImageLink: The image of the product. For more information, // see // https://support.google.com/manufacturers/answer/6124116#image. ImageLink *Image `json:"imageLink,omitempty"` // ItemGroupId: The item group id of the product. For more information, // see // https://support.google.com/manufacturers/answer/6124116#itemgroupi // d. ItemGroupId string `json:"itemGroupId,omitempty"` // Material: The material of the product. For more information, // see // https://support.google.com/manufacturers/answer/6124116#material. Material string `json:"material,omitempty"` // Mpn: The Manufacturer Part Number (MPN) of the product. For more // information, // see https://support.google.com/manufacturers/answer/6124116#mpn. Mpn string `json:"mpn,omitempty"` // Pattern: The pattern of the product. For more information, // see // https://support.google.com/manufacturers/answer/6124116#pattern. Pattern string `json:"pattern,omitempty"` // ProductDetail: The details of the product. For more information, // see // https://support.google.com/manufacturers/answer/6124116#productdet // ail. ProductDetail []*ProductDetail `json:"productDetail,omitempty"` // ProductLine: The name of the group of products related to the // product. For more // information, // see // https://support.google.com/manufacturers/answer/6124116#productlin // e. ProductLine string `json:"productLine,omitempty"` // ProductName: The canonical name of the product. For more information, // see // https://support.google.com/manufacturers/answer/6124116#productnam // e. ProductName string `json:"productName,omitempty"` // ProductPageUrl: The URL of the detail page of the product. For more // information, // see // https://support.google.com/manufacturers/answer/6124116#productpag // e. ProductPageUrl string `json:"productPageUrl,omitempty"` // ProductType: The category of the product. For more information, // see // https://support.google.com/manufacturers/answer/6124116#producttyp // e. ProductType []string `json:"productType,omitempty"` // ReleaseDate: The release date of the product. For more information, // see // https://support.google.com/manufacturers/answer/6124116#release. ReleaseDate string `json:"releaseDate,omitempty"` // Scent: The scent of the product. For more information, see // https://support.google.com/manufacturers/answer/6124116#scent. Scent string `json:"scent,omitempty"` // Size: The size of the product. For more information, // see // https://support.google.com/manufacturers/answer/6124116#size. Size string `json:"size,omitempty"` // SizeSystem: The size system of the product. For more information, // see // https://support.google.com/manufacturers/answer/6124116#sizesystem // . SizeSystem string `json:"sizeSystem,omitempty"` // SizeType: The size type of the product. For more information, // see // https://support.google.com/manufacturers/answer/6124116#sizetype. SizeType string `json:"sizeType,omitempty"` // SuggestedRetailPrice: The suggested retail price (MSRP) of the // product. For more information, // see https://support.google.com/manufacturers/answer/6124116#price. SuggestedRetailPrice *Price `json:"suggestedRetailPrice,omitempty"` // Theme: The theme of the product. For more information, // see // https://support.google.com/manufacturers/answer/6124116#theme. Theme string `json:"theme,omitempty"` // Title: The title of the product. For more information, // see // https://support.google.com/manufacturers/answer/6124116#title. Title string `json:"title,omitempty"` // VideoLink: The videos of the product. For more information, // see // https://support.google.com/manufacturers/answer/6124116#video. VideoLink []string `json:"videoLink,omitempty"` // ForceSendFields is a list of field names (e.g. "AdditionalImageLink") // to unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "AdditionalImageLink") to // include in API requests with the JSON null value. By default, fields // with empty values are omitted from API requests. However, any field // with an empty value appearing in NullFields will be sent to the // server as null. It is an error if a field in this list has a // non-empty value. This may be used to include null fields in Patch // requests. NullFields []string `json:"-"` } func (s *Attributes) MarshalJSON() ([]byte, error) { type noMethod Attributes raw := noMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Capacity: The capacity of a product. For more information, // see // https://support.google.com/manufacturers/answer/6124116#capacity. type Capacity struct { // Unit: The unit of the capacity, i.e., MB, GB, or TB. Unit string `json:"unit,omitempty"` // Value: The numeric value of the capacity. Value int64 `json:"value,omitempty,string"` // ForceSendFields is a list of field names (e.g. "Unit") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Unit") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *Capacity) MarshalJSON() ([]byte, error) { type noMethod Capacity raw := noMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Count: The number of products in a single package. For more // information, // see // https://support.google.com/manufacturers/answer/6124116#count. type Count struct { // Unit: The unit in which these products are counted. Unit string `json:"unit,omitempty"` // Value: The numeric value of the number of products in a package. Value int64 `json:"value,omitempty,string"` // ForceSendFields is a list of field names (e.g. "Unit") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Unit") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *Count) MarshalJSON() ([]byte, error) { type noMethod Count raw := noMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // FeatureDescription: A feature description of the product. For more // information, // see // https://support.google.com/manufacturers/answer/6124116#featuredes // c. type FeatureDescription struct { // Headline: A short description of the feature. Headline string `json:"headline,omitempty"` // Image: An optional image describing the feature. Image *Image `json:"image,omitempty"` // Text: A detailed description of the feature. Text string `json:"text,omitempty"` // ForceSendFields is a list of field names (e.g. "Headline") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Headline") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *FeatureDescription) MarshalJSON() ([]byte, error) { type noMethod FeatureDescription raw := noMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Image: An image. type Image struct { // ImageUrl: The URL of the image. For crawled images, this is the // provided URL. For // uploaded images, this is a serving URL from Google if the image has // been // processed successfully. ImageUrl string `json:"imageUrl,omitempty"` // Status: The status of the image. // @OutputOnly // // Possible values: // "STATUS_UNSPECIFIED" - Status is unspecified. Should not be used. // "PENDING_PROCESSING" - Image was uploaded and is being processed. // "PENDING_CRAWL" - The image crawl is still pending. // "OK" - The image was processed and it meets the requirements. // "ROBOTED" - The image URL is protected by robots.txt file and // cannot be crawled. // "XROBOTED" - The image URL is protected by X-Robots-Tag and cannot // be crawled. // "CRAWL_ERROR" - There was an error while crawling the image. // "PROCESSING_ERROR" - The image cannot be processed. // "DECODING_ERROR" - The image cannot be decoded. // "TOO_BIG" - The image is too big. // "CRAWL_SKIPPED" - The image was manually overridden and will not be // crawled. Status string `json:"status,omitempty"` // Type: The type of the image, i.e., crawled or uploaded. // @OutputOnly // // Possible values: // "TYPE_UNSPECIFIED" - Type is unspecified. Should not be used. // "CRAWLED" - The image was crawled from a provided URL. // "UPLOADED" - The image was uploaded. Type string `json:"type,omitempty"` // ForceSendFields is a list of field names (e.g. "ImageUrl") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ImageUrl") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *Image) MarshalJSON() ([]byte, error) { type noMethod Image raw := noMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Issue: Product issue. type Issue struct { // Attribute: If present, the attribute that triggered the issue. For // more information // about attributes, // see // https://support.google.com/manufacturers/answer/6124116. Attribute string `json:"attribute,omitempty"` // Description: Description of the issue. Description string `json:"description,omitempty"` // Severity: The severity of the issue. // // Possible values: // "SEVERITY_UNSPECIFIED" - Unspecified severity, never used. // "ERROR" - Error severity. The issue prevents the usage of the whole // item. // "WARNING" - Warning severity. The issue is either one that prevents // the usage of the // attribute that triggered it or one that will soon prevent the usage // of // the whole item. // "INFO" - Info severity. The issue is one that doesn't require // immediate attention. // It is, for example, used to communicate which attributes are // still // pending review. Severity string `json:"severity,omitempty"` // Timestamp: The timestamp when this issue appeared. Timestamp string `json:"timestamp,omitempty"` // Type: The server-generated type of the issue, for // example, // “INCORRECT_TEXT_FORMATTING”, “IMAGE_NOT_SERVEABLE”, etc. Type string `json:"type,omitempty"` // ForceSendFields is a list of field names (e.g. "Attribute") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Attribute") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *Issue) MarshalJSON() ([]byte, error) { type noMethod Issue raw := noMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } type ListProductsResponse struct { // NextPageToken: The token for the retrieval of the next page of // product statuses. NextPageToken string `json:"nextPageToken,omitempty"` // Products: List of the products. Products []*Product `json:"products,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "NextPageToken") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "NextPageToken") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *ListProductsResponse) MarshalJSON() ([]byte, error) { type noMethod ListProductsResponse raw := noMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Price: A price. type Price struct { // Amount: The numeric value of the price. Amount string `json:"amount,omitempty"` // Currency: The currency in which the price is denoted. Currency string `json:"currency,omitempty"` // ForceSendFields is a list of field names (e.g. "Amount") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Amount") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *Price) MarshalJSON() ([]byte, error) { type noMethod Price raw := noMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Product: Product data. type Product struct { // ContentLanguage: The content language of the product as a two-letter // ISO 639-1 language code // (for example, en). // @OutputOnly ContentLanguage string `json:"contentLanguage,omitempty"` // FinalAttributes: Final attributes of the product. The final // attributes are obtained by // overriding the uploaded attributes with the manually provided and // deleted // attributes. Google systems only process, evaluate, review, and/or use // final // attributes. // @OutputOnly FinalAttributes *Attributes `json:"finalAttributes,omitempty"` // Issues: A server-generated list of issues associated with the // product. // @OutputOnly Issues []*Issue `json:"issues,omitempty"` // ManuallyDeletedAttributes: Names of the attributes of the product // deleted manually via the // Manufacturer Center UI. // @OutputOnly ManuallyDeletedAttributes []string `json:"manuallyDeletedAttributes,omitempty"` // ManuallyProvidedAttributes: Attributes of the product provided // manually via the Manufacturer Center UI. // @OutputOnly ManuallyProvidedAttributes *Attributes `json:"manuallyProvidedAttributes,omitempty"` // Name: Name in the format // `{target_country}:{content_language}:{product_id}`. // // `target_country` - The target country of the product as a CLDR // territory // code (for example, US). // // `content_language` - The content language of the product as a // two-letter // ISO 639-1 language code (for example, // en). // // `product_id` - The ID of the product. For more information, // see // // https://support.google.com/manufacturers/answer/6124116#id. // @OutputOnl // y Name string `json:"name,omitempty"` // Parent: Parent ID in the format // `accounts/{account_id}`. // // `account_id` - The ID of the Manufacturer Center account. // @OutputOnly Parent string `json:"parent,omitempty"` // ProductId: The ID of the product. For more information, // see // https://support.google.com/manufacturers/answer/6124116#id. // @Outpu // tOnly ProductId string `json:"productId,omitempty"` // TargetCountry: The target country of the product as a CLDR territory // code (for example, // US). // @OutputOnly TargetCountry string `json:"targetCountry,omitempty"` // UploadedAttributes: Attributes of the product uploaded via the // Manufacturer Center API or via // feeds. UploadedAttributes *Attributes `json:"uploadedAttributes,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "ContentLanguage") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ContentLanguage") to // include in API requests with the JSON null value. By default, fields // with empty values are omitted from API requests. However, any field // with an empty value appearing in NullFields will be sent to the // server as null. It is an error if a field in this list has a // non-empty value. This may be used to include null fields in Patch // requests. NullFields []string `json:"-"` } func (s *Product) MarshalJSON() ([]byte, error) { type noMethod Product raw := noMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // ProductDetail: A product detail of the product. For more information, // see // https://support.google.com/manufacturers/answer/6124116#productdet // ail. type ProductDetail struct { // AttributeName: The name of the attribute. AttributeName string `json:"attributeName,omitempty"` // AttributeValue: The value of the attribute. AttributeValue string `json:"attributeValue,omitempty"` // SectionName: A short section name that can be reused between multiple // product details. SectionName string `json:"sectionName,omitempty"` // ForceSendFields is a list of field names (e.g. "AttributeName") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "AttributeName") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *ProductDetail) MarshalJSON() ([]byte, error) { type noMethod ProductDetail raw := noMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // method id "manufacturers.accounts.products.get": type AccountsProductsGetCall struct { s *Service parent string name string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } // Get: Gets the product from a Manufacturer Center account, including // product // issues. func (r *AccountsProductsService) Get(parent string, name string) *AccountsProductsGetCall { c := &AccountsProductsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.parent = parent c.name = name return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *AccountsProductsGetCall) Fields(s ...googleapi.Field) *AccountsProductsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // IfNoneMatch sets the optional parameter which makes the operation // fail if the object's ETag matches the given value. This is useful for // getting updates only after the object has changed since the last // request. Use googleapi.IsNotModified to check whether the response // error from Do is the result of In-None-Match. func (c *AccountsProductsGetCall) IfNoneMatch(entityTag string) *AccountsProductsGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *AccountsProductsGetCall) Context(ctx context.Context) *AccountsProductsGetCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *AccountsProductsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *AccountsProductsGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } var body io.Reader = nil c.urlParams_.Set("alt", alt) urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/products/{+name}") urls += "?" + c.urlParams_.Encode() req, _ := http.NewRequest("GET", urls, body) req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "parent": c.parent, "name": c.name, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "manufacturers.accounts.products.get" call. // Exactly one of *Product or error will be non-nil. Any non-2xx status // code is an error. Response headers are in either // *Product.ServerResponse.Header or (if a response was returned at all) // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to // check whether the returned error was because http.StatusNotModified // was returned. func (c *AccountsProductsGetCall) Do(opts ...googleapi.CallOption) (*Product, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &Product{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := json.NewDecoder(res.Body).Decode(target); err != nil { return nil, err } return ret, nil // { // "description": "Gets the product from a Manufacturer Center account, including product\nissues.", // "flatPath": "v1/accounts/{accountsId}/products/{productsId}", // "httpMethod": "GET", // "id": "manufacturers.accounts.products.get", // "parameterOrder": [ // "parent", // "name" // ], // "parameters": { // "name": { // "description": "Name in the format `{target_country}:{content_language}:{product_id}`.\n\n`target_country` - The target country of the product as a CLDR territory\n code (for example, US).\n\n`content_language` - The content language of the product as a two-letter\n ISO 639-1 language code (for example, en).\n\n`product_id` - The ID of the product. For more information, see\n https://support.google.com/manufacturers/answer/6124116#id.", // "location": "path", // "pattern": "^[^/]+$", // "required": true, // "type": "string" // }, // "parent": { // "description": "Parent ID in the format `accounts/{account_id}`.\n\n`account_id` - The ID of the Manufacturer Center account.", // "location": "path", // "pattern": "^accounts/[^/]+$", // "required": true, // "type": "string" // } // }, // "path": "v1/{+parent}/products/{+name}", // "response": { // "$ref": "Product" // }, // "scopes": [ // "https://www.googleapis.com/auth/manufacturercenter" // ] // } } // method id "manufacturers.accounts.products.list": type AccountsProductsListCall struct { s *Service parent string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } // List: Lists all the products in a Manufacturer Center account. func (r *AccountsProductsService) List(parent string) *AccountsProductsListCall { c := &AccountsProductsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.parent = parent return c } // PageSize sets the optional parameter "pageSize": Maximum number of // product statuses to return in the response, used for // paging. func (c *AccountsProductsListCall) PageSize(pageSize int64) *AccountsProductsListCall { c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) return c } // PageToken sets the optional parameter "pageToken": The token returned // by the previous request. func (c *AccountsProductsListCall) PageToken(pageToken string) *AccountsProductsListCall { c.urlParams_.Set("pageToken", pageToken) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *AccountsProductsListCall) Fields(s ...googleapi.Field) *AccountsProductsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // IfNoneMatch sets the optional parameter which makes the operation // fail if the object's ETag matches the given value. This is useful for // getting updates only after the object has changed since the last // request. Use googleapi.IsNotModified to check whether the response // error from Do is the result of In-None-Match. func (c *AccountsProductsListCall) IfNoneMatch(entityTag string) *AccountsProductsListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *AccountsProductsListCall) Context(ctx context.Context) *AccountsProductsListCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *AccountsProductsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *AccountsProductsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } var body io.Reader = nil c.urlParams_.Set("alt", alt) urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/products") urls += "?" + c.urlParams_.Encode() req, _ := http.NewRequest("GET", urls, body) req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "parent": c.parent, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "manufacturers.accounts.products.list" call. // Exactly one of *ListProductsResponse or error will be non-nil. Any // non-2xx status code is an error. Response headers are in either // *ListProductsResponse.ServerResponse.Header or (if a response was // returned at all) in error.(*googleapi.Error).Header. Use // googleapi.IsNotModified to check whether the returned error was // because http.StatusNotModified was returned. func (c *AccountsProductsListCall) Do(opts ...googleapi.CallOption) (*ListProductsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &ListProductsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := json.NewDecoder(res.Body).Decode(target); err != nil { return nil, err } return ret, nil // { // "description": "Lists all the products in a Manufacturer Center account.", // "flatPath": "v1/accounts/{accountsId}/products", // "httpMethod": "GET", // "id": "manufacturers.accounts.products.list", // "parameterOrder": [ // "parent" // ], // "parameters": { // "pageSize": { // "description": "Maximum number of product statuses to return in the response, used for\npaging.", // "format": "int32", // "location": "query", // "type": "integer" // }, // "pageToken": { // "description": "The token returned by the previous request.", // "location": "query", // "type": "string" // }, // "parent": { // "description": "Parent ID in the format `accounts/{account_id}`.\n\n`account_id` - The ID of the Manufacturer Center account.", // "location": "path", // "pattern": "^accounts/[^/]+$", // "required": true, // "type": "string" // } // }, // "path": "v1/{+parent}/products", // "response": { // "$ref": "ListProductsResponse" // }, // "scopes": [ // "https://www.googleapis.com/auth/manufacturercenter" // ] // } } // Pages invokes f for each page of results. // A non-nil error returned from f will halt the iteration. // The provided context supersedes any context provided to the Context method. func (c *AccountsProductsListCall) Pages(ctx context.Context, f func(*ListProductsResponse) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point for { x, err := c.Do() if err != nil { return err } if err := f(x); err != nil { return err } if x.NextPageToken == "" { return nil } c.PageToken(x.NextPageToken) } }