{"openapi":"3.1.1","info":{"title":"Ingest API","description":"\nIngest API is the front line for sending data from shops into Prisjakt.\n","version":"1"},"servers":[{"url":"/v1"}],"paths":{"/brands/product-feeds/{feed_id}/upload":{"post":{"tags":["Product Feeds"],"summary":"Upload product feed","description":"Creates a run for the specific feed and uploads feed to GCS in a\nproduct_feeds/<feed_id>/<feed_parser_name>","operationId":"trigger_product_feed_run_for_brand_and_upload_brands_product_feeds__feed_id__upload_post","security":[{"OAuth2ClientCredentials":[]}],"parameters":[{"name":"feed_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Feed Id"}},{"name":"compression","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/FileUploadCompressionType"},{"type":"null"}],"title":"Compression"}},{"name":"run_mode","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/RunMode"},{"type":"null"}],"title":"Run Mode"}},{"name":"log_ingested_entity","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Log Ingested Entity"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_trigger_product_feed_run_for_brand_and_upload_brands_product_feeds__feed_id__upload_post"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunModelWithUploadResponseBody"}}}},"401":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: REQUEST_401_UNAUTHORIZED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: REQUEST_403_FORBIDDEN","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: MODEL_NOT_FOUND","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"405":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: UPLOAD_FILE_SIZE_NOT_FOUND","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"406":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: UPLOAD_FEED_FILE_ABOVE_ALLOWED_SIZE","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: FEED_OWNER_HAVE_PENDING_ACTIONS, FEED_OWNER_HAS_TOO_MANY_SCHEDULED_RUNS","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"400":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: MULTIPLE_FILE_IN_ARCHIVE_NOT_ALLOWED, ZIP_FILE_DECOMPRESSION_ERROR, UNSUPPORTED_COMPRESSION_ERROR","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: PUBLISHER_CLIENT_ERROR, FILE_UPLOAD_FAILED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/operations/status":{"get":{"tags":["Operations"],"summary":"Status","description":"A keep-alive endpoint that checks the status of the web server only. It does not\nperform any complex operations (like hitting a database).","operationId":"get_status_operations_status_get","security":[{"OAuth2ClientCredentials":[]}],"parameters":[{"name":"sleep_time","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sleep Time"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatusModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/operations/health":{"get":{"tags":["Operations"],"summary":"Health Check","description":"Health check endpoint that verifies that the API and it´s dependencies returns\nOK response. Response model follows\n[rfc proposal](https://datatracker.ietf.org/doc/html/draft-inadarei-api-health-check)\nfor API health checks.\n\nUse this endpoint for monitoring from external systems.","operationId":"get_health_operations_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthCheckModel"}}}}},"security":[{"OAuth2ClientCredentials":[]}]}},"/shops/{shop_id}/offers":{"post":{"tags":["Offer Ingestion"],"summary":"Upsert Offer","description":"Updates or adds an offer to your shops inventory. Follows the\n        [Google Merchant API](https://developers.google.com/merchant/api/reference/rest/products_v1beta/accounts.productInputs#ProductInput)\n        specification with some Prisjakt specific additions.\n        Use the\n        [versionNumber](https://developers.google.com/merchant/api/reference/rest/products_v1beta/accounts.productInputs#ProductInput)\n        to preserver order of your updates. Time from an update until visible on our\n        page depends on a number of factors (new offer or update, current load,\n        validation errors, caches) and may differ. Under normal circumstances for an\n        offer update the scale is seconds, but under heavy load scenarios it may be\n        minutes (up to 30 min).","operationId":"upsert_offer_shops__shop_id__offers_post","security":[{"OAuth2ClientCredentials":[]}],"parameters":[{"name":"shop_id","in":"path","required":true,"schema":{"type":"integer","title":"Shop Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductInput"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RealTimeIngestionResponseModel"}}}},"404":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: SHOP_DOES_NOT_EXIST","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/shops/{shop_id}/offers/{offer_id}":{"delete":{"tags":["Offer Ingestion"],"summary":"Remove Offer","description":"Removes an offer from your shops inventory on Prisjakt.","operationId":"remove_offer_shops__shop_id__offers__offer_id__delete","security":[{"OAuth2ClientCredentials":[]}],"parameters":[{"name":"shop_id","in":"path","required":true,"schema":{"type":"integer","title":"Shop Id"}},{"name":"offer_id","in":"path","required":true,"schema":{"type":"string","title":"Offer Id"}}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RealTimeIngestionResponseModel"}}}},"404":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: SHOP_DOES_NOT_EXIST","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/shops/local-offer-feeds/{feed_id}/upload":{"post":{"tags":["Local Offer Feeds"],"summary":"Upload local offer feed","description":"Creates a run for the specific feed and uploads feed to GCS in a\noffer_feeds/<feed_id>","operationId":"trigger_local_offer_feed_run_and_upload_shops_local_offer_feeds__feed_id__upload_post","security":[{"OAuth2ClientCredentials":[]}],"parameters":[{"name":"feed_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Feed Id"}},{"name":"compression","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/FileUploadCompressionType"},{"type":"null"}],"title":"Compression"}},{"name":"run_mode","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/RunMode"},{"type":"null"}],"title":"Run Mode"}},{"name":"log_ingested_entity","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Log Ingested Entity"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_trigger_local_offer_feed_run_and_upload_shops_local_offer_feeds__feed_id__upload_post"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunModelWithUploadResponseBody"}}}},"401":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: REQUEST_401_UNAUTHORIZED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: REQUEST_403_FORBIDDEN","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: MODEL_NOT_FOUND","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"405":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: UPLOAD_FILE_SIZE_NOT_FOUND","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"406":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: UPLOAD_FEED_FILE_ABOVE_ALLOWED_SIZE","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: FEED_OWNER_HAVE_PENDING_ACTIONS, FEED_OWNER_HAS_TOO_MANY_SCHEDULED_RUNS","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"400":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: MULTIPLE_FILE_IN_ARCHIVE_NOT_ALLOWED, ZIP_FILE_DECOMPRESSION_ERROR, UNSUPPORTED_COMPRESSION_ERROR, UPLOAD_ONLY_ONE_FILE_ALLOWED, FEED_FILE_FORM_FIELD_REQUIRED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: PUBLISHER_CLIENT_ERROR, FILE_UPLOAD_FAILED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/shops/local-shop-feeds/{feed_id}/upload":{"post":{"tags":["Local Shop Feeds"],"summary":"Upload local shop feed","description":"Creates a run for the specific feed and uploads feed to GCS in a\noffer_feeds/<feed_id>","operationId":"trigger_offer_feed_run_and_upload_shops_local_shop_feeds__feed_id__upload_post","security":[{"OAuth2ClientCredentials":[]}],"parameters":[{"name":"feed_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Feed Id"}},{"name":"compression","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/FileUploadCompressionType"},{"type":"null"}],"title":"Compression"}},{"name":"run_mode","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/RunMode"},{"type":"null"}],"title":"Run Mode"}},{"name":"log_ingested_entity","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Log Ingested Entity"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_trigger_offer_feed_run_and_upload_shops_local_shop_feeds__feed_id__upload_post"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunModelWithUploadResponseBody"}}}},"401":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: REQUEST_401_UNAUTHORIZED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: REQUEST_403_FORBIDDEN","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: MODEL_NOT_FOUND","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"405":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: UPLOAD_FILE_SIZE_NOT_FOUND","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"406":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: UPLOAD_FEED_FILE_ABOVE_ALLOWED_SIZE","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: FEED_OWNER_HAVE_PENDING_ACTIONS, FEED_OWNER_HAS_TOO_MANY_SCHEDULED_RUNS","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"400":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: MULTIPLE_FILE_IN_ARCHIVE_NOT_ALLOWED, ZIP_FILE_DECOMPRESSION_ERROR, UNSUPPORTED_COMPRESSION_ERROR, UPLOAD_ONLY_ONE_FILE_ALLOWED, FEED_FILE_FORM_FIELD_REQUIRED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: PUBLISHER_CLIENT_ERROR, FILE_UPLOAD_FAILED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/shops/offer-feeds/{feed_id}/upload":{"post":{"tags":["Offer Feeds"],"summary":"Upload offer feed","description":"Creates a run for the specific feed and uploads feed to GCS in a\noffer_feeds/<feed_id>","operationId":"trigger_offer_feed_run_and_upload_shops_offer_feeds__feed_id__upload_post","security":[{"OAuth2ClientCredentials":[]}],"parameters":[{"name":"feed_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Feed Id"}},{"name":"compression","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/FileUploadCompressionType"},{"type":"null"}],"title":"Compression"}},{"name":"run_mode","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/RunMode"},{"type":"null"}],"title":"Run Mode"}},{"name":"log_ingested_entity","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Log Ingested Entity"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_trigger_offer_feed_run_and_upload_shops_offer_feeds__feed_id__upload_post"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunModelWithUploadResponseBody"}}}},"401":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: REQUEST_401_UNAUTHORIZED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: REQUEST_403_FORBIDDEN","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: MODEL_NOT_FOUND","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"405":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: UPLOAD_FILE_SIZE_NOT_FOUND","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"406":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: UPLOAD_FEED_FILE_ABOVE_ALLOWED_SIZE","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: FEED_OWNER_HAVE_PENDING_ACTIONS, FEED_OWNER_HAS_TOO_MANY_SCHEDULED_RUNS","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"400":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: MULTIPLE_FILE_IN_ARCHIVE_NOT_ALLOWED, ZIP_FILE_DECOMPRESSION_ERROR, UNSUPPORTED_COMPRESSION_ERROR, UPLOAD_ONLY_ONE_FILE_ALLOWED, FEED_FILE_FORM_FIELD_REQUIRED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: PUBLISHER_CLIENT_ERROR, FILE_UPLOAD_FAILED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/shops/promotion-feeds/{feed_id}/upload":{"post":{"tags":["Promotion Feeds"],"summary":"Upload promotion feed","description":"Creates a run for the specific feed and uploads feed to GCS in a\noffer_feeds/<feed_id>","operationId":"trigger_promotion_feed_run_and_upload_shops_promotion_feeds__feed_id__upload_post","security":[{"OAuth2ClientCredentials":[]}],"parameters":[{"name":"feed_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Feed Id"}},{"name":"compression","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/FileUploadCompressionType"},{"type":"null"}],"title":"Compression"}},{"name":"run_mode","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/RunMode"},{"type":"null"}],"title":"Run Mode"}},{"name":"log_ingested_entity","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Log Ingested Entity"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_trigger_promotion_feed_run_and_upload_shops_promotion_feeds__feed_id__upload_post"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunModelWithUploadResponseBody"}}}},"401":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: REQUEST_401_UNAUTHORIZED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: REQUEST_403_FORBIDDEN","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: MODEL_NOT_FOUND","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"405":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: UPLOAD_FILE_SIZE_NOT_FOUND","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"406":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: UPLOAD_FEED_FILE_ABOVE_ALLOWED_SIZE","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: FEED_OWNER_HAVE_PENDING_ACTIONS, FEED_OWNER_HAS_TOO_MANY_SCHEDULED_RUNS","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"400":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: MULTIPLE_FILE_IN_ARCHIVE_NOT_ALLOWED, ZIP_FILE_DECOMPRESSION_ERROR, UNSUPPORTED_COMPRESSION_ERROR, UPLOAD_ONLY_ONE_FILE_ALLOWED, FEED_FILE_FORM_FIELD_REQUIRED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"Error response, see code and description for details.<br/>Possible error code values with this http status code: PUBLISHER_CLIENT_ERROR, FILE_UPLOAD_FAILED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"ActionCounts":{"properties":{"upserted":{"type":"integer","title":"Upserted"},"removed":{"type":"integer","title":"Removed"},"unchanged":{"type":"integer","title":"Unchanged"}},"type":"object","required":["upserted","removed","unchanged"],"title":"ActionCounts"},"AgeGroup":{"type":"string","enum":["adult","infant","kids","newborn","toddler"],"title":"AgeGroup"},"ApiError":{"properties":{"code":{"$ref":"#/components/schemas/ErrorCode"},"description":{"type":"string","title":"Description"}},"type":"object","required":["code","description"],"title":"ApiError","description":"Error model for Feed API"},"Attributes":{"properties":{"title":{"anyOf":[{"type":"string","maxLength":150},{"type":"null"}],"title":"Title"},"link":{"anyOf":[{"type":"string","maxLength":2083,"minLength":1,"format":"uri"},{"type":"null"}],"title":"Link"},"price":{"anyOf":[{"$ref":"#/components/schemas/Price"},{"type":"null"}]},"availability":{"anyOf":[{"$ref":"#/components/schemas/Availability"},{"type":"null"}]},"condition":{"anyOf":[{"$ref":"#/components/schemas/Condition"},{"type":"null"}]},"conditionGrade":{"anyOf":[{"$ref":"#/components/schemas/ConditionGrade"},{"type":"null"}]},"additionalImageLinks":{"anyOf":[{"items":{"type":"string","maxLength":2083,"minLength":1,"format":"uri"},"type":"array","maxItems":10},{"type":"null"}],"title":"Additionalimagelinks"},"adult":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Adult"},"ageGroup":{"anyOf":[{"$ref":"#/components/schemas/AgeGroup"},{"type":"null"}]},"availabilityDate":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Availabilitydate"},"brand":{"anyOf":[{"type":"string","maxLength":70},{"type":"null"}],"title":"Brand"},"color":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Color"},"description":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}],"title":"Description"},"energyEfficiencyClass":{"anyOf":[{"$ref":"#/components/schemas/EnergyEfficiencyClass"},{"type":"null"}]},"gender":{"anyOf":[{"$ref":"#/components/schemas/Gender"},{"type":"null"}]},"googleProductCategory":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Googleproductcategory"},"gtin":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":100},{"type":"null"}],"title":"Gtin"},"gtins":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":100},{"type":"null"}],"title":"Gtins"},"imageLink":{"anyOf":[{"type":"string","maxLength":2083,"minLength":1,"format":"uri"},{"type":"null"}],"title":"Imagelink"},"isBundle":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Isbundle"},"itemGroupId":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Itemgroupid"},"marketplaceRetailer":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Marketplaceretailer"},"material":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Material"},"mpn":{"anyOf":[{"type":"string","maxLength":70},{"type":"null"}],"title":"Mpn"},"pattern":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Pattern"},"productDetail":{"anyOf":[{"items":{"$ref":"#/components/schemas/ProductDetail"},"type":"array"},{"type":"null"}],"title":"Productdetail"},"productDetails":{"anyOf":[{"items":{"$ref":"#/components/schemas/ProductDetail"},"type":"array"},{"type":"null"}],"title":"Productdetails"},"productType":{"anyOf":[{"items":{"type":"string","maxLength":750},"type":"array","maxItems":100},{"type":"null"}],"title":"Producttype"},"productTypes":{"anyOf":[{"items":{"type":"string","maxLength":750},"type":"array","maxItems":100},{"type":"null"}],"title":"Producttypes"},"promotionId":{"anyOf":[{"items":{"type":"string","maxLength":50},"type":"array","maxItems":10},{"type":"null"}],"title":"Promotionid"},"promotionIds":{"anyOf":[{"items":{"type":"string","maxLength":50},"type":"array","maxItems":10},{"type":"null"}],"title":"Promotionids"},"salePrice":{"anyOf":[{"$ref":"#/components/schemas/Price"},{"type":"null"}]},"salePriceEffectiveDate":{"anyOf":[{"$ref":"#/components/schemas/Interval"},{"type":"null"}]},"shipping":{"anyOf":[{"items":{"$ref":"#/components/schemas/Shipping"},"type":"array","maxItems":100},{"type":"null"}],"title":"Shipping"},"shippingLabel":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Shippinglabel"},"shippingLength":{"anyOf":[{"$ref":"#/components/schemas/ShippingDimension"},{"type":"null"}]},"shippingWidth":{"anyOf":[{"$ref":"#/components/schemas/ShippingDimension"},{"type":"null"}]},"shippingHeight":{"anyOf":[{"$ref":"#/components/schemas/ShippingDimension"},{"type":"null"}]},"shippingWeight":{"anyOf":[{"$ref":"#/components/schemas/ShippingWeight"},{"type":"null"}]},"size":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Size"},"sizeSystem":{"anyOf":[{"$ref":"#/components/schemas/SizeSystem"},{"type":"null"}]},"pause":{"anyOf":[{"$ref":"#/components/schemas/Pause"},{"type":"null"}]}},"type":"object","title":"Attributes"},"Availability":{"type":"string","enum":["backorder","download","in_stock","out_of_stock","preorder"],"title":"Availability"},"Body_trigger_local_offer_feed_run_and_upload_shops_local_offer_feeds__feed_id__upload_post":{"properties":{"feed_file":{"anyOf":[{"type":"string","format":"binary"},{"type":"null"}],"title":"Feed File"}},"type":"object","title":"Body_trigger_local_offer_feed_run_and_upload_shops_local_offer_feeds__feed_id__upload_post"},"Body_trigger_offer_feed_run_and_upload_shops_local_shop_feeds__feed_id__upload_post":{"properties":{"feed_file":{"anyOf":[{"type":"string","format":"binary"},{"type":"null"}],"title":"Feed File"}},"type":"object","title":"Body_trigger_offer_feed_run_and_upload_shops_local_shop_feeds__feed_id__upload_post"},"Body_trigger_offer_feed_run_and_upload_shops_offer_feeds__feed_id__upload_post":{"properties":{"feed_file":{"anyOf":[{"type":"string","format":"binary"},{"type":"null"}],"title":"Feed File"}},"type":"object","title":"Body_trigger_offer_feed_run_and_upload_shops_offer_feeds__feed_id__upload_post"},"Body_trigger_product_feed_run_for_brand_and_upload_brands_product_feeds__feed_id__upload_post":{"properties":{"feed_file":{"anyOf":[{"type":"string","format":"binary"},{"type":"null"}],"title":"Feed File"}},"type":"object","title":"Body_trigger_product_feed_run_for_brand_and_upload_brands_product_feeds__feed_id__upload_post"},"Body_trigger_promotion_feed_run_and_upload_shops_promotion_feeds__feed_id__upload_post":{"properties":{"feed_file":{"anyOf":[{"type":"string","format":"binary"},{"type":"null"}],"title":"Feed File"}},"type":"object","title":"Body_trigger_promotion_feed_run_and_upload_shops_promotion_feeds__feed_id__upload_post"},"Channel":{"type":"string","enum":["channel_unspecified","online_products","local_products"],"title":"Channel"},"Condition":{"type":"string","enum":["almost new","damaged packaging","demo","new","refurbished","used"],"title":"Condition"},"ConditionGrade":{"type":"string","enum":["a","b","c","d","e","f"],"title":"ConditionGrade"},"CustomAttribute":{"properties":{"name":{"type":"string","title":"Name"},"value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Value"},"groupValues":{"anyOf":[{"items":{"$ref":"#/components/schemas/CustomAttribute"},"type":"array"},{"type":"null"}],"title":"Groupvalues"}},"type":"object","required":["name","value"],"title":"CustomAttribute"},"DeliveryType":{"type":"string","enum":["home","in_store_pickup","mailbox","package_locker","service_point"],"title":"DeliveryType"},"DimensionUnit":{"type":"string","enum":["cm","in"],"title":"DimensionUnit"},"DynamicHealthChecksModel":{"properties":{},"additionalProperties":true,"type":"object","title":"DynamicHealthChecksModel","description":"This model is used to dynamically validate the health check components\nexample of usege:\ndynamic_health_checks = DynamicHealthChecksModel(\n    postgres=[\n        HealthCheckComponent(...),\n        HealthCheckComponent(...),\n    ],\n    kafka=[\n        HealthCheckComponent(...),\n    ],\n)"},"EnergyEfficiencyClass":{"type":"string","enum":["a","a+","a++","a+++","b","c","d","e","f","g"],"title":"EnergyEfficiencyClass"},"ErrorCode":{"type":"string","enum":["REQUEST_401_UNAUTHORIZED","REQUEST_403_FORBIDDEN","MODEL_NOT_FOUND","FEED_URL_ALREADY_EXISTS","SHOP_HAVE_ACTIVE_LEGACY_SCRAPER","SHOP_HAVE_ACTIVE_LEGACY_FEED","FEED_OWNER_HAVE_PENDING_ACTIONS","FEED_OWNER_HAS_TOO_MANY_SCHEDULED_RUNS","PUBLISHER_CLIENT_ERROR","UNEXPECTED_ERROR","UNABLE_TO_CHANGE_FEED_TYPE","LEGACY_SHOP_CANNOT_BE_ENABLED","UNSUPPORTED_FEED_TYPE","UNSUPPORTED_INGESTION_RUN_FOR_LEGACY_FEED","CLIENT_NOT_FOUND","GHOST_OFFERS_REMOVE_MISSING_COMPLETED_RUN","WITH_DIFF_IF_SUPPORTED_WITHOUT_PURGE_ALL","GHOST_OFFERS_LEGACY_FEED_NOT_SUPPORTED","GHOST_OFFERS_MISSING_FEEDS","SHOP_DOES_NOT_EXIST","CREDENTIALS_IN_URL_NOT_ALLOWED","LEGACY_FEED_AUTH_SETTINGS_NOT_ALLOWED","INACTIVE_SHOP","FILE_UPLOAD_FAILED","MULTIPLE_FILE_IN_ARCHIVE_NOT_ALLOWED","UPLOAD_FEED_FILE_ABOVE_ALLOWED_SIZE","UPLOAD_FILE_SIZE_NOT_FOUND","ZIP_FILE_DECOMPRESSION_ERROR","UNSUPPORTED_COMPRESSION_ERROR","ALL_PREVIOUS_RUNS_FAILED","UNEXPECTED_DELTA_FEED_INTEGRATION_ERROR","DELTA_FEED_INGESTION_SERVICE_ERROR","VALIDATION_NOT_SUPPORTED_FOR_DELTA_FEED","NEXT_FEED_NOT_FOUND","FEED_HAS_BEEN_ALREADY_PROCESSED","RUNS_FOR_GIVEN_FEED_NOT_FOUND","FEED_FILE_NOT_EXIST_IN_STORAGE","INVALID_DATE_RANGE","PENDING_ENTITY_OWNER_REMOVAL","DELTA_FEED_TYPE_NOT_SUPPORTED_FOR_NO_DETLA_SHOP_PARSERS","MISSING_DELTA_FEED_TYPE_OR_DELTA_SHOP_TYPE_WHEN_PARSER_IS_AMAZON","MISSING_DELTA_FEED_TYPE_WHEN_PARSER_IS_EBAY","STANDARD_FEED_TYPE_NOT_SUPPORTED_FOR_AMAZON_EBAY_PARSERS","RUN_ALREADY_COMPLETED","UNSUPPORTED_FEED_AUTH","FEED_PUSH_DOES_NOT_HAVE_FILE_UPLOADED","UNABLE_TO_FIND_BASE_DELTA_FEED","UNSUPPORTED_FEED_PROTOCOL_TO_DOWNLOAD","DOWNLOAD_SERVER_ERROR","DOWNLOAD_SERVER_TIMEOUT_ERROR","ETAG_NOT_SUPPORTED_FOR_DELTA_FEED","UPLOAD_ONLY_ONE_FILE_ALLOWED","FEED_FILE_FORM_FIELD_REQUIRED","UNSUPPORTED_OPTION_FOR_FEED_INGESTION","SCRAPER_FOR_SHOP_ALREADY_EXISTS"],"title":"ErrorCode","description":"A Feed API specific unique error code <dl><dt><strong>REQUEST_401_UNAUTHORIZED</strong></dt><dd>Could not validate client credentials</dd></dl>\n<dl><dt><strong>REQUEST_403_FORBIDDEN</strong></dt><dd>You don't have permissions to access this resource</dd></dl>\n<dl><dt><strong>MODEL_NOT_FOUND</strong></dt><dd>{model_name} not found</dd></dl>\n<dl><dt><strong>FEED_URL_ALREADY_EXISTS</strong></dt><dd>Feed with provided url already exists</dd></dl>\n<dl><dt><strong>SHOP_HAVE_ACTIVE_LEGACY_SCRAPER</strong></dt><dd>unable to add new feeds to a shop which have active legacy scraper, please contact CX or B2B Ingestion team</dd></dl>\n<dl><dt><strong>SHOP_HAVE_ACTIVE_LEGACY_FEED</strong></dt><dd>unable to add new feeds to a shop which have active legacy feed, please contact CX or B2B Ingestion team</dd></dl>\n<dl><dt><strong>FEED_OWNER_HAVE_PENDING_ACTIONS</strong></dt><dd>There's already a pending task for one of your feeds. Only one pending action is allowed, please wait for it to complete and try again.</dd></dl>\n<dl><dt><strong>FEED_OWNER_HAS_TOO_MANY_SCHEDULED_RUNS</strong></dt><dd>Too many scheduled runs for this shop/brand, remove scheduled runs or wait for them to finish.</dd></dl>\n<dl><dt><strong>PUBLISHER_CLIENT_ERROR</strong></dt><dd>cannot trigger run due to error from publisher error (Kafka), try again later</dd></dl>\n<dl><dt><strong>UNEXPECTED_ERROR</strong></dt><dd>unexpected error occurred</dd></dl>\n<dl><dt><strong>UNABLE_TO_CHANGE_FEED_TYPE</strong></dt><dd>Unable to change feed type</dd></dl>\n<dl><dt><strong>LEGACY_SHOP_CANNOT_BE_ENABLED</strong></dt><dd>FIS does not support legacy feeds so you cannot enable feed with legacy settings</dd></dl>\n<dl><dt><strong>UNSUPPORTED_FEED_TYPE</strong></dt><dd>Unable to trigger this feed type.</dd></dl>\n<dl><dt><strong>UNSUPPORTED_INGESTION_RUN_FOR_LEGACY_FEED</strong></dt><dd>Unable to trigger non-validation run for legacy feed.</dd></dl>\n<dl><dt><strong>CLIENT_NOT_FOUND</strong></dt><dd>Client with id {client_id} was not found</dd></dl>\n<dl><dt><strong>GHOST_OFFERS_REMOVE_MISSING_COMPLETED_RUN</strong></dt><dd>Triggering ghost offers removal is impossible without at least one ingestion run for feed connected to shop</dd></dl>\n<dl><dt><strong>WITH_DIFF_IF_SUPPORTED_WITHOUT_PURGE_ALL</strong></dt><dd>You cannot use `with_diff_if_supported` without `purge_all` flag enabled.</dd></dl>\n<dl><dt><strong>GHOST_OFFERS_LEGACY_FEED_NOT_SUPPORTED</strong></dt><dd>There is a risk of removing all offers for shop with legacy feed. Use `allow_empty_cache` to force run.</dd></dl>\n<dl><dt><strong>GHOST_OFFERS_MISSING_FEEDS</strong></dt><dd>Shop does not have and never had any feed. It's probably shop on legacy. Use `allow_empty_cache` to force run.</dd></dl>\n<dl><dt><strong>SHOP_DOES_NOT_EXIST</strong></dt><dd>Cannot perform operation, shop does not exists.</dd></dl>\n<dl><dt><strong>CREDENTIALS_IN_URL_NOT_ALLOWED</strong></dt><dd>Feed URL should not contain credentials. Please use auth_settings instead.</dd></dl>\n<dl><dt><strong>LEGACY_FEED_AUTH_SETTINGS_NOT_ALLOWED</strong></dt><dd>Legacy ingestion does not support auth_settings. Please add login credentials to URL instead</dd></dl>\n<dl><dt><strong>INACTIVE_SHOP</strong></dt><dd>Shop is inactive, cannot proceed with this operation</dd></dl>\n<dl><dt><strong>FILE_UPLOAD_FAILED</strong></dt><dd>Error uploading feed file</dd></dl>\n<dl><dt><strong>MULTIPLE_FILE_IN_ARCHIVE_NOT_ALLOWED</strong></dt><dd>Uploaded archive should contain a single feed file</dd></dl>\n<dl><dt><strong>UPLOAD_FEED_FILE_ABOVE_ALLOWED_SIZE</strong></dt><dd>Feed file cannot be bigger than 200MB</dd></dl>\n<dl><dt><strong>UPLOAD_FILE_SIZE_NOT_FOUND</strong></dt><dd>Uploaded file size not deteded, for 'multipart/form-data' please provide 'size' attribute, for 'application/octet-stream' please provide 'content-length' header</dd></dl>\n<dl><dt><strong>ZIP_FILE_DECOMPRESSION_ERROR</strong></dt><dd>Uploaded zip file cannot be decompressed</dd></dl>\n<dl><dt><strong>UNSUPPORTED_COMPRESSION_ERROR</strong></dt><dd>Use only compression specified in the endpoint documentation</dd></dl>\n<dl><dt><strong>ALL_PREVIOUS_RUNS_FAILED</strong></dt><dd>All previous runs failed, need manual fix</dd></dl>\n<dl><dt><strong>UNEXPECTED_DELTA_FEED_INTEGRATION_ERROR</strong></dt><dd>Unexpected error in delta feed integration</dd></dl>\n<dl><dt><strong>DELTA_FEED_INGESTION_SERVICE_ERROR</strong></dt><dd>Error in delta feed ingestion service</dd></dl>\n<dl><dt><strong>VALIDATION_NOT_SUPPORTED_FOR_DELTA_FEED</strong></dt><dd>Validation not supported for delta feed</dd></dl>\n<dl><dt><strong>NEXT_FEED_NOT_FOUND</strong></dt><dd>Next feed not found</dd></dl>\n<dl><dt><strong>FEED_HAS_BEEN_ALREADY_PROCESSED</strong></dt><dd>Feed has been already processed</dd></dl>\n<dl><dt><strong>RUNS_FOR_GIVEN_FEED_NOT_FOUND</strong></dt><dd>Runs for given feed not found</dd></dl>\n<dl><dt><strong>FEED_FILE_NOT_EXIST_IN_STORAGE</strong></dt><dd>Feed file does not exist in storage</dd></dl>\n<dl><dt><strong>INVALID_DATE_RANGE</strong></dt><dd>Invalid date range</dd></dl>\n<dl><dt><strong>PENDING_ENTITY_OWNER_REMOVAL</strong></dt><dd>Entity owner removal is pending, please wait for it to finish and try again</dd></dl>\n<dl><dt><strong>DELTA_FEED_TYPE_NOT_SUPPORTED_FOR_NO_DETLA_SHOP_PARSERS</strong></dt><dd>Delta feed type is not supported when parser is not Amazon or eBay or Rakuten</dd></dl>\n<dl><dt><strong>MISSING_DELTA_FEED_TYPE_OR_DELTA_SHOP_TYPE_WHEN_PARSER_IS_AMAZON</strong></dt><dd>delta_feed_type or shop_type is required when parser is Amazon</dd></dl>\n<dl><dt><strong>MISSING_DELTA_FEED_TYPE_WHEN_PARSER_IS_EBAY</strong></dt><dd>Missing delta_feed_type when parser is eBay</dd></dl>\n<dl><dt><strong>STANDARD_FEED_TYPE_NOT_SUPPORTED_FOR_AMAZON_EBAY_PARSERS</strong></dt><dd>Standard feed_type is not supported for Amazon ot eBay</dd></dl>\n<dl><dt><strong>RUN_ALREADY_COMPLETED</strong></dt><dd>Run has already been completed</dd></dl>\n<dl><dt><strong>UNSUPPORTED_FEED_AUTH</strong></dt><dd>Currently we're not supporting this type of feed authentication when downloading the feed.</dd></dl>\n<dl><dt><strong>FEED_PUSH_DOES_NOT_HAVE_FILE_UPLOADED</strong></dt><dd>Push feed does not have file uploaded yet, probably it was never triggered</dd></dl>\n<dl><dt><strong>UNABLE_TO_FIND_BASE_DELTA_FEED</strong></dt><dd>Unable to find base delta feed for the shop</dd></dl>\n<dl><dt><strong>UNSUPPORTED_FEED_PROTOCOL_TO_DOWNLOAD</strong></dt><dd>Unsupported protocol to download feed, only http(s) is supported</dd></dl>\n<dl><dt><strong>DOWNLOAD_SERVER_ERROR</strong></dt><dd>Server error while downloading feed: {message}</dd></dl>\n<dl><dt><strong>DOWNLOAD_SERVER_TIMEOUT_ERROR</strong></dt><dd>Server didn't respond in time while downloading feed</dd></dl>\n<dl><dt><strong>ETAG_NOT_SUPPORTED_FOR_DELTA_FEED</strong></dt><dd>ETag check for delta feeds is not supported</dd></dl>\n<dl><dt><strong>UPLOAD_ONLY_ONE_FILE_ALLOWED</strong></dt><dd>You can upload only one file per request</dd></dl>\n<dl><dt><strong>FEED_FILE_FORM_FIELD_REQUIRED</strong></dt><dd>Form field 'feed_file' is required</dd></dl>\n<dl><dt><strong>UNSUPPORTED_OPTION_FOR_FEED_INGESTION</strong></dt><dd>Unable to trigger ingestion run with max_entities_to_process option</dd></dl>\n<dl><dt><strong>SCRAPER_FOR_SHOP_ALREADY_EXISTS</strong></dt><dd>Scraper for shop already exists</dd></dl>"},"FeedEntityType":{"type":"string","enum":["offer","promotion","product","local_offer","local_shop"],"title":"FeedEntityType"},"FileUploadCompressionType":{"type":"string","enum":["zip"],"title":"FileUploadCompressionType"},"Gender":{"type":"string","enum":["female","male","unisex"],"title":"Gender"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthCheckModel":{"properties":{"status":{"$ref":"#/components/schemas/HealthStatus","description":"indicates whether the service status is acceptable or not"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version","description":"public version of the service"},"checks":{"$ref":"#/components/schemas/DynamicHealthChecksModel","description":"detailed health statuses of additional downstream systems and endpoints which can affect the overall health of the main API. Since each sub-component may be backed by several nodes with varying health statuses, these keys point to arrays of objects. In case of a single-node sub-component (or if presence of nodes is not relevant), a single-element array SHOULD be used as the value, for consistency."}},"type":"object","required":["status","version","checks"],"title":"HealthCheckModel","description":"HealthCheck response in rfc format.\n\n1. https://datatracker.ietf.org/doc/html/draft-inadarei-api-health-check"},"HealthStatus":{"type":"string","enum":["pass","fail"],"title":"HealthStatus","description":"Health status as defined in [rfc](https://datatracker.ietf.org/doc/html/draft-inadarei-api-health-check#section-3.1)\n\n<dl>\n\n<dt><strong>pass</strong></dt>\n<dd>healthy</dd>\n\n<dt><strong>fail</strong></dt>\n<dd>unhealthy</dd>\n\n<dt><strong>warn</strong></dt>\n<dd>healthy, with some concerns</dd>\n\n</dl>"},"Interval":{"properties":{"startTime":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Starttime"},"endTime":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Endtime"}},"type":"object","title":"Interval"},"OfferStateCount":{"properties":{"rejected":{"type":"integer","title":"Rejected"},"partially_accepted":{"type":"integer","title":"Partially Accepted"},"accepted":{"type":"integer","title":"Accepted"},"skipped":{"type":"integer","title":"Skipped"}},"type":"object","required":["rejected","partially_accepted","accepted","skipped"],"title":"OfferStateCount"},"Pause":{"type":"string","enum":["ads","all"],"title":"Pause"},"Price":{"properties":{"amountMicros":{"type":"integer","minimum":0.0,"title":"Amountmicros"},"currency":{"type":"string","enum":["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BOV","BRL","BSD","BTN","BWP","BYN","BZD","CAD","CDF","CHE","CHF","CHW","CLF","CLP","CNY","COP","COU","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MXV","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLE","SLL","SOS","SRD","SSP","STN","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","USN","UYI","UYU","UYW","UZS","VED","VES","VND","VUV","WST","XAF","XAG","XAU","XBA","XBB","XBC","XBD","XCD","XDR","XOF","XPD","XPF","XPT","XSU","XTS","XUA","XXX","YER","ZAR","ZMW","ZWL"],"maxLength":3,"minLength":3,"title":"Currency"}},"type":"object","required":["amountMicros","currency"],"title":"Price"},"ProductDetail":{"properties":{"sectionName":{"type":"string","maxLength":150,"title":"Sectionname"},"attributeName":{"type":"string","maxLength":150,"title":"Attributename"},"attributeValue":{"type":"string","maxLength":1000,"title":"Attributevalue"}},"type":"object","required":["sectionName","attributeName","attributeValue"],"title":"ProductDetail"},"ProductInput":{"properties":{"name":{"type":"string","title":"Name","description":"Identifier. The name of the product input."},"channel":{"$ref":"#/components/schemas/Channel","description":"Immutable. The channel of the product.","default":"online_products"},"offerId":{"type":"string","title":"Offerid","description":"Required. Immutable. Your unique identifier for the product."},"contentLanguage":{"type":"string","pattern":"^\\w{2}$","title":"Contentlanguage","description":"Required. Immutable. The two-letter ISO 639-1 language code for the product.","default":"en"},"feedLabel":{"type":"string","title":"Feedlabel","description":"Required. Immutable. The feed label for the product."},"attributes":{"anyOf":[{"$ref":"#/components/schemas/Attributes"},{"type":"null"}],"description":"Optional. A list of product attributes."},"customAttributes":{"anyOf":[{"items":{"$ref":"#/components/schemas/CustomAttribute"},"type":"array"},{"type":"null"}],"title":"Customattributes","description":"Optional. A list of custom (merchant-provided) attributes."},"versionNumber":{"anyOf":[{"type":"integer","exclusiveMinimum":0.0},{"type":"null"}],"title":"Versionnumber","description":"Optional. Represents the existing version (freshness) of the product, which can be used to preserve the right order when multiple updates are done at the same time"}},"type":"object","required":["name","offerId","feedLabel"],"title":"ProductInput"},"RealTimeIngestionResponseModel":{"properties":{"run":{"$ref":"#/components/schemas/src__http___ingest_api__models__shops__offers__RealTimeIngestionResponseModel__Run"}},"type":"object","required":["run"],"title":"RealTimeIngestionResponseModel"},"ResultCode":{"type":"string","enum":["skipped_same_etag"],"title":"ResultCode"},"RunMode":{"type":"string","enum":["validation","ingestion","ingestion_force_upsert"],"title":"RunMode","description":"Represents different run modes\n\n<dl>\n\n<dt><strong>validation</strong></dt>\n<dd>only validate</dd>\n\n<dt><strong>ingestion</strong></dt>\n<dd>run both validation and ingestion</dd>\n\n<dt><strong>ingestion_force_upsert</strong></dt>\n<dd>run both validation and ingestion but ingest all offers to ingress without checking the cache</dd>\n\n</dl>"},"RunModelWithUploadResponseBody":{"properties":{"url":{"type":"string","title":"Url"},"run":{"anyOf":[{"$ref":"#/components/schemas/src__entities__run__Run"},{"type":"null"}]}},"type":"object","required":["url","run"],"title":"RunModelWithUploadResponseBody"},"RunResult":{"type":"string","enum":["unknown","success","exception"],"title":"RunResult"},"RunState":{"type":"string","enum":["scheduled","running","completed"],"title":"RunState","description":"Represents different run stages:\n\n\n<dl>\n\n<dt><strong>scheduled</strong></dt>\n<dd>Run created but not started yet by FIS</dd>\n\n<dt><strong>running</strong></dt>\n<dd>FIS started processing this run</dd>\n\n<dt><strong>completed</strong></dt>\n<dd>FIS completed this run</dd>\n\n</dl>"},"Shipping":{"properties":{"price":{"$ref":"#/components/schemas/Price"},"country":{"type":"string","pattern":"^\\w{2}$","title":"Country"},"region":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Region"},"service":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Service"},"minHandlingTime":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Minhandlingtime"},"maxHandlingTime":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Maxhandlingtime"},"minTransitTime":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Mintransittime"},"maxTransitTime":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Maxtransittime"},"carrier":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Carrier"},"deliveryType":{"anyOf":[{"$ref":"#/components/schemas/DeliveryType"},{"type":"null"}]}},"type":"object","required":["price","country"],"title":"Shipping"},"ShippingDimension":{"properties":{"value":{"type":"number","exclusiveMinimum":0.0,"title":"Value"},"unit":{"$ref":"#/components/schemas/DimensionUnit"}},"type":"object","required":["value","unit"],"title":"ShippingDimension"},"ShippingWeight":{"properties":{"value":{"type":"number","exclusiveMinimum":0.0,"title":"Value"},"unit":{"$ref":"#/components/schemas/WeightUnit"}},"type":"object","required":["value","unit"],"title":"ShippingWeight"},"SizeSystem":{"type":"string","enum":["au","br","cn","de","eu","fr","it","jp","mex","uk","us"],"title":"SizeSystem"},"StatusModel":{"properties":{"status":{"type":"string","title":"Status","description":"Status of the server, always `ok`","default":"ok"},"revision":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Revision","description":"Revision of the application"}},"type":"object","required":["revision"],"title":"StatusModel"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WeightUnit":{"type":"string","enum":["g","kg","lb","oz"],"title":"WeightUnit"},"src__entities__run__Run":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"feed_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Feed Id"},"real_time_ingestion_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Real Time Ingestion Id"},"shop_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Shop Id"},"brand_service_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand Service Id"},"mode":{"$ref":"#/components/schemas/RunMode"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"state":{"$ref":"#/components/schemas/RunState"},"result":{"$ref":"#/components/schemas/RunResult"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"last_modified_at":{"type":"string","format":"date-time","title":"Last Modified At"},"start":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start"},"end":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End"},"exception_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exception Code"},"exception_details":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exception Details"},"is_internal_exception":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Internal Exception"},"agent_revision":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Revision"},"offer_state_count":{"anyOf":[{"$ref":"#/components/schemas/OfferStateCount"},{"type":"null"}]},"action_counts":{"anyOf":[{"$ref":"#/components/schemas/ActionCounts"},{"type":"null"}]},"result_code":{"anyOf":[{"$ref":"#/components/schemas/ResultCode"},{"type":"null"}]},"entity_type":{"$ref":"#/components/schemas/FeedEntityType"}},"type":"object","required":["id","feed_id","real_time_ingestion_id","shop_id","brand_service_id","mode","url","state","result","created_at","last_modified_at","start","end","exception_code","exception_details","is_internal_exception","agent_revision","offer_state_count","action_counts","result_code","entity_type"],"title":"Run"},"src__http___ingest_api__models__shops__offers__RealTimeIngestionResponseModel__Run":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"expected_completion_time":{"type":"string","format":"date-time","title":"Expected Completion Time"}},"type":"object","required":["id","created_at","expected_completion_time"],"title":"Run"}},"securitySchemes":{"OAuth2ClientCredentials":{"type":"oauth2","flows":{"clientCredentials":{"scopes":{},"tokenUrl":"https://auth.pj.nu/oauth2/token"}}}}}}