{
    "components": {
        "examples": {},
        "headers": {},
        "parameters": {},
        "requestBodies": {},
        "responses": {},
        "schemas": {
            "ApiKeyPayload": {
                "properties": {
                    "apiKey": {
                        "type": "string",
                        "description": "Make sure to store the key in a safe place.\nYou won't be able to see it again."
                    }
                },
                "required": [
                    "apiKey"
                ],
                "type": "object"
            },
            "GenerateApiKeyInput": {
                "properties": {
                    "username": {
                        "type": "string"
                    }
                },
                "required": [
                    "username"
                ],
                "type": "object"
            },
            "CreateProductPayload": {
                "properties": {
                    "status": {
                        "type": "string"
                    }
                },
                "required": [
                    "status"
                ],
                "type": "object"
            },
            "CreateProductInput": {
                "properties": {
                    "productIds": {
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "googleShoppingUrl": {
                        "type": "string"
                    },
                    "retailerUrls": {
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "ingestionId": {
                        "type": "string"
                    }
                },
                "type": "object"
            },
            "GoogleProductsPayload": {
                "properties": {
                    "status": {
                        "type": "string"
                    }
                },
                "required": [
                    "status"
                ],
                "type": "object"
            },
            "RawGoogleShoppingOffersDataV1": {
                "properties": {
                    "offers": {
                        "items": {
                            "properties": {
                                "price": {
                                    "type": "number",
                                    "format": "double"
                                },
                                "url": {
                                    "type": "string"
                                }
                            },
                            "required": [
                                "price",
                                "url"
                            ],
                            "type": "object"
                        },
                        "type": "array"
                    },
                    "description": {
                        "type": "string"
                    }
                },
                "required": [
                    "offers"
                ],
                "type": "object"
            },
            "GoogleProductsInput": {
                "properties": {
                    "productIds": {
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "data": {
                        "$ref": "#/components/schemas/RawGoogleShoppingOffersDataV1"
                    },
                    "shoppingId": {
                        "type": "string"
                    },
                    "ingestionID": {
                        "type": "string"
                    }
                },
                "required": [
                    "data",
                    "shoppingId"
                ],
                "type": "object"
            },
            "AddJobPayload": {
                "properties": {
                    "id": {
                        "type": "string"
                    }
                },
                "required": [
                    "id"
                ],
                "type": "object"
            },
            "JobKind": {
                "description": "All possible job types that this system processes. Prefer suffixing with a\nnumber, representing typed-data version.",
                "enum": [
                    "BULK_FETCH_LATEST_PAGE_1",
                    "QUEUE_PAGES_NEEDING_UPDATES_1",
                    "QUEUE_PRODUCTS_NEEDING_UPDATES_1",
                    "UPDATE_GOOGLE_SHOPPING_OFFERS_PRICE_1",
                    "FETCH_RETAILER_INFO_1",
                    "FETCH_GOOGLE_SHOPPING_INFO_1"
                ],
                "type": "string"
            },
            "AddJobInput": {
                "properties": {
                    "data": {},
                    "kind": {
                        "$ref": "#/components/schemas/JobKind"
                    }
                },
                "required": [
                    "data",
                    "kind"
                ],
                "type": "object"
            },
            "RawRetailerPayload": {
                "properties": {
                    "message": {
                        "type": "string"
                    },
                    "status": {
                        "type": "string",
                        "enum": [
                            "success",
                            "failure"
                        ]
                    }
                },
                "required": [
                    "status"
                ],
                "type": "object"
            },
            "RawRetailerDataV1": {
                "properties": {
                    "category": {
                        "type": "string"
                    },
                    "url": {
                        "type": "string"
                    },
                    "imageUrls": {
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "distributorSKU": {
                        "type": "string"
                    },
                    "distributor": {
                        "type": "string"
                    },
                    "isAvailable": {
                        "type": "boolean"
                    },
                    "price": {
                        "type": "number",
                        "format": "double"
                    },
                    "name": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "annotations": {
                        "type": "string"
                    },
                    "colorCode": {
                        "type": "string"
                    },
                    "dimensions": {
                        "type": "string"
                    },
                    "asin": {
                        "type": "string"
                    },
                    "id": {
                        "type": "string"
                    }
                },
                "required": [
                    "url",
                    "price"
                ],
                "type": "object"
            },
            "RawRetailerInput": {
                "properties": {
                    "data": {
                        "items": {
                            "$ref": "#/components/schemas/RawRetailerDataV1"
                        },
                        "type": "array"
                    },
                    "productIds": {
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "ingestionID": {
                        "type": "string"
                    }
                },
                "required": [
                    "data"
                ],
                "type": "object"
            }
        },
        "securitySchemes": {
            "basic": {
                "scheme": "basic",
                "type": "http"
            }
        }
    },
    "info": {
        "title": "Spoken API",
        "version": "0.1.0",
        "contact": {}
    },
    "openapi": "3.0.0",
    "paths": {
        "/api-keys": {
            "post": {
                "operationId": "GenerateApiKey",
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ApiKeyPayload"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "reason": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "reason"
                                    ],
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "reason": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "reason"
                                    ],
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "basic": [
                            "ADMIN"
                        ]
                    }
                ],
                "parameters": [],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/GenerateApiKeyInput"
                            }
                        }
                    }
                }
            }
        },
        "/api-keys/{username}": {
            "delete": {
                "operationId": "RevokeApiKey",
                "responses": {
                    "204": {
                        "description": ""
                    },
                    "404": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "reason": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "reason"
                                    ],
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "reason": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "reason"
                                    ],
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "basic": [
                            "ADMIN"
                        ]
                    }
                ],
                "parameters": [
                    {
                        "in": "path",
                        "name": "username",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/aggregate-products": {
            "post": {
                "operationId": "CreateAggregateProduct",
                "responses": {
                    "201": {
                        "description": "Created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/CreateProductPayload"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "reason": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "reason"
                                    ],
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "basic": [
                            "ADMIN"
                        ]
                    }
                ],
                "parameters": [],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CreateProductInput"
                            }
                        }
                    }
                }
            }
        },
        "/aggregate-products/batch": {
            "post": {
                "operationId": "BatchCreateAggregateProducts",
                "responses": {
                    "201": {
                        "description": "Created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "items": {
                                        "$ref": "#/components/schemas/CreateProductPayload"
                                    },
                                    "type": "array"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "reasons": {
                                            "items": {
                                                "type": "string"
                                            },
                                            "type": "array"
                                        }
                                    },
                                    "required": [
                                        "reasons"
                                    ],
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "basic": [
                            "ADMIN"
                        ]
                    }
                ],
                "parameters": [],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "items": {
                                    "$ref": "#/components/schemas/CreateProductInput"
                                },
                                "type": "array"
                            }
                        }
                    }
                }
            }
        },
        "/google-products": {
            "post": {
                "operationId": "GoogleProducts",
                "responses": {
                    "201": {
                        "description": "Created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/GoogleProductsPayload"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "basic": [
                            "ADMIN"
                        ]
                    }
                ],
                "parameters": [],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/GoogleProductsInput"
                            }
                        }
                    }
                }
            }
        },
        "/jobqueue": {
            "post": {
                "operationId": "JobQueues",
                "responses": {
                    "200": {
                        "description": "Ok",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/AddJobPayload"
                                }
                            }
                        }
                    }
                },
                "security": [],
                "parameters": [],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/AddJobInput"
                            }
                        }
                    }
                }
            }
        },
        "/raw-retailers": {
            "post": {
                "operationId": "RawRetailers",
                "responses": {
                    "201": {
                        "description": "Created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RawRetailerPayload"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "reason": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "reason"
                                    ],
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "reason": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "reason"
                                    ],
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "basic": [
                            "ADMIN"
                        ]
                    }
                ],
                "parameters": [],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/RawRetailerInput"
                            }
                        }
                    }
                }
            }
        }
    },
    "servers": [
        {
            "url": "/v3"
        }
    ]
}
