---
openapi: "3.0.0"
info:
  title: "markee v5"
  version: "5.0"
  contact:
    email: "tech@excelsea.de"
  description: "Version 5 of th Markee api.\nEverything connected to contracts, licences,\
    \ products, subscriptions etc. will be refactored in bundled in this api version."
servers:
- url: "https://qa-api.mark.ee/api"
  description: "LIVE"
paths:
  /v5/listing/duplicate/{duplicateId}:
    parameters:
    - schema:
        type: "integer"
        format: "int64"
      name: "duplicateId"
      in: "path"
      required: true
      description: "unique duplicate id"
    put:
      summary: "Execute Action on Duplicate"
      operationId: "execute-duplicate-action"
      responses:
        "200":
          description: "OK"
      description: "Execute a certain action against a potential duplicate of a listing\
        \ publisher.\nYou can use the api call GET /v5/listing/{contextType}/{contextIds}/duplicate\
        \ to get a list of those.\n\nActions are:\n- SUPPRESS: We let the listing\
        \ publisher know, the duplicate shall not get shown anymore on their platform\n\
        - IGNORE: The duplicate warning will be ignored. Use this action if you are\
        \ sure the shown potential duplicate is not related to the location of yours.\n\
        \nNote!\nThere must be a product purchased which has the functionalitiy \"\
        ListingDuplicateManagement\"."
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DuplicateAction"
      tags:
      - "listing"
  /v5/social/post/comment/{id}:
    parameters:
    - schema:
        type: "integer"
        format: "int64"
      name: "id"
      in: "path"
      required: true
    delete:
      summary: "DELETE Social Post Comment"
      operationId: "delete-social-post-comment"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "./markee-api.yaml#/components/schemas/Success"
      description: "Method to delete Comment"
      parameters: []
      tags:
      - "posts"
  /v5/user/profile:
    get:
      summary: "GET Your User Profile"
      tags:
      - "user"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserAccount"
      operationId: "get-user-profile"
      description: "returns the profile of the logged in user"
    parameters: []
  /v5/social/post/comment:
    post:
      summary: "POST Social Post Comment"
      operationId: "post-social-post-comment"
      responses:
        "200":
          description: "OK"
          headers: {}
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListResultSuccess"
      tags:
      - "posts"
      description: "Create a new comment for a post"
      parameters:
      - schema:
          type: "integer"
          format: "int64"
        in: "query"
        name: "id"
        required: true
        description: "id of post"
      - schema:
          type: "string"
        in: "query"
        name: "locationIds"
        description: "id of location"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "./markee-api.yaml#/components/schemas/SocialCommentsInsert"
    get:
      summary: "GET Social Post Comment"
      operationId: "get-social-post-comment"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "./markee-api.yaml#/components/schemas/ListResultCommentsSocial"
      description: "Method to get Social comments "
      parameters:
      - schema:
          type: "integer"
          format: "int64"
        in: "query"
        name: "postId"
        description: "id of post"
        required: true
      - schema:
          type: "string"
          format: "int64"
        in: "query"
        name: "locationIds"
        description: "id of location"
      - schema:
          type: "integer"
        in: "query"
        name: "take"
        description: "take a given number of entries"
      - schema:
          type: "integer"
        in: "query"
        name: "skip"
        description: "skip entries"
      - schema:
          type: "string"
          enum:
          - "postId"
          - "socialPortal"
          - "canDelete"
          - "dateTime"
          - "status"
        in: "query"
        name: "sortColumn"
        description: "name of the column which gets sorted, need to be one of the\
          \ fields of the model schema of the response"
      - schema:
          type: "string"
        in: "query"
        name: "sortDirection"
        description: "asc or desc for ascending or descending"
      tags:
      - "posts"
  /v5/recruitment/job-offers/unpublish:
    post:
      tags:
      - "job-offer"
      summary: "Unpublish Job Offers"
      description: "Unpublishes one or more job offers, making them no longer visible\
        \ to job seekers. The job offers will be moved back to a draft state and can\
        \ be published again later."
      operationId: "unPublishJobOffers"
      parameters:
      - name: "language"
        in: "query"
        description: "Language for localization, default is 'de'"
        required: false
        schema:
          type: "string"
          default: "de"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UnpublishJobOfferRequest_Post"
        required: true
      responses:
        "200":
          description: "OK"
          content:
            '*/*':
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/JobOfferDto_Get"
  /v5/presence/{productId}/website/configuration:
    parameters:
    - schema:
        type: "integer"
        format: "int64"
      name: "productId"
      in: "path"
      required: true
      description: "product id of product that contains website "
    get:
      summary: "Get configuration for website products"
      tags:
      - "website"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebsiteConfiguration"
      operationId: "get-website-product-configuration"
      description: "Use that endpoint to gain insights to the configuration of your\
        \ website product.\nWith it you can see the pre configured domain type and\
        \ the available templates with all of their generic settings you may need\
        \ to define via the corresponding api calls."
  /v5/recruitment/job-offers/{jobOfferId}/duplicate:
    post:
      tags:
      - "job-offer"
      summary: "Duplicate Job Offer"
      description: "Duplicates an existing job offer by its ID. The duplicated job\
        \ offer will be created in a draft state with the same information as the\
        \ original. The response includes the details of the newly created duplicate\
        \ job offer."
      operationId: "duplicateJobOffer"
      parameters:
      - name: "jobOfferId"
        in: "path"
        description: "Job Offer ID of the job offer to duplicate"
        required: true
        schema:
          type: "integer"
          format: "int32"
      responses:
        "200":
          description: "OK"
          content:
            '*/*':
              schema:
                $ref: "#/components/schemas/JobOfferDto_Get"
  /v5/recruitment/benefits:
    get:
      tags:
      - "recruitment-meta"
      summary: "Get Benefits"
      description: "Returns a list of translated benefits for the specified language."
      operationId: "getBenefitTypesDto"
      parameters:
      - name: "language"
        in: "query"
        required: false
        schema:
          type: "string"
          default: "de"
      responses:
        "200":
          description: "List of Benefits"
          content:
            '*/*':
              schema:
                $ref: "#/components/schemas/BenefitTypeDto"
  /v5/contract/{contractId}/purchase:
    description: "if your customer buys one or more products from you these products\n\
      will be assigned to his contract. these assigned products are\nmanaged at this\
      \ path.\n"
    parameters:
    - name: "contractId"
      description: "the id of the contract"
      in: "path"
      schema:
        type: "integer"
        format: "int64"
      required: true
    post:
      description: "Use this method to trigger a payment of a product, defined by\
        \ the product id.\nYou need also pass the payment provider config you want\
        \ to use (need to be valid for the contract of the product).\n\nDepending\
        \ on this you may need to send data as key values the payment provider needs.\n\
        If they are not available, the API is rejecting your requet.\n\nFor the provider\
        \ config for Stripe this is:\n* stripeCustomerId or customerId: customer id\
        \ in stripe, you get this information for your user on the user profile call\
        \ GET /v5/user/profile\n* paymentMethodId: you need to select this one via\
        \ Stripe directly in your Frontend\n"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProductPurchase"
      summary: "PURCHASE A Product"
      operationId: "purchase-product"
      tags:
      - "product"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessPurchase"
  /v5/contract/{contractId}/product:
    description: "get the full list of products offered for you to buy\n"
    parameters:
    - schema:
        type: "integer"
        format: "int64"
      name: "contractId"
      in: "path"
      required: true
      description: "id of your contract"
    get:
      description: "Get all available products for a company contract.\nThe response\
        \ contains also all current subscriptions of this products to spaces, their\
        \ statuses and all available actions you may execute.\nIt provides also a\
        \ hint which spaces in your company could get subscribed to a specific product.\n\
        Due to dependency configurations of products (noneOf, allOf, oneOf) not all\
        \ products may have bookable spaces. If you want to hide those, set onlyBookableProducts\
        \ to true.\nYou can also show only products that have at least one subscription\
        \ by setting onlyAssignedProducts to true."
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListResultProduct"
      operationId: "get-product-list"
      summary: "GET Available Products for Company Contract"
      tags:
      - "product"
      parameters:
      - schema:
          type: "string"
          format: "int64"
        in: "query"
        name: "baseProductsTypes"
        description: "filter the result by this comma separated list of base product\
          \ ids you get from the contract detail object"
        style: "form"
      - schema:
          type: "boolean"
        in: "query"
        name: "onlyAssignedProducts"
        description: "returns only the product that are assigned directly to the company\
          \ contract, default is false"
      - schema:
          type: "string"
          format: "int64"
        in: "query"
        name: "catalogIds"
        description: "filter the result by this comma separated list of catalog ids"
        style: "form"
      - schema:
          type: "boolean"
        in: "query"
        name: "onlyBookableProducts"
        description: "hides all products that do not have at least one bookable space,\
          \ default is false"
  /v5/listing/{contextType}/{contextIds}/duplicate:
    parameters:
    - schema:
        type: "string"
        enum:
        - "Company"
        - "Location"
        - "Subscription"
      name: "contextType"
      in: "path"
      required: true
      description: "context of the ids you're passing"
    - schema:
        type: "string"
      name: "contextIds"
      in: "path"
      required: true
      description: "comma separated list of ids, related to their contextType"
    get:
      summary: "Get Potential Listing Publisher Duplicates"
      tags:
      - "listing"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "./markee-api.yaml#/components/schemas/ListResultDuplicates"
      operationId: "get-listing-duplicates"
      description: "Listing Publisher offer potential duplicates of your location\
        \ on their platform.\n\nUse the corresponding PUT /v5/listing/duplicate/{duplicateId}\
        \ endpoint to execute a behaviour with these duplicate warnings.\n\n\nNote!\n\
        There must be a product purchased which has the functionalitiy \"ListingDuplicateManagement\"\
        ."
      parameters:
      - schema:
          type: "integer"
        in: "query"
        name: "skip"
        description: "skip n entries"
      - schema:
          type: "integer"
        in: "query"
        name: "take"
        description: "take n entries"
      - schema:
          type: "string"
          enum:
          - "POSSIBLE_DUPLICATE"
          - "SUPPRESSION_REQUESTED"
          - "SUPPRESSED"
          - "UNAVAILABLE"
          - "DELETED"
        in: "query"
        description: "comma separated list of the status of the duplices"
        name: "duplicateStatus"
  /v5/contract/product/{productId}/trial-eligibility:
    parameters:
    - schema:
        type: "integer"
        format: "int64"
      name: "productId"
      in: "path"
      required: true
    - schema:
        type: "string"
      name: "locationIds"
      deprecated: true
      in: "query"
      description: "comma separated location ids to check their elegibility for a\
        \ free trial"
    - schema:
        type: "string"
      name: "spaceIds"
      in: "query"
      description: "comma separated space ids to check their elegibility for a free\
        \ trial"
    get:
      description: "Check if spaces(s) can book a Free trial for the specified product."
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListTrialEligibility"
      operationId: "get-product-trial-eligibility"
      summary: "GET Eligibility for a Free Trial of the specified locations"
      tags:
      - "product"
  /v5/social/post:
    get:
      summary: "GET Social Post List"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "./markee-api.yaml#/components/schemas/ListResultSocial"
      operationId: "get-post"
      description: "Method to get a list of social posts depending on the context,\
        \ if they are schedueled or on the social portal we want. \n\nNote!\nThere\
        \ must be a product purchased which has the functionalitiy \"SocialPosts\"\
        ."
      parameters:
      - schema:
          type: "string"
          format: "int64"
        in: "query"
        name: "contextIds"
        description: "id of location or company"
        required: true
      - schema:
          type: "integer"
        in: "query"
        name: "take"
        description: "take a given number of entries"
      - schema:
          type: "integer"
        in: "query"
        description: "skip entries"
        name: "skip"
      - schema:
          type: "string"
          enum:
          - "postId"
          - "socialPortal"
          - "canDelete"
          - "dateTime"
          - "status"
        in: "query"
        name: "sortColumn"
        description: "name of the column which gets sorted, need to be one of the\
          \ fields of the model schema of the response"
      - schema:
          type: "string"
          enum:
          - "asc"
          - "desc"
        in: "query"
        name: "sortDirection"
        description: "asc or desc for ascending or descending"
      - schema:
          type: "string"
          enum:
          - "Location"
          - "Company"
        in: "query"
        name: "contextType"
        required: true
        description: "context type (location,company)"
      - schema:
          type: "boolean"
        in: "query"
        name: "isPlanned"
        description: "take the feature, past or all date of post"
      - schema:
          type: "string"
        in: "query"
        name: "socialPortal"
        description: "social portal names as a comma separated list"
      tags:
      - "posts"
    post:
      summary: "POST Social Post"
      operationId: "post-post"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListResultSuccess"
      description: "Method to Post in social portals depending on the context or on\
        \ the social portal we want. \nPutting the date in the future will make it\
        \ a scheduled post.\n\nNote!\n  1. There must be a product purchased which\
        \ has the functionalitiy \"SocialPosts\".\n  2. is possible to add up to 10\
        \ image's only for Facebook social portal, for the other social portal if\
        \ more than 1 is provided\n      we pick the first from the array"
      parameters:
      - schema:
          type: "string"
          format: "int64"
        in: "query"
        name: "contextIds"
        required: true
        description: "id of the locations or the company"
      - schema:
          type: "string"
          enum:
          - "Location"
          - "Company"
        in: "query"
        name: "contextType"
        description: "context type (location,company)"
        required: true
      - schema:
          type: "string"
        in: "query"
        name: "socialPortal"
        description: "context of source type"
        required: true
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: "./markee-api.yaml#/components/schemas/SocialPostInsert"
          application/json:
            schema:
              $ref: "./markee-api.yaml#/components/schemas/SocialPostInsert"
        description: ""
      tags:
      - "posts"
    parameters: []
  /v5/contract/{contractId}/invoices/{invoiceId}:
    get:
      summary: "GET A Single Invoice"
      tags:
      - "billing"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Invoice"
      operationId: "get-v5-invoice"
      parameters: []
      description: "get the biling invoice of your Contract invoice"
    parameters:
    - schema:
        type: "integer"
      name: "contractId"
      in: "path"
      required: true
      description: "contractId of your company"
    - schema:
        type: "integer"
      name: "invoiceId"
      in: "path"
      required: true
      description: "invoiceId of your contract"
  /v5/billing/{contractId}:
    parameters:
    - schema:
        type: "integer"
      name: "contractId"
      in: "path"
      required: true
    get:
      summary: "GET Contract Billing History"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListResultInvoice"
      operationId: "get-v5-contract-id-billing"
      description: "Get the history of all Billing History of this contract\nPath\
        \ Params:\nid: company contractId\n\n//TODO Marjol put documentation of  path\
        \ parameter to description of path parameter ...\n//TODO Marjol rename the\
        \ path to /v5/contract/{contractId}/invoices"
      tags:
      - "billing"
      parameters:
      - schema:
          type: "integer"
        in: "query"
        name: "skip"
        description: "skip entries"
      - schema:
          type: "integer"
        in: "query"
        description: "take a given number of entries"
        name: "take"
  /v5/company/{companyId}/location:
    parameters:
    - schema:
        type: "integer"
        format: "int64"
      name: "companyId"
      in: "path"
      required: true
      description: "id of the parental company you want to create the location in"
    post:
      summary: "CREATE Location"
      operationId: "post-v5-location"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Success"
      tags:
      - "location"
      description: "Method to create a location by defining all mandatory fields.\n\
        If you want to insert some additional, media or social media fields, use the\
        \ corresponding update methods afterwards.\n\nIf a self service user wants\
        \ to create a new location for her/his company, pinVerification and claimId\
        \ need to be set.\nThose need to be triggerd by the /company/claim endpoint\
        \ via the location main phone number.\n"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LocationInsert"
  /v5/company/{companyId}/listing/portal:
    parameters:
    - schema:
        type: "integer"
        format: "int64"
      name: "companyId"
      in: "path"
      required: true
      description: "company that is having listing products included"
    get:
      summary: "GET Listing Portals"
      tags:
      - "listing"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListResultPortal"
      operationId: "get-listing-portals"
      parameters:
      - schema:
          type: "string"
        in: "query"
        name: "locationIds"
        description: "comma separated list of location ids"
      description: "This method provides an overview of listing portals for a company.\n\
        You can restrict the data by setting location ids.\n\nTo be able to get data\
        \ you first need to purchase/assign listing products to a contract of this\
        \ company."
  /v5/advertisement/{productId}/adspace/configuration:
    parameters:
    - schema:
        type: "integer"
        format: "int64"
      name: "productId"
      in: "path"
      required: true
      description: "product id of product that contains advertisement banner"
    get:
      summary: "Get configuration for advertisement products"
      tags:
      - "advertisement"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListResultAdvertisementFields"
      operationId: "get-advertisement-product-adspace-configuration"
      description: "Use this endpoint to gain insights to the configuration of your\
        \ advertisement product.\nWith it you can see the available adspace types\
        \ that you can target, with all of their settings and constraints.      "
  /v5/recruitment/applications:
    get:
      tags:
      - "applications"
      operationId: "getApplications"
      parameters:
      - name: "jobOfferId"
        in: "query"
        required: true
        schema:
          type: "string"
      - name: "status"
        in: "query"
        required: false
        schema:
          type: "string"
          enum:
          - "RECENTLY_ADDED"
          - "IN_PROCESS"
          - "REJECTED"
          - "HIRED"
      - name: "name"
        in: "query"
        required: false
        schema:
          type: "string"
      - name: "size"
        in: "query"
        required: false
        schema:
          type: "integer"
          format: "int32"
          default: 20
      - name: "page"
        in: "query"
        required: false
        schema:
          type: "integer"
          format: "int32"
          default: 0
      - name: "sortKey"
        in: "query"
        required: false
        schema:
          type: "string"
          enum:
          - "fullName"
          - "email"
          - "status"
          - "daysInStatus"
          - "createdAt"
          - "updatedAt"
          - "channel"
      - name: "sortOrder"
        in: "query"
        required: false
        schema:
          type: "string"
          enum:
          - "ASC"
          - "DESC"
      responses:
        "200":
          description: "OK"
          content:
            '*/*':
              schema:
                $ref: "#/components/schemas/ApplicationsWithCountDto"
  /v5/social/post/cancel/{id}:
    parameters:
    - schema:
        type: "integer"
        format: "int64"
      name: "id"
      in: "path"
      required: true
      description: "id of the post"
    put:
      summary: "CANCEL Social Post"
      operationId: "cancel-social-post"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListResultSuccess"
      tags:
      - "posts"
      description: "Method to cancel posting failed social posts\nProviding a list\
        \ of locations will only cancel the post for the locations in that list (in\
        \ case it failed in that location).\nIf no list is provided, the cancellation\
        \ will apply to all locations where the post failed."
      parameters:
      - schema:
          type: "string"
          format: "int64"
        in: "query"
        name: "locationIds"
        required: false
        description: "id of the locations, send this when only some of the failed\
          \ post_locations should be cancelled"
  /v5/contract/{contractId}/subscription:
    parameters:
    - schema:
        type: "integer"
        format: "int64"
      name: "contractId"
      in: "path"
      required: true
      description: "unique contract id"
    - schema:
        type: "string"
        format: "int64"
      in: "query"
      name: "baseProductTypes"
      description: "filter the result by this comma separated list of base product\
        \ ids or names you get from the contract detail object"
      style: "form"
    - schema:
        type: "string"
        format: "int64"
      in: "query"
      name: "productIds"
      description: "filter the result by this comma separated list of product ids"
      style: "form"
    - schema:
        type: "string"
        format: "int64"
      in: "query"
      name: "catalogIds"
      description: "filter the result by this comma separated list of catalog ids"
      style: "form"
    get:
      summary: "GET Subscriptions"
      operationId: "get-subscriptions"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListResultSubscription"
      description: "Fetch all the subscription that do belong to a (company) contract."
      tags:
      - "product"
  /v5/{contentType}/{contentId}/mainphone:
    parameters:
    - schema:
        type: "string"
        enum:
        - "Location"
      name: "contentType"
      in: "path"
      required: true
      description: "content you want to add the main phone number, for now only Location\
        \ possible"
    - schema:
        type: "integer"
      name: "contentId"
      in: "path"
      required: true
      description: "unique id of the content"
    post:
      summary: "CREATE Main Phone"
      operationId: "post-v5-mainphone"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Success"
      tags:
      - "phone"
      description: "add main phone to   location\nPath Params:\nid: id of the location"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "./markee-api.yaml#/components/schemas/MainPhoneInsert"
  /v5/company/{id}:
    parameters:
    - schema:
        type: "integer"
        format: "int64"
      name: "id"
      in: "path"
      required: true
      description: "Company Id"
    delete:
      summary: "Delete Company"
      operationId: "delete-v5-company-id"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Success"
      tags:
      - "company"
      description: "A delete method to remove a company and all of it's locations,\
        \ if there are no active paid producs. \n\nNote: an exception are the free\
        \ products that will be automatically terminated by deleting the company"
  /v5/recruitment/applications/{id}/status:
    put:
      tags:
      - "applications"
      operationId: "patchApplicationStatus"
      parameters:
      - name: "jobOfferId"
        in: "query"
        required: true
        schema:
          type: "string"
      - name: "id"
        in: "path"
        required: true
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ApplicationStatusPatchDto"
        required: true
      responses:
        "200":
          description: "OK"
          content:
            '*/*':
              schema:
                $ref: "#/components/schemas/ApplicationDto"
  /v5/recruitment/employers/{spaceId}/available-slots:
    get:
      tags:
      - "employer"
      operationId: "getAvailableJobSlots"
      parameters:
      - name: "spaceId"
        in: "path"
        required: true
        schema:
          type: "integer"
          format: "int32"
      responses:
        "200":
          description: "OK"
          content:
            '*/*':
              schema:
                $ref: "#/components/schemas/AvailableJobSlotsDto"
      x-product-validation:
        functionality: "JobOfferPublishing"
  /v5/presence/{subscriptionId}/website:
    parameters:
    - schema:
        type: "integer"
        format: "int64"
      name: "subscriptionId"
      in: "path"
      required: true
      description: "subscription id of the ordered product sea is a part of"
    post:
      summary: "Set initial website data"
      operationId: "set-website-data"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Subscription"
      description: "Use that endpoint to define all initial data for a website subscription.\
        \ That action must be executed only once.\nAs soon as all mandatory data fields\
        \ are defined use the corresponding update methods to change them.\n\nIn the\
        \ response you get a subscription object returned.\nThe id of it you can use\
        \ in the v4 api for website update calls.\n"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WebsiteInit"
        description: ""
      tags:
      - "website"
  /v5/reviews/comments/{commentId}:
    parameters:
    - schema:
        type: "integer"
        format: "int64"
      name: "commentId"
      in: "path"
      required: true
      description: "unique comment id of a review"
    put:
      summary: "UPDATE A Comment Of A Review"
      operationId: "put-reviews-comments"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Success"
      description: "With this endpoint you can update specific comment of a review\
        \ by using the unique commentId.\n\n\nNote!\nThere must be a product assigned\
        \ (to the location of the review) which covers the functionalitiy for \"Review\
        \ Management\""
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "./markee-api.yaml#/components/schemas/SocialReviewCommentUpdate"
      tags:
      - "review"
  /v5/advertisement/targeting/available/tids:
    get:
      summary: "GET Advertisement Targeting Tids"
      tags:
      - "advertisement"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "./markee-api.yaml#/components/schemas/ListResultKeyValueString"
      operationId: "get-advertisement-targeting-available-tids"
      description: "get the categories defined by a tid (= etb no)"
      parameters:
      - schema:
          type: "string"
        in: "query"
        name: "filter"
        description: "name filter, can be used to filter for a specific tid"
      - schema:
          type: "integer"
          format: "int64"
        in: "query"
        name: "productId"
        description: "id of the advertisement product you want to get the informations\
          \ for"
        required: true
      - schema:
          type: "string"
        in: "query"
        name: "adspace"
        description: "Adspace or advertisement type you want to check the TIds for"
        required: true
      - schema:
          type: "integer"
        in: "query"
        name: "skip"
        description: "skip entries"
      - schema:
          type: "integer"
        in: "query"
        name: "take"
        description: "take a given number of entries"
  /v5/company/employer:
    get:
      summary: "Get Employer Information"
      tags:
      - "company"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "./markee-api.yaml#/components/schemas/EmployerDetails"
      operationId: "get-employer-details"
      description: "Returns the EmployerDetails that contains employer & location\
        \ information"
      parameters:
      - schema:
          type: "string"
        name: "spaceId"
        in: "query"
        required: false
        description: "The numeric spaceId (integer) of the employer space"
        example: 12345
      - schema:
          type: "string"
        name: "slug"
        in: "query"
        required: false
        description: "The slug identifier of the employer"
        example: "company-name"
  /v5/reviews:
    parameters: []
    get:
      summary: "GET Reviews"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "./markee-api.yaml#/components/schemas/ListResultSocialReviews"
      operationId: "get-reviews"
      tags:
      - "review"
      parameters:
      - schema:
          type: "string"
          format: "int64"
        in: "query"
        name: "ids"
        required: true
        description: "the ids of the context"
      - schema:
          type: "integer"
        in: "query"
        name: "take"
        description: "Get only x elements. If it's not defined, the fallback is 500\
          \ elements. The maximum value you can request is 500; And if it exceeds\
          \ this, the API will reject the request."
      - schema:
          type: "integer"
        in: "query"
        name: "skip"
        description: "skip entries"
      - schema:
          type: "string"
          enum:
          - "reviewId"
          - "socialPortal"
          - "dateTime"
          - "rating"
        in: "query"
        name: "sortColumn"
        description: "name of the column which gets sorted, need to be one of the\
          \ fields of the model schema of the response"
      - schema:
          type: "string"
          enum:
          - "asc"
          - "desc"
        in: "query"
        name: "sortDirection"
        description: "asc or desc for ascending or descending"
      - schema:
          type: "string"
          enum:
          - "Location"
          - "Company"
        in: "query"
        description: "context of the ids you're passing"
        name: "contextType"
        required: true
      - schema:
          type: "string"
        in: "query"
        name: "socialPortal"
        description: "social portal names as a comma separated list"
      - schema:
          type: "number"
          format: "double"
        in: "query"
        name: "minRating"
        description: "a filter for minimum rating"
      - schema:
          type: "number"
          format: "double"
        in: "query"
        name: "maxRating"
        description: "a filter for maximum rating"
      - schema:
          type: "boolean"
        in: "query"
        description: "to filter reviews if they have answer from owner "
        name: "answeredStatus"
      - schema:
          type: "string"
        in: "query"
        name: "tags"
        description: "filter by tags, which should exist on company level"
      description: "This endpoint offers reviews for a certin context type (company\
        \ or location).\n\nYou can use various query parameters to filter the result\
        \ list.\n\nNote!\nThere musst be a product assigned which covers the functionalitiy\
        \ for \"Review Monitoring\""
  /v5/contract/{contractId}/purchase/preview:
    parameters:
    - schema:
        type: "integer"
        format: "int64"
      name: "contractId"
      in: "path"
      required: true
    post:
      summary: "PREVIEW Costs Of A Purchase"
      operationId: "preview-purchase"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Costs"
      description: "Use this call to calculate the costs you would need to pay to\
        \ purchase a product. Check with this call how high the proration costs would\
        \ be if you want to put the purchase product into the invoice interval cycle.\n\
        \nSend the same body you would send to the endpoint: /v5/contract/{contractId}/purchase"
      tags:
      - "product"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProductPurchase"
  /v5/recruitment/occupational-fields:
    get:
      tags:
      - "recruitment-meta"
      summary: "Get Occupational Fields"
      description: "Returns a paginated and filtered list of occupational fields for\
        \ the given language. Use all=true to retrieve the complete list without pagination."
      operationId: "getOccupationalFields"
      parameters:
      - name: "language"
        in: "query"
        description: "Language ISO code"
        required: true
        schema:
          type: "string"
      - name: "filter"
        in: "query"
        description: "Optional filter for occupational field name (case-insensitive)"
        required: false
        schema:
          type: "string"
      - name: "all"
        in: "query"
        description: "Return all occupational fields without pagination (default:\
          \ false)"
        required: false
        schema:
          type: "boolean"
          default: false
      - name: "parent"
        in: "query"
        description: "Return only parent occupational fields (those without a parent)\
          \ (default: false)"
        required: false
        schema:
          type: "boolean"
          default: false
      - name: "page"
        in: "query"
        description: "Zero-based page index (0..N)"
        required: false
        schema:
          type: "integer"
          default: 0
          minimum: 0
      - name: "size"
        in: "query"
        description: "The size of the page to be returned"
        required: false
        schema:
          type: "integer"
          default: 20
          minimum: 1
      - name: "sort"
        in: "query"
        description: "Sorting criteria in the format: property,(asc|desc). Default\
          \ sort order is ascending. Multiple sort criteria are supported."
        required: false
        schema:
          type: "array"
          items:
            type: "string"
      responses:
        "200":
          description: "List of occupational fields"
          content:
            '*/*':
              schema:
                $ref: "#/components/schemas/OccupationalFieldListResponse"
  /v5/contract/{contractId}/product/{productId}:
    parameters:
    - schema:
        type: "integer"
      name: "contractId"
      in: "path"
      required: true
    - schema:
        type: "integer"
      name: "productId"
      in: "path"
      required: true
    delete:
      deprecated: true
      description: "cancel this product from the contract\n\nthis call shall only\
        \ be called by a self service user"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Success"
      summary: "CANCEL Product From Contract"
      operationId: "cancel-purchased-product"
      tags:
      - "product"
      parameters:
      - schema:
          type: "string"
        in: "query"
        name: "locationIds"
        description: "comma separated location ids "
  /v5/reviews/{reviewId}:
    parameters:
    - schema:
        type: "integer"
        format: "int64"
      name: "reviewId"
      in: "path"
      required: true
      description: "unique review id"
    get:
      summary: "GET Single Review"
      tags:
      - "review"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Review"
      operationId: "get-review"
      description: "This endpoint offers the data of a single review\n\nNote!\nThere\
        \ musst be a product assigned which covers the functionalitiy for \"Review\
        \ Monitoring\""
  /v5/contract/{contractId}/payment-provider/{paymentProviderConfigId}:
    parameters:
    - schema:
        type: "integer"
        format: "int64"
      name: "contractId"
      in: "path"
      required: true
    - schema:
        type: "integer"
        format: "int64"
      name: "paymentProviderConfigId"
      in: "path"
      required: true
    put:
      summary: "CHANGE Payment Provider Configuration"
      operationId: "change_payment-provider-configuration"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "./markee-api.yaml#/components/schemas/Success"
      description: "save new payment method id in stripe for now only \nNote: later\
        \ will be used for all the payment providers"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProviderConfigUpdate"
      tags:
      - "contract"
  /v5/recruitment/industries:
    get:
      tags:
      - "recruitment-meta"
      summary: "Get Industries"
      description: "Returns a list of translated industries for the specified language."
      operationId: "findAllWithTranslations"
      parameters:
      - name: "language"
        in: "query"
        required: false
        schema:
          type: "string"
          default: "de"
      responses:
        "200":
          description: "List of Industries"
          content:
            '*/*':
              schema:
                $ref: "#/components/schemas/IndustryDto"
  /v5/analytics/{contextType}/{contextIds}/statistic/chronology:
    parameters:
    - schema:
        type: "string"
      name: "contextType"
      in: "path"
      required: true
    - schema:
        type: "string"
      name: "contextIds"
      in: "path"
      required: true
    get:
      summary: "GET statistics chronological"
      tags:
      - "statistic"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "./markee-api.yaml#/components/schemas/ListResultChronology"
      operationId: "get-chronological-statistics"
      description: "This function returns a list of chronological statistics for different\
        \ products. The statistics are aggregated based on the chosen time interval\
        \ and aggregation type. You have the option to view statistics on a daily,\
        \ monthly, or yearly basis.\n\nIf the statistics are displayed for a single\
        \ product line (e.g., listing), you will see the extended KPIs listed as an\
        \ additional detailed layer. Otherwise (e.g., listing and sea), you will see\
        \ the product lines in that layer.\n\nTo check which KPIs are available, you\
        \ can request them through the 'possible KPIs' call.\n\nTo access the statistics,\
        \ you need to order a product that includes the 'Analytics' functionality\
        \ for your locations. Locations without an active subscription for this feature\
        \ will not be included in the response, even if you try to retrieve statistics\
        \ for the parent company."
      parameters:
      - schema:
          type: "string"
        in: "query"
        name: "kpis"
        description: "the kpis you want to get statistics for, see 'possible kpis'\
          \ call to see the available kpis for your product/licence filter configuration"
      - schema:
          type: "string"
          enum:
          - "ReachEnhancement"
          - "Listing"
          - "Advertisement"
          - "ListingPortal"
          - "CallTracking"
        in: "query"
        name: "products"
        description: "filter for products, comma separated productids"
      - schema:
          type: "string"
          format: "date"
        in: "query"
        name: "from"
        description: "date of format 'yyyy-MM-dd' determining the including start\
          \ date for filtering"
      - schema:
          type: "string"
          format: "date"
        in: "query"
        name: "to"
        description: "date of format 'yyyy-MM-dd' determining the including end date\
          \ for filtering"
      - schema:
          type: "string"
          enum:
          - "Day"
          - "Month"
          - "Year"
          - "Week"
        in: "query"
        name: "aggregationType"
        required: true
        description: "determines the chronological aggregation type of the data representation"
      - schema:
          type: "boolean"
        in: "query"
        name: "includeMetaData"
        description: "with this parameter you can control if more detailled meta data\
          \ shall get included in thie response (if available). Be ware: this can\
          \ slow down the response time. Default is false"
  /v5/analytics/{contextType}/{contextIds}/statistic/call-tracking:
    parameters:
    - schema:
        type: "string"
      name: "contextType"
      in: "path"
      required: true
    - schema:
        type: "string"
      name: "contextIds"
      in: "path"
      required: true
    get:
      summary: "GET Call Tracking Statistics"
      tags:
      - "statistic"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "./markee-api.yaml#/components/schemas/ListResultCallsDetail"
      operationId: "get-calltracking-statistics"
      parameters:
      - schema:
          type: "boolean"
          format: "date"
        in: "query"
        name: "filtered"
        description: "using filtered date or raw ones"
        required: true
      - schema:
          type: "string"
          format: "date"
        in: "query"
        name: "from"
        description: "date of format 'yyyy-MM-dd' determining the including start\
          \ date for filtering"
      - schema:
          type: "string"
          format: "date"
        in: "query"
        name: "to"
        description: "date of format 'yyyy-MM-dd' determining the including end date\
          \ for filtering"
      - schema:
          type: "integer"
        in: "query"
        name: "skip"
        description: "skip entries of list"
      - schema:
          type: "integer"
        in: "query"
        name: "take"
        description: "take a given number of entries"
      description: "This function returns a list made phone calls to a call tracking\
        \ number.\nYou can get the list either for single call tracking subscriptions\
        \ or on company/location level for all call tracking subscriptions underneath.\n\
        \nTo access the statistics, you need to order a product that includes the\
        \ 'Analytics' functionality for your locations. Locations without an active\
        \ subscription for this feature will not be included in the response, even\
        \ if you try to retrieve statistics for the parent company."
  /v5/reach/{subscriptionId}/sea:
    parameters:
    - schema:
        type: "integer"
        format: "int64"
      name: "subscriptionId"
      in: "path"
      required: true
      description: "subscription id of the ordered product sea is a part of"
    post:
      summary: "Set initial SEA data"
      operationId: "set-sea-data"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SeaResponse"
      description: "Use that endpoint to define all initial data for a sea subscription.\
        \ That action must be executed only once.\nAs soon as all mandatory data fields\
        \ are defined use the corresponding update methods to change them.\n\nYou\
        \ define one segment (either via categoryTaxonomyId or customSettings), you\
        \ can add/remove/modify multiple later.\n\nIn the response you get a seaId\
        \ returned.\nThat one you can use in the v4 api for segments management, update\
        \ etc. for now.\n"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SeaInit"
      tags:
      - "sea"
  /v5/social/post/comment/reply:
    get:
      summary: "GET Social Post Comment Replies"
      operationId: "get-social-post-comment-replies"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "./markee-api.yaml#/components/schemas/ListResultCommentReplies"
      description: "Method to get Social comment replies"
      parameters:
      - schema:
          type: "integer"
          format: "int64"
        in: "query"
        name: "commentId"
        description: "id of comment"
        required: true
      - schema:
          type: "integer"
        in: "query"
        name: "take"
        description: "take a given number of entries"
      - schema:
          type: "integer"
        in: "query"
        name: "skip"
        description: "skip entries"
      tags:
      - "posts"
  /v5/contract/{contractId}/start-trial:
    description: "Starts the trial period of a product for a customer.\n"
    parameters:
    - name: "contractId"
      description: "the id of the contract"
      in: "path"
      schema:
        type: "integer"
        format: "int64"
      required: true
    post:
      description: "Use this method to trigger an initiation of trial period of a\
        \ product, defined by the product id.\nYou need also pass Stripe as a payment\
        \ provider (need to be valid for the contract of the product).\n\nFor the\
        \ provider config for Stripe this is:\n* stripeCustomerId or customerId: customer\
        \ id in stripe, you get this information for your user on the user profile\
        \ call GET /v5/user/profile\n* paymentMethodId: you need to select this one\
        \ via Stripe directly in your Frontend\n"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProductPurchase"
      summary: "Start TRIAL Of A Product"
      operationId: "start-product-trial"
      tags:
      - "product"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Success"
  /v5/recruitment/applications/{id}/note:
    put:
      tags:
      - "applications"
      operationId: "patchApplicationNote"
      parameters:
      - name: "jobOfferId"
        in: "query"
        required: true
        schema:
          type: "string"
      - name: "id"
        in: "path"
        required: true
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ApplicationNotePatch"
        required: true
      responses:
        "200":
          description: "OK"
          content:
            '*/*':
              schema:
                $ref: "#/components/schemas/ApplicationDto"
  /v5/location/{ids}:
    parameters:
    - schema:
        type: "string"
      name: "ids"
      in: "path"
      required: true
      description: "  location's id in a coma separate list"
    delete:
      summary: "Delete Locations"
      operationId: "delete-v5-location-ids"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListResultSuccess"
      tags:
      - "location"
      description: "method to delete Locations\n\nNote: In order to delete location's\
        \ all paid products must be terminated  , an exception are the free products\
        \ that will be automatically terminated by deleting the location's"
  /v5/contract/{contractId}/price-list:
    description: "get the full list of products offered for you to buy\n"
    parameters:
    - schema:
        type: "integer"
        format: "int64"
      name: "contractId"
      in: "path"
      required: true
      description: "id of your contract"
    get:
      description: "Get the price list data for your contract."
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PriceListData"
      operationId: "get-price-list"
      summary: "GET Price List for Company Contract"
      tags:
      - "product"
      parameters:
      - schema:
          type: "string"
        in: "query"
        name: "lang"
        description: "Language"
  /v5/recruitment/portal/{context}/{slug}:
    get:
      tags:
      - "public"
      - "portal"
      operationId: "getLandingPageUrl"
      parameters:
      - name: "context"
        in: "path"
        required: true
        schema:
          type: "string"
          enum:
          - "JOB_OFFER"
          - "EMPLOYER"
      - name: "slug"
        in: "path"
        required: true
        schema:
          type: "string"
      responses:
        "200":
          description: "OK"
  /v5/insites/create:
    post:
      tags:
      - "insites"
      summary: "create a new insites report"
      operationId: "verb2"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateInsitesRequest"
        required: true
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/InsitesResponse"
    get:
      tags:
      - "insites"
      summary: "create a new insites report"
      operationId: "verb1"
      parameters:
      - name: "name"
        in: "query"
        required: true
        schema:
          type: "string"
      - name: "phone"
        in: "query"
        required: true
        schema:
          type: "string"
      - name: "address"
        in: "query"
        required: true
        schema:
          type: "string"
      - name: "zip"
        in: "query"
        required: true
        schema:
          type: "string"
      - name: "url"
        in: "query"
        required: true
        schema:
          type: "string"
      - name: "city"
        in: "query"
        required: true
        schema:
          type: "string"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/InsitesResponse"
  /v5/contract/{contractId}/subscription/{subscriptionId}/action:
    parameters:
    - schema:
        type: "integer"
        format: "int64"
      name: "contractId"
      in: "path"
      required: true
      description: "company contract id the subscription belongs to"
    - schema:
        type: "integer"
        format: "int64"
      name: "subscriptionId"
      in: "path"
      required: true
      description: "unique subscription id"
    post:
      summary: "Send Subscription Action"
      operationId: "send_subscription_action"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Subscription"
      tags:
      - "product"
      description: "Use the endpoint to send specific actions to a subscripton.\n\
        Which actions are available for the subscription of a certain product you\
        \ see via the endpoints:\n* /v5/contract/{contractId}/subscription\n* /v5/contract/{contractId}/defined-products\
        \  with the workspace contract id\n* /v5/contract/{contractId}/product with\
        \ the company contract id"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SubscriptionAction"
        description: ""
  /v5/social/post/comment/reply/{id}:
    parameters:
    - schema:
        type: "integer"
        format: "int64"
      name: "id"
      in: "path"
      required: true
    delete:
      summary: "DELETE Social Post Reply"
      operationId: "delete-social-post-reply"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "./markee-api.yaml#/components/schemas/Success"
      description: "Method to delete Reply"
      parameters: []
      tags:
      - "posts"
  /v5/recruitment/job-offers/{jobOfferId}:
    get:
      tags:
      - "job-offer"
      summary: "Get Job Offer Details"
      description: "Retrieves detailed information about a specific job offer by its\
        \ ID. The response includes all relevant details of the job offer, such as\
        \ job description, requirements, benefits, employer information, and publishing\
        \ channels."
      operationId: "getJobOfferDetails"
      parameters:
      - name: "jobOfferId"
        in: "path"
        description: "Job Offer ID of the job offer to retrieve details for"
        required: true
        schema:
          type: "integer"
          format: "int32"
      - name: "language"
        in: "query"
        description: "Language for localization, default is 'de'"
        required: false
        schema:
          type: "string"
          default: "de"
      responses:
        "200":
          description: "OK"
          content:
            '*/*':
              schema:
                $ref: "#/components/schemas/JobOfferDto_Get"
    delete:
      tags:
      - "job-offer"
      summary: "Delete Job Offer"
      description: "Deletes a job offer by its ID. The job offer will no longer be\
        \ accessible. If the Job Offer is published, it will be unpublished as part\
        \ of the deletion process."
      operationId: "deleteJobOffer"
      parameters:
      - name: "jobOfferId"
        in: "path"
        description: "Job Offer ID of the job offer to delete"
        required: true
        schema:
          type: "integer"
          format: "int32"
      responses:
        "200":
          description: "OK"
          content:
            '*/*':
              schema:
                $ref: "#/components/schemas/JobOfferDto_Delete"
    put:
      tags:
      - "job-offer"
      summary: "Update Job Offer"
      description: "Updates an existing job offer with new information. Only the fields\
        \ provided in the request will be updated. The job offer must be in a draft\
        \ or unpublished state to be updated."
      operationId: "updateJobOffer"
      parameters:
      - name: "jobOfferId"
        in: "path"
        description: "Job Offer ID of the job offer to update"
        required: true
        schema:
          type: "integer"
          format: "int32"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JobOfferDto_Put"
        required: true
      responses:
        "200":
          description: "OK"
          content:
            '*/*':
              schema:
                $ref: "#/components/schemas/JobOfferDto_Get"
  /v5/analytics/{contextType}/{contextIds}/statistic/aggregated:
    parameters:
    - schema:
        type: "string"
        enum:
        - "Company"
        - "Location"
        - "Subscription"
      name: "contextType"
      in: "path"
      required: true
      description: "Define the context type which refers to the contextIds you're\
        \ passing"
    - schema:
        type: "string"
      name: "contextIds"
      in: "path"
      required: true
      description: "comma separated list of ids"
    get:
      summary: "GET aggregated statistics"
      tags:
      - "statistic"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "./markee-api.yaml#/components/schemas/ListResultAggregated"
      operationId: "get-aggregated-statistics"
      description: "This function provides a list of aggregated statistics for different\
        \ products. The statistics are aggregated based on the chosen time interval.\
        \ If available, you will also see the periodic changes compared to the statistics\
        \ of the previous period, which is determined by the same number of days you\
        \ defined with \"from\" and \"to.\"\n\nIf the statistics are displayed for\
        \ a single product line (e.g., listing), you will see the extended KPIs listed\
        \ as an additional detailed layer. Otherwise (e.g., listing and sea), you\
        \ will see the product lines in this layer.\n\nTo check which KPIs are available,\
        \ feel free to request them through the 'possible KPIs' call.\n\nTo access\
        \ the statistics, you need to order a product that includes the 'Analytics'\
        \ functionality for your locations. Locations without an active subscription\
        \ for this feature will not be considered in the response, even if you try\
        \ to retrieve statistics for the parent company."
      parameters:
      - schema:
          type: "string"
        in: "query"
        name: "kpis"
        description: "the kpis you want to get statistics for, see 'possible kpis'\
          \ call to see the available kpis for your product/licence filter configuration"
      - schema:
          type: "string"
        in: "query"
        name: "productIds"
        description: "filter for products, comma separated productids"
      - schema:
          type: "string"
          format: "date"
        in: "query"
        name: "from"
        description: "date of format 'yyyy-MM-dd' determining the including start\
          \ date for filtering"
      - schema:
          type: "string"
          format: "date"
        in: "query"
        name: "to"
        description: "date of format 'yyyy-MM-dd' determining the including end date\
          \ for filtering"
      - schema:
          type: "boolean"
        in: "query"
        name: "includeMetaData"
        description: "with this parameter you can control if more detailled meta data\
          \ shall get included in thie response (if available). Be ware: this can\
          \ slow down the response time. Default is false"
  /v5/recruitment/applications/{id}:
    get:
      tags:
      - "applications"
      operationId: "getApplicationById"
      parameters:
      - name: "jobOfferId"
        in: "query"
        required: true
        schema:
          type: "string"
      - name: "id"
        in: "path"
        required: true
        schema:
          type: "string"
      responses:
        "200":
          description: "OK"
          content:
            '*/*':
              schema:
                $ref: "#/components/schemas/ApplicationDto"
  /v5/contract/{contractId}/subscription/{subscriptionId}:
    parameters:
    - schema:
        type: "integer"
        format: "int64"
      name: "contractId"
      in: "path"
      required: true
      description: "unique contract id"
    - schema:
        type: "integer"
        format: "int64"
      name: "subscriptionId"
      in: "path"
      required: true
      description: "unique subscription id that belong to the contract"
    put:
      summary: "UPDATE Subscription"
      operationId: "update-subscription"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Success"
      description: "This method allows you to set subscription related data.\n\nNext\
        \ to free text fields as external id and a note you can also set the end date.\n\
        It must be greater than or equal to today.\n\nend date = null means, the subscription\
        \ runs unlimited until end date gets defined.\nif you want to cancel a running\
        \ subscription, set the end_date to today (or the next possible date)\n\n\
        The start date can only be changed if it hasn't been reached yet.\nIt must\
        \ be greater than or equal to today.\n"
      tags:
      - "product"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SubscriptionUpdate"
  /v5/recruitment/job-offers/publish:
    post:
      tags:
      - "job-offer"
      summary: "Publish Job Offers"
      description: "Publishes one or more job offers, making them visible to job seekers.\
        \ Validates the request against available slots and publishing channels."
      operationId: "publishJobOffers"
      parameters:
      - name: "X-Top-Jobs"
        in: "header"
        description: "Boolean to determine if the job offer should be published as\
          \ a top job"
        required: false
        schema:
          type: "boolean"
        example: true
      - name: "language"
        in: "query"
        description: "Language for localization, default is 'de'"
        required: false
        schema:
          type: "string"
          default: "de"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PublishJobOfferRequest_Post"
        required: true
      responses:
        "200":
          description: "OK"
          content:
            '*/*':
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/JobOfferDto_Get"
      x-product-validation:
        functionality: "JobOfferPublishing"
  /v5/social/post/{id}:
    parameters:
    - schema:
        type: "integer"
        format: "int64"
      name: "id"
      in: "path"
      required: true
      description: "id of the post"
    delete:
      summary: "DELETE Social Post"
      operationId: "delete-post"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListResultSuccess"
      description: "Method to delete social posts. \n\nNote!\nThere must be a product\
        \ purchased which has the functionalitiy \"SocialPosts\""
      parameters:
      - schema:
          type: "string"
        in: "query"
        name: "contextIds"
        description: "comma separated ids of location or company"
      - schema:
          type: "string"
          enum:
          - "Location"
          - "Company"
        in: "query"
        name: "contextType"
        description: "context type (location,company)"
      tags:
      - "posts"
    put:
      summary: "PUT Social Post"
      operationId: "put-social-post"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Success"
      description: "\n\n\n\n\n\n\n\n\n\n\n\n Method to update Post before the post\
        \ plan date \n \nNote!\n  1. is possible to add up to 10 image's only for\
        \ Facebook social portal for the other social portal we pick the first from\
        \ the       \n     array"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "./markee-api.yaml#/components/schemas/SocialPostUpdate"
      tags:
      - "posts"
  /v5/advertisement/{subscriptionId}/advertisement:
    parameters:
    - schema:
        type: "integer"
        format: "int64"
      name: "subscriptionId"
      in: "path"
      required: true
      description: "subscription id of the ordered product advertisement banner is\
        \ a part of"
    post:
      summary: "Set initial advertisement data"
      operationId: "set-advertisement-data"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Subscription"
      description: "Use that endpoint to define all initial data for an advertisement\
        \ subscription. This action must be executed only once.\nAs soon as all mandatory\
        \ data fields are defined, use the corresponding update methods to change\
        \ them.\n\nIn the response you get a subscription object returned.\nThe id\
        \ of it you can use in the v4 api for advertisement update calls.\n"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AdvertisementInit"
        description: ""
      tags:
      - "advertisement"
  /v5/contract/{contractId}/defined-products:
    description: "get the full list of products offered for you to buy\n"
    parameters:
    - schema:
        type: "integer"
        format: "int64"
      name: "contractId"
      in: "path"
      required: true
      description: "id of your contract"
    get:
      description: "Get all products that are defined theoretically for all customers\
        \ of a workspace.\n\nNote:\nThere could be restrictions that does not allow\
        \ a company to order one of those products (e.g. country restriction).\nTo\
        \ get a more reliable list for a certain company, you may want to user the\
        \ following endpoint: /v5/contract/{contractId}/product\n"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListResultProduct"
      operationId: "get-defined-product-list"
      summary: "GET Defined Products of Workspace Contract"
      tags:
      - "product"
      parameters:
      - schema:
          type: "string"
          format: "int64"
        in: "query"
        name: "baseProductsTypes"
        description: "filter the result by this comma separated list of base product\
          \ ids you get from the contract detail object"
        style: "form"
  /v5/calltracking/{subscriptionId}:
    parameters:
    - schema:
        type: "integer"
        format: "int64"
      name: "subscriptionId"
      in: "path"
      required: true
      description: "subscription id of the ordered product calltracking is a part\
        \ of"
    post:
      summary: "Set initial CALLTRACKING data"
      operationId: "set-calltracking-data"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Subscription"
      tags:
      - "calltracking"
      description: "Use that endpoint to define all initial data for a calltracking\
        \ subscription. That action must be executed only once.\nAs soon as all mandatory\
        \ data fields are defined use the corresponding update methods to change them.\n\
        \nIn the response you get a subscription object returned.\nThe id of it you\
        \ can use in the v4 api for calltracing update calls.\n"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CallTrackingInit"
  /v5/contract/{contextType}/{contextId}:
    description: "a contract identifies one of your customers\n"
    parameters:
    - schema:
        type: "string"
        enum:
        - "company"
        - "workspace"
      name: "contextType"
      in: "path"
      required: true
      description: "context you want to get contracts for"
    - schema:
        type: "integer"
        format: "int64"
      name: "contextId"
      in: "path"
      required: true
      description: "id of the context entity"
    get:
      description: "get the list of all contracts the logged in user is allowed to\
        \ see.\nOnly the first level of contracts is returned.\nUse the query parameter\
        \ to restrict the search, if you do so, you need to define contextType and\
        \ contextId, both."
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListResultContract"
      summary: "GET Contract List"
      operationId: "get-contract-list"
      tags:
      - "contract"
      parameters: []
  /v5/analytics/statistic/kpi:
    get:
      summary: "GET statistic KPIs"
      tags:
      - "statistic"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "./markee-api.yaml#/components/schemas/ListResultKpis"
      operationId: "get-statistic-kpis"
      description: "Returns a list of possible kpis. You can filter for products to\
        \ see what you could get by the statistics calls.\n\nRemark: To get the detailed\
        \ extended kpis for a products you need to set the filter correspondingly\
        \ in the statistic aggregated or chronology call."
      parameters:
      - schema:
          type: "string"
        in: "query"
        name: "products"
        description: "comma separated list of product ids"
  /v5/recruitment/employment-types:
    get:
      tags:
      - "recruitment-meta"
      summary: "Get Employment Types"
      description: "Returns a paginated and filtered list of employment types."
      operationId: "getEmploymentTypes"
      parameters:
      - name: "filter"
        in: "query"
        description: "Optional filter for employment type name (case-insensitive)"
        required: false
        schema:
          type: "string"
      - name: "page"
        in: "query"
        description: "Optional Page number for pagination (0-based index). If provided\
          \ without size, default page size (20) will be applied."
        required: false
        schema:
          type: "integer"
          format: "int32"
      - name: "size"
        in: "query"
        description: "Optional Page size for pagination. If provided without page,\
          \ pagination will be applied starting from the first page."
        required: false
        schema:
          type: "integer"
          format: "int32"
      - name: "sort"
        in: "query"
        description: "Sorting criteria in the format: property,(asc|desc). Default\
          \ sort order is ascending. Multiple sort criteria are supported."
        required: false
        schema:
          type: "array"
          items:
            type: "string"
      responses:
        "200":
          description: "List of employment types"
          content:
            '*/*':
              schema:
                $ref: "#/components/schemas/EmploymentTypeListResponse"
  /v5/reviews/{reviewIds}/comments:
    parameters:
    - schema:
        type: "string"
      name: "reviewIds"
      in: "path"
      required: true
      description: "unique review ids, comma separated"
    get:
      summary: "GET Comments For A Review"
      tags:
      - "review"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "./markee-api.yaml#/components/schemas/ListResultSocialReviewComments"
      operationId: "get-review-comments"
      description: "This endpoint offers all comments for a specific review.\n\n\n\
        Note!\nThere musst be a product assigned which covers the functionalitiy for\
        \ \"Review Monitoring\""
      parameters:
      - schema:
          type: "integer"
        in: "query"
        name: "take"
        description: "take a given number of entries"
      - schema:
          type: "integer"
        in: "query"
        name: "skip"
        description: "skip entries"
      - schema:
          type: "string"
          enum:
          - "profileName"
          - "dateTime"
          - "ownerCommented"
        in: "query"
        description: "name of the column which gets sorted, need to be one of the\
          \ fields of the model schema of the response"
        name: "sortColumn"
      - schema:
          type: "string"
          enum:
          - "asc"
          - "desc"
        in: "query"
        description: "asc or desc for ascending or descending"
        name: "sortDirection"
    post:
      summary: "CREATE A Comment For A Review"
      operationId: "post-review-comments"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Success"
      tags:
      - "review"
      description: "With this endpoint you can send a comment to a defined review.\n\
        \nNote!\nThere musst be a product assigned (to the location of the review)\
        \ which covers the functionalitiy for \"Review Management\""
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "./markee-api.yaml#/components/schemas/SocialReviewCommentInsert"
  /v5/user/payment-provider/{providerConfigId}:
    parameters:
    - schema:
        type: "integer"
        format: "int64"
      name: "providerConfigId"
      in: "path"
      required: true
      description: "the id of a certain provider config"
    post:
      summary: "INITIATE Payment Provider"
      operationId: "initiate-user-payment-provider"
      description: "In case a payment provider is not yet initiated for your user,\
        \ you can do it here.\nYou need to have payment provider configured to pay\
        \ products in any self service contract.\nThe payment provider being available\
        \ and configured you can see in your user profile GET /user/profile"
      tags:
      - "user"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProviderConfig"
  /v5/reach/{subscriptionId}/sea-local-ads:
    parameters:
    - schema:
        type: "integer"
        format: "int64"
      name: "subscriptionId"
      in: "path"
      required: true
      description: "subscription id of the ordered product sea local ads is a part\
        \ of"
    post:
      summary: "Set initial SEA Local Ads extension"
      operationId: "set-sea-local-ads"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Subscription"
      tags:
      - "sea"
      description: "Setting Up Your Subscription:\n\n    Use the provided endpoint\
        \ to establish the initial data for your subscription to a sea local ads extension.\
        \ It's important tonote that this action should only be executed once during\
        \ the setup process.\n\n\nUpdating Mandatory Data:\n\n    Once you've defined\
        \ all the mandatory data fields, make use of the corresponding update methods\
        \ to modify them as needed.\n\nIntegration with Sea Campaign:\n\n    Please\
        \ be aware that this local ads extension is directly connected to an already\
        \ established sea campaign. To ensure proper integration, include the corresponding\
        \ subscriptionId in the request body.\n\nEnhancing Campaign Performance:\n\
        \n    Additionally, you have the option to allocate an extra budget to the\
        \ campaign. This can help boost its performance when combined with the local\
        \ ads.\n\nImportant Note:\n\n    There is a strong coupling between both subscriptions.\
        \ Any updates made to one subscription regarding its runtime will be immediately\
        \ reflected in the corresponding one."
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SeaLocalAdsInit"
  /v5/insites/report:
    get:
      tags:
      - "insites"
      summary: "request a existing insites report"
      operationId: "verb3"
      parameters:
      - name: "id"
        in: "query"
        required: true
        schema:
          type: "string"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                type: "string"
  /v5/contract/{contractId}/order:
    description: "if your customer buys one or more products from you these products\n\
      will be assigned to his contract. these assigned products are\nmanaged at this\
      \ path.\n"
    parameters:
    - name: "contractId"
      description: "the id of the contract"
      in: "path"
      schema:
        type: "integer"
        format: "int64"
      required: true
    post:
      description: "Use this method if you want to place an order for products into\
        \ a certain contract.\nThis can only be done by agency users, if you want\
        \ to purchase a product as a self service user, please user the purchase endpoint.\n\
        \nYou can directly pass the location ids you want to link. When you directly\
        \ pass them you can also define the start date.\n\nIn case additional data\
        \ is needed for the product (e.g. sea budget,tageting etc.) you need to pass\
        \ it through the corresponding api calls afterwards.\n\nThe created subscription\
        \ is waiting until all required data fields are set before any action is taken.\n\
        The response and the get products endpoint indicates where additional data\
        \ is required."
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProductOrder"
      summary: "ORDER A Product"
      operationId: "order-product"
      tags:
      - "product"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Subscription"
  /v5/social/post/retry/{id}:
    parameters:
    - schema:
        type: "integer"
        format: "int64"
      name: "id"
      in: "path"
      required: true
      description: "id of the post"
    put:
      summary: "RETRY Social Post"
      operationId: "retry-social-post"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListResultSuccess"
      tags:
      - "posts"
      description: "Method to retry posting failed social posts\nProviding a list\
        \ of locations will only retry posting the post for the locations in that\
        \ list (in case it failed in that location).\nIf no list is provided, the\
        \ retry will apply to all locations where the post failed."
      parameters:
      - schema:
          type: "string"
          format: "int64"
        in: "query"
        name: "locationIds"
        required: false
        description: "id of the locations, send this when only some of the failed\
          \ post_locations should be retried"
  /v5/portal/{domain}/search:
    parameters:
    - schema:
        type: "string"
      name: "domain"
      in: "path"
      required: true
      description: "domain of the portal from Markee portals you want to search for\
        \ locations"
    get:
      description: "Use this endpoint to search for possible duplicates of a location\
        \ in a Markee portal instance. You must have access rights to the workspace\
        \ in Markee that servces as the home of the portal."
      summary: "Search for locations in a Markee portal instance"
      operationId: "search-locations-in-portal"
      parameters:
      - schema:
          type: "string"
        in: "query"
        name: "phone"
        description: "phone number of location, with country code, in format countryCode-areaCode-number"
      - schema:
          type: "string"
        in: "query"
        name: "name"
        description: "name of location"
      - schema:
          type: "string"
        in: "query"
        name: "postCode"
        description: "postal code of location"
      - schema:
          type: "string"
        in: "query"
        name: "street"
        description: "street name of location"
      - schema:
          type: "string"
        in: "query"
        name: "city"
        description: "city name of location"
      - schema:
          type: "string"
        in: "query"
        name: "house"
        description: "house number of location"
      - schema:
          type: "integer"
        in: "query"
        name: "skip"
        description: "skip n entries"
      - schema:
          type: "integer"
        in: "query"
        name: "take"
        description: "take n entries. Default and maximum is 100"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListResultPortalLocation"
      tags:
      - "portal"
  /v5/company/employer/{spaceId}:
    parameters:
    - schema:
        type: "integer"
      name: "spaceId"
      in: "path"
      required: true
    put:
      summary: "Update Employer Profile Information"
      deprecated: true
      operationId: "put-employer"
      tags:
      - "company"
      description: "**[Deprecated]** This endpoint updates the employer's profile\
        \ information, including website, email, industry, company size, company description,\
        \ training company status, benefits, and location.  \nThis endpoint is deprecated\
        \ and may be removed in future versions. Please use the updated endpoint if\
        \ available.\n"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "./markee-api.yaml#/components/schemas/EmployerUpdate"
      responses:
        "200":
          description: "Employer profile updated successfully"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Success"
  /v5/recruitment/job-offers:
    post:
      tags:
      - "job-offer"
      summary: "Create Job Offer"
      description: "Creates a new job offer with the provided information. The job\
        \ offer will be created in a draft state and can be published later. All fields\
        \ marked as required must be provided in the request."
      operationId: "createJobOffer"
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JobOfferDto_Post"
        required: true
      responses:
        "200":
          description: "OK"
          content:
            '*/*':
              schema:
                $ref: "#/components/schemas/JobOfferDto_Get"
    get:
      tags:
      - "job-offer"
      summary: "Get Job Offers"
      description: "Retrieves a paginated list of job offers for a specific employer,\
        \ with optional filtering by job title and status. The response includes an\
        \ overview of each job offer, such as title, creation date, status, views,\
        \ and number of applications."
      operationId: "getJobOffers"
      parameters:
      - name: "employerId"
        in: "query"
        description: "Employer ID reference for Job Offers, same value as company\
          \ spaceId"
        required: true
        schema:
          type: "integer"
          format: "int32"
      - name: "jobTitle"
        in: "query"
        description: "Filter by job title, optional"
        required: false
        schema:
          type: "string"
      - name: "status"
        in: "query"
        description: "Filter by job offer status, optional"
        required: false
        schema:
          type: "string"
          enum:
          - "ACTIVE"
          - "INACTIVE"
      - name: "language"
        in: "query"
        description: "Language for localization, default is 'de'"
        required: false
        schema:
          type: "string"
          default: "de"
      - name: "page"
        in: "query"
        description: "Zero-based page index (0..N)"
        required: false
        schema:
          type: "integer"
          default: 0
          minimum: 0
      - name: "size"
        in: "query"
        description: "The size of the page to be returned"
        required: false
        schema:
          type: "integer"
          default: 20
          minimum: 1
      - name: "sort"
        in: "query"
        description: "Sorting criteria in the format: property,(asc|desc). Default\
          \ sort order is ascending. Multiple sort criteria are supported."
        required: false
        schema:
          type: "array"
          items:
            type: "string"
      responses:
        "200":
          description: "OK"
          content:
            '*/*':
              schema:
                $ref: "#/components/schemas/JobOfferListResponse"
components:
  examples: {}
  securitySchemes:
    oauth2:
      type: "oauth2"
      flows:
        password:
          tokenUrl: "https://login.partners/auth/realms/mark_ee/protocol/openid-connect/token"
          scopes:
            profile: "Access to user profile information"
            email: "Access to user email address"
            leadhub_user_data: "Access to Markee user attributes"
    basicAuth:
      type: "http"
      scheme: "basic"
      description: "Basic HTTP authentication"
  links: {}
  headers: {}
  callbacks: {}
  parameters: {}
  responses: {}
  requestBodies: {}
  schemas:
    OccupationalFieldDto_Get:
      type: "object"
      properties:
        id:
          type: "integer"
          format: "int32"
          description: "Occupational field ID - auto-generated"
          example: 4
        name:
          type: "string"
          description: "Occupational field name"
          example: "Agrarjobs"
          readOnly: true
        parent:
          $ref: "#/components/schemas/OccupationalFieldDto_Get"
          description: "Parent occupational field if this is a subcategory"
          readOnly: true
    Costs:
      description: "one or more prices for a product to build scale prices"
      type: "object"
      title: "Costs"
      properties:
        numItems:
          type: "integer"
          description: "how much items are needed to get this price (at least 1)\n"
        cost:
          $ref: "#/components/schemas/Price"
        setup:
          $ref: "#/components/schemas/Price"
        maint:
          $ref: "#/components/schemas/Price"
        currency:
          type: "string"
        prorationCost:
          $ref: "#/components/schemas/Price"
      required:
      - "cost"
      - "currency"
    IndustryDto_Put:
      type: "object"
      properties:
        id:
          type: "integer"
          format: "int32"
          description: "Industry ID - auto-generated"
          example: 2
    SpaceOverview:
      title: "SpaceOverview"
      type: "object"
      description: "minimal data of a space, e.g. location, workspace or company space"
      properties:
        id:
          type: "integer"
          format: "int32"
          description: "unique identifier of this space"
        name:
          type: "string"
          description: "name of the space"
        spaceType:
          type: "string"
          description: "type of the space"
          enum:
          - "Location"
          - "Company"
          - "Workspace"
          - "JobOffer"
      required:
      - "id"
      - "name"
      - "spaceType"
    ApplicationsWithCountDto:
      type: "object"
      properties:
        applications:
          type: "array"
          items:
            $ref: "#/components/schemas/ApplicationDto"
        count:
          $ref: "#/components/schemas/ApplicationCountDto"
      required:
      - "applications"
      - "count"
    WorkspaceContractOverview:
      description: "main object for the billing"
      x-stoplight:
        id: "1uv6h09gjeyca"
      type: "object"
      title: "WorkspaceContractOverview"
      properties:
        id:
          type: "integer"
          format: "int64"
          description: "unique id of the contract"
        parent:
          $ref: "./markee-api.yaml#/components/schemas/KeyValueInt"
        companyType:
          type: "string"
          description: "//TODO"
        country:
          type: "string"
          description: "the main country the contract is located in"
        externalId:
          type: "string"
          description: "user defined external id of the contract"
        startDate:
          type: "string"
          format: "date"
          description: "defines the date the contract begins to be valid"
        endDate:
          type: "string"
          format: "date"
          description: "until which date the contract is valid"
        workspace:
          $ref: "./markee-api.yaml#/components/schemas/KeyValueInt"
        salesRep:
          type: "integer"
          description: "//TODO"
        shopProvider:
          type: "array"
          items:
            $ref: "#/components/schemas/ProviderConfig"
        paymentProvider:
          type: "array"
          items:
            $ref: "#/components/schemas/ProviderConfig"
        invoiceProvider:
          type: "array"
          items:
            $ref: "#/components/schemas/Provider"
        billingPeriod:
          type: "string"
          description: "//TODO"
        name:
          type: "string"
          description: "name of the contract"
        contactAddress:
          type: "integer"
          description: "//TODO address object ?"
        billingUser:
          type: "integer"
          description: "//TODO user object?"
        availableBaseProductTypes:
          type: "array"
          items:
            $ref: "#/components/schemas/BaseProductType"
        billingAddress:
          $ref: "./markee-api.yaml#/components/schemas/AddressOverview"
        paymentMethod:
          $ref: "#/components/schemas/PaymentMethod"
        nextInvoiceDate:
          type: "string"
          format: "date"
          description: "//TODO"
        vatPercentage:
          type: "number"
      required:
      - "id"
      - "companyType"
      - "startDate"
      - "workspace"
      - "name"
    ProviderConfig:
      description: "used for invoicing payment and shopping"
      type: "object"
      title: "ProviderConfig"
      properties:
        name:
          type: "string"
        providerData:
          type: "array"
          items:
            $ref: "#/components/schemas/KeyValueString"
        providerConfigId:
          type: "integer"
          format: "int64"
      required:
      - "name"
      - "providerConfigId"
    DuplicateAction:
      title: "DuplicateAction"
      x-stoplight:
        id: "520k3nj9f7ot4"
      type: "object"
      properties:
        action:
          type: "string"
          description: "action you want to executed agains a duplicate warning of\
            \ a listing publisher"
          enum:
          - "IGNORE"
          - "SUPPRESS"
      required:
      - "action"
    ContractOverview:
      description: "main object for the billing"
      type: "object"
      title: "ContractOverview"
      properties:
        id:
          type: "integer"
          format: "int64"
          description: "unique id of the contract"
        parent:
          $ref: "./markee-api.yaml#/components/schemas/KeyValueInt"
        companyType:
          type: "string"
          description: "//TODO"
        country:
          type: "string"
          description: "the main country the contract is located in"
        externalId:
          type: "string"
          description: "user defined external id of the contract"
        startDate:
          type: "string"
          format: "date"
          description: "defines the date the contract begins to be valid"
        endDate:
          type: "string"
          format: "date"
          description: "until which date the contract is valid"
        workspace:
          $ref: "./markee-api.yaml#/components/schemas/KeyValueInt"
        salesRep:
          type: "integer"
          description: "//TODO"
        shopProvider:
          type: "array"
          items:
            $ref: "#/components/schemas/ProviderConfig"
        paymentProvider:
          type: "array"
          items:
            $ref: "#/components/schemas/ProviderConfig"
        invoiceProvider:
          type: "array"
          items:
            $ref: "#/components/schemas/Provider"
        billingPeriod:
          type: "string"
          description: "//TODO"
        name:
          type: "string"
          description: "name of the contract"
        contactAddress:
          type: "integer"
          description: "//TODO address object ?"
        billingUser:
          type: "integer"
          description: "//TODO user object?"
        companyId:
          $ref: "./markee-api.yaml#/components/schemas/KeyValueInt"
        availableBaseProductTypes:
          type: "array"
          items:
            $ref: "#/components/schemas/BaseProductType"
        billingAddress:
          $ref: "./markee-api.yaml#/components/schemas/AddressOverview"
        paymentMethod:
          $ref: "#/components/schemas/PaymentMethod"
        nextInvoiceDate:
          type: "string"
          format: "date"
          description: "//TODO"
        vatPercentage:
          type: "number"
      required:
      - "id"
      - "companyType"
      - "startDate"
      - "workspace"
      - "name"
    JobOfferListResponse:
      type: "object"
      properties:
        jobOffers:
          type: "array"
          items:
            $ref: "#/components/schemas/JobOfferOverview"
        total:
          type: "integer"
          format: "int32"
    IndustryDto:
      type: "object"
      properties:
        id:
          type: "integer"
          format: "int32"
        name:
          type: "string"
      required:
      - "id"
      - "name"
    AdminLevelDto_Get:
      type: "object"
      properties:
        adminLevel:
          type: "integer"
          format: "int32"
          description: "Administrative level (2=country, 4=state, 6=district, etc.)"
        osmId:
          type: "integer"
          format: "int64"
          description: "OpenStreetMap ID"
        name:
          type: "string"
          description: "Name of the administrative area"
      required:
      - "adminLevel"
      - "osmId"
    OccupationalFieldListResponse:
      type: "object"
      description: "Response containing a list of occupational fields and the total\
        \ count."
      properties:
        occupationalFields:
          type: "array"
          description: "List of occupational fields"
          items:
            $ref: "#/components/schemas/OccupationalFieldDto"
        total:
          type: "integer"
          format: "int32"
          description: "Total number of occupational fields"
          example: 42
      required:
      - "occupationalFields"
    SubscriptionBilling:
      title: "SubscriptionBilling"
      type: "object"
      properties:
        productId:
          type: "integer"
          description: "id of the product"
          format: "int64"
        productName:
          type: "string"
          description: "name of the product in the language of your user account"
        baseProductTypes:
          type: "array"
          description: "the base products that serve as a foundation for this product"
          items:
            $ref: "#/components/schemas/BaseProductType"
        costs:
          $ref: "#/components/schemas/Costs"
          description: "costs of the subscription"
        billingPeriod:
          type: "string"
          description: "interval in which the subscription gets invoiced"
        functionalities:
          type: "array"
          description: "indicates which functionalities are covered by this product"
          items:
            type: "string"
            enum:
            - "ReviewMonitoring"
            - "ReviewManagement"
            - "GoogleBusinessMessages"
            - "ListingDuplicateManagement"
            - "Analytics"
            - "YextForFood"
            - "GBPAutoVerification"
            - "SocialPosts"
            - "ListingPortalManagement"
            - "JobOfferPublishing"
      required:
      - "productId"
      - "productName"
      - "baseProductType"
    PriceListFeature:
      type: "object"
      x-examples:
        example-1:
          info: null
          name: "Visibility and management across 20+ channels"
          content: null
          order_by: 2
          catalog_id: 1025
          publishers:
          - icon: "https://dev-api.mark.ee/imgs/e9d2a8a0bc13955cd0b4b167b40b77ce5e6d15eed6d355738e32ebf99e956db3.png"
            name: "Snapchat"
            priority: 1
          - icon: "https://dev-api.mark.ee/imgs/b7deb5aa661f70ee245f6984eeaf459d03a8991c756b17240850e59aafa11e32.png"
            name: "Bing"
            priority: 1
          - icon: "https://dev-api.mark.ee/imgs/b10f219deefdd04edbae3e0759f04d9bfde00a4a2d7109f7f2f2b82e8b6b0643.png"
            name: "Facebook"
            priority: 1
          - icon: "https://dev-api.mark.ee/imgs/60adb0a1d93e82406ea6305bea251c423359e2e9d5c0cfeb4019a6f9c104e953.png"
            name: "Google My Business"
            priority: 1
          - icon: "https://dev-api.mark.ee/imgs/fd5f37b4a7753ecea3ff0d773eb79e6007e329be65e22b3ff665eabbac35e46a.png"
            name: "AroundMe"
            priority: 1
          - icon: "https://dev-api.mark.ee/imgs/05a10d2090ac6d71f82c49873b9f020de22d0c08cd0ae14daf374f108a73df42.png"
            name: "Navmii"
            priority: 5
          - icon: "https://dev-api.mark.ee/imgs/9e60977a0b18adbaab0932a4f7d8bae72ffa7d24594850d157a23089ca99dab4.png"
            name: "Holiday Check"
            priority: 5
          - icon: "https://dev-api.mark.ee/imgs/ff85d425628f04f618707d9beb59dcea87a5bbaf48b46948df6d474ed98bfa79.png"
            name: "Mafengwo"
            priority: 5
          - icon: "https://dev-api.mark.ee/imgs/8d389a9895ba858d6cea217be09054f05acecb21be853d61dd3fcdfea26745e6.png"
            name: "TripAdvisor"
            priority: 5
          - icon: "https://dev-api.mark.ee/imgs/02dbd08adafaa7d26f20faeed0abc27473e7471e8547bc6a8264afbb57535bb1.png"
            name: "Trip.com"
            priority: 5
          - icon: "https://dev-api.mark.ee/imgs/6299c8cef054c3c7f35bb9d3eb3fcb82e73302e67ca23d7b2538127659a44b74.png"
            name: "HostMe"
            priority: 5
          - icon: "https://dev-api.mark.ee/imgs/66610dc5b8d65f251be8a513b9a84f46bc753bf65077e51631cd90121e6bb76c.png"
            name: "Mapstr"
            priority: 5
          - icon: "https://dev-api.mark.ee/imgs/ad845af2130953257668058caefda31756b4e7d01748c7bab82d66a83a3ab053.png"
            name: "Infobel"
            priority: 5
          - icon: "https://dev-api.mark.ee/imgs/eb3e9376817a5347da1a57495cd8c877ce173a298cd6b4c7bfd04c4654b0353c.png"
            name: "Pitney Bowes"
            priority: 5
          - icon: "https://dev-api.mark.ee/imgs/1d6a7cdddd8dfbb4f246ddc04bb7b8f7b70ac3a4341ebc852cca9bbb960c1f01.png"
            name: "Yandex"
            priority: 5
          - icon: "https://dev-api.mark.ee/imgs/8ef2afbeeb35c1b4efac4537579e0cabe46aa6f6a127f84d27ba41df22a81444.png"
            name: "Instagram"
            priority: 5
          - icon: "https://dev-api.mark.ee/imgs/33645e554dae2952391af6e4326a8666bb62cab1dde89a7dfd45dd7939d873ce.png"
            name: "Brownbook.net"
            priority: 5
          - icon: null
            name: "Baldu"
            priority: 5
          - icon: "https://dev-api.mark.ee/imgs/015d63e85a070972275b58a24806773afb6b26527176818939a89be8f3110546.png"
            name: "Waze"
            priority: 5
          - icon: "https://dev-api.mark.ee/imgs/0fc2c742962c4ef31014da5529df3c9079c3f6a9e915524fb0ccb8d122de3450.png"
            name: "Foursquare"
            priority: 5
          - icon: "https://dev-api.mark.ee/imgs/a043eacc7307d544b36e0b2a4061dcd7aeea38010bd7bab9f0b21e03c6d01f33.png"
            name: "Here"
            priority: 5
          - icon: "https://dev-api.mark.ee/imgs/4fbc148e65e7b34df2e5cf284372ec924899bd35a804170c617e742593c6df73.png"
            name: "Tom Tom"
            priority: 5
          - icon: "https://dev-api.mark.ee/imgs/b9d166d6a7068020145e006d854667ce44aae3be951ba76d3aadea5eb36796e6.png"
            name: "Where to?"
            priority: 5
          included_products:
          - 1079
          - 5494
      properties:
        name:
          type: "string"
        info:
          type: "string"
          nullable: true
        content:
          type: "string"
          nullable: true
        order_by:
          type: "integer"
        catalog_id:
          type: "integer"
        publishers:
          type: "array"
          items:
            type: "object"
            properties:
              icon:
                type: "string"
              name:
                type: "string"
              priority:
                type: "integer"
        included_products:
          type: "array"
          items:
            type: "integer"
    KeyValueMeta:
      title: "KeyValueMeta"
      type: "object"
      properties:
        id:
          type: "string"
        key:
          type: "string"
        value:
          type: "string"
      required:
      - "id"
      - "key"
      - "value"
    JobOfferOverview:
      type: "object"
      properties:
        id:
          type: "integer"
          format: "int64"
          description: "Unique identifier of the Job Offer"
        status:
          type: "string"
          description: "Current status of the Job Offer; Active or Inactive"
          enum:
          - "ACTIVE"
          - "INACTIVE"
          minLength: 1
        jobTitle:
          type: "string"
          minLength: 1
        numberOfApplications:
          type: "integer"
          format: "int32"
        createdAt:
          type: "string"
          format: "date-time"
          minLength: 1
        views:
          type: "integer"
          format: "int64"
          description: "Job offer total view count"
        cityCountry:
          type: "string"
          description: "City and country code of the job offer location, e.g. 'Berlin,\
            \ DE'"
      required:
      - "createdAt"
      - "id"
      - "jobTitle"
      - "status"
    ApplicationStatusPatchDto:
      type: "object"
      properties:
        status:
          type: "string"
          enum:
          - "RECENTLY_ADDED"
          - "IN_PROCESS"
          - "REJECTED"
          - "HIRED"
      required:
      - "status"
    EmploymentTypeDto_Get:
      type: "object"
      properties:
        id:
          type: "integer"
          format: "int32"
          description: "Employment Type ID"
          example: 1
        name:
          type: "string"
          description: "Employment type name"
          example: "FULL_TIME"
    PortalLocation:
      title: "PortalLocation"
      type: "object"
      properties:
        name:
          type: "string"
          description: "Name of the location in the Markee Portal"
        phone:
          type: "string"
          description: "Phone of location in the Markee Portal"
        postcode:
          type: "string"
          description: "Postal code of the location in the Markee Portal"
        street:
          type: "string"
          description: "Street of the location in the Markee Portal"
        city:
          type: "string"
          description: "City of the location in the Markee Portal"
        house:
          type: "string"
          description: "House number of the location in the Markee Portal"
        isClaimed:
          type: "boolean"
          description: "Indicates if the Location is claimed on the specific Markee\
            \ Portal"
        locationId:
          type: "integer"
          format: "int64"
          description: "Unique location id of Markee"
        companyId:
          type: "integer"
          format: "int64"
          description: "Unique company id of Markee"
      required:
      - "name"
      - "isClaimed"
      - "locationId"
      - "companyId"
    ProductDependency:
      description: "used to define dependencies between products"
      type: "object"
      title: "ProductDependency"
      properties:
        allOf:
          type: "array"
          description: "If this product is purchased, all products in this list must\
            \ already be subscribed to or purchased as well."
          items:
            type: "integer"
            format: "int64"
        oneOf:
          type: "array"
          description: "If this product is purchased, one of the products in this\
            \ list must already be subscribed to or purchased as well."
          items:
            type: "integer"
            format: "int64"
        noneOf:
          type: "array"
          description: "If this product is purchased, none of the products in this\
            \ list must be subscribed to or purchased."
          items:
            type: "integer"
            format: "int64"
      required:
      - "productId"
      - "dependentProductId"
    ProductOrder:
      title: "ProductOrder"
      type: "object"
      description: ""
      properties:
        productId:
          type: "integer"
          format: "int64"
        amount:
          type: "integer"
          format: "int64"
          description: "amount how often you want to order this product"
        locationIds:
          type: "array"
          deprecated: true
          description: "location ids you want to connect the products to when the\
            \ order has been placed. The amount of the placed orders must be bigger\
            \ or equal than the number of loction ids"
          items:
            type: "integer"
            format: "int64"
        spaceIds:
          type: "array"
          description: "space ids you want to connect the products to when the order\
            \ has been placed. The amount of the placed orders must be bigger or equal\
            \ than the number of space ids. The space ids must be of the same space\
            \ type the product is configured for."
          items:
            type: "integer"
            format: "int32"
        startDate:
          type: "string"
          description: "you can choose the start date the subscription for all locations\
            \ shall start, if emitted, current date is chosen.\nThis field is only\
            \ getting considered in case locations ids are passed"
          format: "date"
        endDate:
          type: "string"
          description: "if wished, you can already set the end date for all subscriptions,\
            \ if emitted, the subscriptions will run infiite.\nThis field is only\
            \ getting considered in case locations ids are passed"
          format: "date"
        externalId:
          type: "string"
          description: "you can set any id you want to enrich the information of all\
            \ subscriptions that are getting created.\nThis external id will be considered\
            \ in the global search.\nThis field is only getting considered in case\
            \ locations ids are passed"
        note:
          type: "string"
          description: "An additional note you may want to place. Free text field\
            \ that is only used for internal purposes.\nThis field is only getting\
            \ considered in case locations ids are passed"
        addonOfSubscription:
          type: "integer"
          format: "int64"
          description: "If this subscription is an addon of another subscription,\
            \ you can set the id of the main subscription here."
      required:
      - "productId"
      - "amount"
    ProviderConfigUpdate:
      description: "used for invoicing payment and shopping"
      type: "object"
      title: "ProviderConfigUpdate"
      properties:
        providerData:
          type: "array"
          description: "configuration of provider - e.g. payment method id"
          items:
            $ref: "#/components/schemas/KeyValueString"
    JobOfferDto_Put:
      type: "object"
      properties:
        jobTitle:
          type: "string"
          description: "Job title name"
          example: "Software Engineer"
        openPositions:
          type: "integer"
          format: "int32"
          description: "Number of open positions"
          example: 5
        contactEmail:
          type: "string"
          deprecated: true
          description: "Contact email for applications. Deprecated: this field will\
            \ be removed in a future version."
        externalAppLink:
          type: "string"
          description: "External application link"
          example: "https://techcompany.com/careers/apply/12345"
        jobDescription:
          type: "string"
          description: "Job description text"
          example: "We are looking for a skilled Software Engineer to join our team..."
        languages:
          type: "array"
          description: "Required languages for the position, iso 639 language code"
          example:
          - "en"
          - "de"
          items:
            type: "string"
        employmentTypes:
          type: "array"
          description: "Possible employment types. Obtain the possible ones by a dedicated\
            \ api endpoint"
          items:
            $ref: "#/components/schemas/EmploymentTypeDto_Put"
        minimumDegree:
          type: "string"
          description: "The minimum degree you need to have for this job offer as\
            \ an applicant"
          enum:
          - "DOCTOR_PHD"
          - "MASTER"
          - "BACHELOR"
          - "A_LEVEL"
          - "VOCATIONAL_TRAINING"
          - "OTHER"
          example: "BACHELOR"
        jobIndustries:
          type: "array"
          description: "Job industries - at least one required.Use the dedicated API\
            \ endpoint to retrieve possible industries."
          items:
            $ref: "#/components/schemas/IndustryDto_Put"
          minLength: 1
        jobOccupationalFields:
          type: "array"
          description: "Job occupational fields - optional classification. Use the\
            \ dedicated API endpoint to retrieve possible occupational fields."
          items:
            $ref: "#/components/schemas/OccupationalFieldDto_Put"
        salary:
          $ref: "#/components/schemas/SalaryDto_Put"
          description: "Salary information"
        address:
          $ref: "#/components/schemas/AddressDto_Put"
          description: "Job location address - required with country and city"
        jobOfferRequirements:
          type: "array"
          description: "Job offer requirements"
          items:
            $ref: "#/components/schemas/JobOfferRequirementDto_Put"
          uniqueItems: true
      required:
      - "address"
      - "jobDescription"
      - "jobIndustries"
      - "jobTitle"
    HttpAction:
      title: "HttpAction"
      type: "object"
      properties:
        httpMethod:
          type: "string"
          enum:
          - "GET"
          - "POST"
          - "PUT"
          - "DELETE"
          description: "http method you need to use"
        endpoint:
          type: "string"
          description: "endpoint of our api you need to call"
        queryParameters:
          type: "array"
          description: "if needed: already filled out query parameters"
          items:
            type: "string"
        body:
          type: "string"
          description: "if needed, a filled out body you may need to hand over"
      required:
      - "httpMethod"
      - "endpoint"
    AvailableJobSlotsDto:
      type: "object"
      properties:
        totalSlots:
          type: "integer"
          format: "int32"
        usedSlots:
          type: "integer"
          format: "int32"
        availableSlots:
          type: "integer"
          format: "int32"
      required:
      - "availableSlots"
      - "totalSlots"
      - "usedSlots"
    BaseProductType:
      title: "BaseProductType"
      type: "object"
      properties:
        id:
          type: "integer"
          format: "int64"
          description: "id of the base product type"
        type:
          type: "string"
          description: "unique type"
      required:
      - "id"
      - "type"
    ProductCatalog:
      description: "grouping for products"
      type: "object"
      title: "ProductCatalog"
      properties:
        id:
          type: "integer"
          description: "the unique id of the catalog"
          format: "int64"
        contract:
          type: "integer"
          description: "the contract that created this catalog"
          format: "int64"
        name:
          type: "string"
          description: "the name of the catalog (can contain different languages)\n"
        description:
          type: "string"
          description: "the description of the catalog (can contain different languages)\n"
      required:
      - "id"
      - "name"
    ListResultPortal:
      title: "ListResultPortal"
      type: "object"
      properties:
        data:
          type: "array"
          items:
            $ref: "#/components/schemas/Portal"
        total:
          type: "integer"
      required:
      - "data"
      - "total"
    CreditCard:
      title: "CreditCard"
      type: "object"
      properties:
        last4:
          type: "string"
          description: "last 4 digits of the card"
        brand:
          type: "string"
          description: "e.g. visa or mastercard"
        country:
          type: "string"
          description: "two digits country code"
        expireMonth:
          type: "integer"
          description: "month of expiration year"
        expireYear:
          type: "integer"
          description: "expiration year"
      required:
      - "last4"
      - "brand"
      - "country"
      - "expireMonth"
      - "expireYear"
    ApplicationDataItemDto:
      type: "object"
      properties:
        key:
          type: "string"
        label:
          type: "string"
        type:
          type: "string"
        value:
          type: "object"
      required:
      - "key"
      - "label"
      - "type"
    Error:
      title: "Error"
      type: "object"
      properties:
        errorCode:
          type: "integer"
        errorMessage:
          type: "string"
        fields:
          type: "array"
          items:
            type: "string"
        values:
          type: "array"
          items:
            type: "string"
        exampleValue:
          type: "string"
        additionalInformation:
          type: "string"
      required:
      - "errorCode"
      - "errorMessage"
    ListResultProduct:
      title: "ListResultProduct"
      type: "object"
      properties:
        products:
          type: "array"
          items:
            $ref: "#/components/schemas/Product"
        total:
          type: "integer"
        catalogs:
          type: "array"
          description: "products can be grouped in catalogs"
          items:
            $ref: "#/components/schemas/ProductCatalog"
      required:
      - "products"
      - "total"
    ApplicationCountDto:
      type: "object"
      properties:
        recentlyAdded:
          type: "integer"
          format: "int32"
        inProcess:
          type: "integer"
          format: "int32"
        rejected:
          type: "integer"
          format: "int32"
        hired:
          type: "integer"
          format: "int32"
      required:
      - "hired"
      - "inProcess"
      - "recentlyAdded"
      - "rejected"
    OccupationalFieldDto:
      type: "object"
      properties:
        id:
          type: "integer"
          format: "int32"
          description: "Unique identifier of the occupational field"
          example: 1
        name:
          type: "string"
          description: "Name of the occupational field"
          example: "Software Development"
        parent:
          $ref: "#/components/schemas/OccupationalFieldDto"
          description: "Parent occupational field if this is a subcategory"
    Provider:
      description: "used for invoicing payment and shopping"
      type: "object"
      title: "Provider"
      properties:
        providerId:
          type: "integer"
          format: "int64"
        name:
          type: "string"
      required:
      - "providerId"
      - "name"
    ListResultReviews:
      title: "ListResultReviews"
      type: "object"
      properties:
        data:
          type: "array"
          description: "array that contains the basic data of each review"
          items:
            $ref: "#/components/schemas/ReviewOverview"
        averageRating:
          type: "number"
          format: "double"
          description: "average rating of all of your reviews"
        total:
          type: "integer"
          format: "int32"
          description: "total numbers of reviews with respect to your filter parameters"
        unansweredReviews:
          type: "integer"
          description: "not answered reviews for this context"
        reviewsPerWeek:
          type: "number"
          format: "double"
          description: "reviews per week indicator"
        totalReviews:
          type: "integer"
          format: "int32"
          description: "total number of reviews for this context"
      required:
      - "data"
      - "averageRating"
      - "total"
      - "unansweredReviews"
      - "reviewsPerWeek"
      - "totalReviews"
      x-stoplight:
        id: "c1bfde3e52004"
    SeaResponse:
      title: "SeaResponse"
      x-stoplight:
        id: "5zc2r0ru47pud"
      type: "object"
      properties:
        subscription:
          $ref: "#/components/schemas/Subscription"
        seaId:
          type: "integer"
          format: "int64"
          description: "sea campaign id (in v4 it has been called \"reach enhancement\
            \ subscription id). Use it to modify the campaign (by chaning data fields\
            \ or adding segments)"
      required:
      - "subscription"
      - "seaId"
    WebsiteTemplate:
      title: "WebsiteTemplate"
      x-stoplight:
        id: "ul2uo6twjb54h"
      type: "object"
      properties:
        id:
          type: "integer"
          format: "int32"
          description: "unique template identifier you need to choose when initiating\
            \ a website"
        name:
          type: "string"
          description: "free text identifier of the template"
        settings:
          type: "array"
          description: "generic settings indicating which fields can or have getto\
            \  defined. Send them as key/values in the corresponding website update\
            \ method"
          items:
            $ref: "./markee-api.yaml#/components/schemas/Settings"
      required:
      - "id"
      - "name"
    PriceListData:
      title: "PriceListData"
      x-stoplight:
        id: "ah8m8ruho2yxv"
      type: "object"
      properties:
        features:
          type: "array"
          items:
            $ref: "#/components/schemas/PriceListFeature"
        products:
          type: "array"
          items:
            $ref: "#/components/schemas/PriceListProduct"
    TrialEligibility:
      description: "used to check if a location is eligible for product free trial"
      type: "object"
      title: "TrialEligibility"
      properties:
        locationId:
          deprecated: true
          type: "integer"
          format: "int64"
        spaceId:
          type: "integer"
          format: "int32"
        eligible:
          type: "boolean"
        trialDays:
          type: "integer"
          format: "int32"
      required:
      - "spaceId"
      - "eligible"
    OccupationalFieldDto_Post:
      type: "object"
      properties:
        id:
          type: "integer"
          format: "int32"
          description: "Occupational field ID - auto-generated"
          example: 4
    LastOwnerAnswer:
      title: "LastOwnerAnswer"
      type: "object"
      properties:
        answer:
          type: "string"
          description: "shows the last answer of the owner"
        status:
          type: "string"
          description: "indicates if the comment got synced or not"
      required:
      - "answer"
      - "status"
    LocationTargeting:
      title: "LocationTargeting"
      type: "object"
      properties:
        name:
          type: "string"
        radius:
          type: "integer"
        matchType:
          type: "string"
          enum:
          - "BROAD"
          - "PHRASE"
          - "EXACT"
          - "NEGATIVE"
          - "NEGATIVE_EXACT"
          - "NEGATIVE_PHRASE"
      required:
      - "name"
    InsitesResponse:
      type: "object"
      properties:
        reportId:
          type: "string"
        status:
          type: "string"
    EmploymentTypeDto:
      type: "object"
      properties:
        id:
          type: "integer"
          format: "int32"
          description: "Employment Type ID"
          example: 1
        name:
          type: "string"
          description: "Employment type name"
          example: "FULL_TIME"
    ActionData:
      title: "ActionData"
      type: "object"
      properties:
        http:
          $ref: "#/components/schemas/HttpAction"
        url:
          $ref: "#/components/schemas/UrlAction"
        workflow:
          type: "array"
          items:
            $ref: "#/components/schemas/WorkflowAction"
    JobOfferRequirementDto_Get:
      type: "object"
      properties:
        id:
          type: "integer"
          format: "int32"
          description: "Job offer requirement ID - auto-generated"
          example: 1
        name:
          type: "string"
          description: "Requirement name"
          example: "Programming languages"
        isMandatory:
          type: "boolean"
          description: "Whether requirement is mandatory"
        fieldType:
          type: "string"
          description: "Field type for requirement"
          enum:
          - "TEXT"
          - "BOOLEAN"
          - "NUMBER"
          - "EMAIL"
          - "PHONE"
          - "FILE"
          - "FILE_LIST"
          - "TEXTAREA"
        requirementGroup:
          type: "string"
          description: "Requirement group classification"
          example: "Zusätzliche Anforderungen"
    ProductRequirement:
      title: "ProductRequirement"
      type: "object"
      properties:
        id:
          type: "string"
          description: "identifier of the requirement"
        httpMethod:
          type: "string"
          enum:
          - "GET"
          - "POST"
          - "PUT"
          - "DELETE"
          description: "http method you need to use"
        endpoint:
          type: "string"
          description: "relative path of our api to fill this data"
        docuUrl:
          type: "string"
          description: "if available, url to api documentation"
        description:
          type: "string"
          description: "You may find here some more information what to do"
      required:
      - "id"
    Price:
      title: "Price"
      type: "object"
      properties:
        value:
          type: "number"
          description: "the actual price without taxes"
        vat:
          type: "number"
          description: "an additional tax part"
        total:
          type: "number"
          description: "total price including taxes"
      required:
      - "value"
      - "vat"
      - "total"
    AdvertisementImageField:
      title: "AdvertisementImageField"
      type: "object"
      description: "object that defines the settings of an image field connected to\
        \ a specific adspace type."
      properties:
        name:
          type: "string"
          description: "name of the image field (skyscraper, mobile, bottom, etc.)"
        minWidth:
          type: "integer"
          description: "optional minimum constraint regarding the width of the image\
            \ field"
        minHeight:
          type: "integer"
          description: "optional minimum constraint regarding the height of the image\
            \ field"
        maxWidth:
          type: "integer"
          description: "optional maximum constraint regarding the width of the image\
            \ field"
        maxHeight:
          type: "integer"
          description: "optional maximum constraint regarding the height of the image\
            \ field"
        mandatory:
          type: "boolean"
          description: "property that establishes if the image field needs to be defined\
            \ for the adspace type that is being targeted."
      required:
      - "name"
      - "mandatory"
    EmploymentTypeDto_Post:
      type: "object"
      properties:
        id:
          type: "integer"
          format: "int32"
          description: "Employment Type ID"
          example: 1
    Review:
      title: "Review"
      type: "object"
      x-stoplight:
        id: "6f1639c7ae768"
      properties:
        reviewId:
          type: "integer"
          format: "int64"
          description: "system wise unique review id"
        location:
          $ref: "./markee-api.yaml#/components/schemas/KeyValueLocation"
        createdAt:
          type: "string"
          format: "date-time"
        socialPortal:
          deprecated: true
          type: "string"
          description: "This field is deprecated and will be removed in a future release.\
            \ Please use `portalName` instead."
        portalName:
          type: "string"
        portalAnswerable:
          type: "boolean"
          description: "indicates if the portal  - the review got created at - is\
            \ supporting comments"
        addonAnswerable:
          type: "boolean"
          description: "DEPRECATED, IGNORE THIS FIELD\n"
          deprecated: true
        rating:
          format: "double"
          type: "number"
          description: "rating of the review"
        facebookRecommended:
          type: "boolean"
          description: "in case it's a review from facebook, it is indicating recommendation"
        reviewContent:
          $ref: "#/components/schemas/ReviewContent"
        lastOwnerAnswer:
          deprecated: true
          $ref: "#/components/schemas/LastOwnerAnswer"
        lastOwnerComment:
          $ref: "./markee-api.yaml#/components/schemas/SocialReviewCommentsOverview"
        url:
          type: "string"
          description: "url that points to the review"
        repliable:
          type: "boolean"
          description: "indicates if it is possible by the product definition to create\
            \ a comment to this review. If false, mae sure the location of the review\
            \ has a product ordered that covers the functionality \"ReviewManagement\"\
            . \nThis attribute may be true, but if portalAnswerable is false, you\
            \ still can not comment this review."
      required:
      - "reviewId"
      - "location"
      - "createdAt"
      - "socialPortal"
      - "portalName"
      - "portalAnswerable"
      - "repliable"
    AdvertisementInit:
      title: "AdvertisementInit"
      type: "object"
      description: "Object you need to send to initiate an advertisement banner after\
        \ a product has been ordered that includes Advertisement.\n"
      properties:
        advertisementType:
          type: "string"
          description: "Name of the adspace that you want to target with the advertisemenet\
            \ product. This must be one of the available adspaces\nfor your product\
            \ (Use GET Advertisement Product Adspace Configuration API call to check\
            \ which ones are available to you).\n"
        destinationUrl:
          type: "string"
          description: "Url that the advertisement banner will redirect to\n"
        priority:
          type: "string"
          description: "value used to set the priority of a specific advertisement\
            \ banner\n"
          enum:
          - "VeryLow"
          - "Low"
          - "Normal"
          - "High"
          - "VeryHigh"
        textFields:
          type: "array"
          description: "List of text fields that shall be used for this advertisement\
            \ banner. Check which ones are mandatory to define and their restrictions\n\
            \ if any for the selected advertisementType with GET Advertisement Product\
            \ Adspace Configuration API call.\n"
          items:
            $ref: "#/components/schemas/KeyValueString"
        imageFields:
          type: "array"
          description: "List of image fields that shall be used for this advertisement\
            \ banner. Check which ones are mandatory to define and their restrictions\n\
            \ if any for the selected advertisementType with GET Advertisement Product\
            \ Adspace Configuration API call.\n"
          items:
            $ref: "./markee-api.yaml#/components/schemas/KeyValueImageInsert"
        campaignType:
          type: "string"
          description: "value that sets a campaign as open or closed (once set it\
            \ can\"t be modified)\n"
          enum:
          - "open"
          - "closed"
        page:
          type: "string"
          x-stoplight:
            id: "c1kgjhjzhhhll"
          description: "page you want the ad to be"
        keywordList:
          type: "array"
          items:
            $ref: "#/components/schemas/KeywordTargeting"
        buIdList:
          type: "array"
          items:
            type: "string"
        buAIdList:
          type: "array"
          items:
            type: "string"
        kgsList:
          type: "array"
          items:
            type: "string"
        tIdList:
          type: "array"
          items:
            type: "string"
        locationList:
          type: "array"
          items:
            $ref: "#/components/schemas/LocationTargeting"
        taoIdList:
          type: "array"
          items:
            type: "string"
        ignoreTargeting:
          type: "boolean"
      required:
      - "advertisementType"
      - "destinationUrl"
      - "priority"
      - "campaignType"
      - "page"
    JobOfferDto_Post:
      type: "object"
      properties:
        jobTitle:
          type: "string"
          description: "Job title name"
          example: "Software Engineer"
        openPositions:
          type: "integer"
          format: "int32"
          description: "Number of open positions"
          example: 5
        contactEmail:
          type: "string"
          deprecated: true
          description: "Contact email for applications. Deprecated: this field will\
            \ be removed in a future version."
        employerId:
          type: "integer"
          format: "int32"
          description: "Employer ID reference, same value as company spaceId"
          example: 67890
        externalAppLink:
          type: "string"
          description: "External application link"
          example: "https://techcompany.com/careers/apply/12345"
        jobDescription:
          type: "string"
          description: "Job description text"
          example: "We are looking for a skilled Software Engineer to join our team..."
        languages:
          type: "array"
          description: "Required languages for the position, iso 639 language code"
          example:
          - "en"
          - "de"
          items:
            type: "string"
        employmentTypes:
          type: "array"
          description: "Possible employment types. Obtain the possible ones by a dedicated\
            \ api endpoint"
          items:
            $ref: "#/components/schemas/EmploymentTypeDto_Post"
        minimumDegree:
          type: "string"
          description: "The minimum degree you need to have for this job offer as\
            \ an applicant"
          enum:
          - "DOCTOR_PHD"
          - "MASTER"
          - "BACHELOR"
          - "A_LEVEL"
          - "VOCATIONAL_TRAINING"
          - "OTHER"
          example: "BACHELOR"
        jobIndustries:
          type: "array"
          description: "Job industries - at least one required.Use the dedicated API\
            \ endpoint to retrieve possible industries."
          items:
            $ref: "#/components/schemas/IndustryDto_Post"
          minLength: 1
        jobOccupationalFields:
          type: "array"
          description: "Job occupational fields - optional classification. Use the\
            \ dedicated API endpoint to retrieve possible occupational fields."
          items:
            $ref: "#/components/schemas/OccupationalFieldDto_Post"
        salary:
          $ref: "#/components/schemas/SalaryDto_Post"
          description: "Salary information"
        address:
          $ref: "#/components/schemas/AddressDto_Post"
          description: "Job location address - required with country and city"
        jobOfferRequirements:
          type: "array"
          description: "Job offer requirements"
          items:
            $ref: "#/components/schemas/JobOfferRequirementDto_Post"
          uniqueItems: true
      required:
      - "address"
      - "employerId"
      - "jobDescription"
      - "jobIndustries"
      - "jobTitle"
    SuccessKeyValues:
      title: "SuccessKeyValues"
      type: "object"
      description: "success object that contains flexible key values, being connected\
        \ to the just made api call"
      properties:
        data:
          type: "array"
          items:
            $ref: "#/components/schemas/KeyValueString"
    ReviewOverview:
      title: "ReviewOverview"
      type: "object"
      x-stoplight:
        id: "a1b1e2b58476d"
      properties:
        reviewId:
          type: "integer"
          format: "int64"
          description: "system wise unique review id"
        location:
          $ref: "./markee-api.yaml#/components/schemas/KeyValueLocation"
        createdAt:
          type: "string"
          format: "date-time"
        socialPortal:
          deprecated: true
          type: "string"
          description: "This field is deprecated and will be removed in a future release.\
            \ Please use `portalName` instead."
        portalName:
          type: "string"
        portalAnswerable:
          type: "boolean"
          description: "indicates if the portal  - the review got created at - is\
            \ supporting comments"
        addonAnswerable:
          type: "boolean"
          description: "DEPRECATED, do not use it anymore, use \"repliable\" attribute\
            \ instead"
          deprecated: true
        rating:
          type: "number"
          description: "rating of the review"
          format: "double"
        facebookRecommended:
          type: "boolean"
          description: "in case it's a review from facebook, it is indicating recommendation"
        reviewContent:
          $ref: "#/components/schemas/ReviewContent"
        lastOwnerAnswer:
          deprecated: true
          $ref: "#/components/schemas/LastOwnerAnswer"
        lastOwnerComment:
          $ref: "./markee-api.yaml#/components/schemas/SocialReviewCommentsOverview"
        url:
          type: "string"
          description: "url that points to the review"
        repliable:
          type: "boolean"
          description: "indicates if it is possible by the product definition to create\
            \ a comment to this review. If false, mae sure the location of the review\
            \ has a product ordered that covers the functionality \"ReviewManagement\"\
            . \nThis attribute may be true, but if portalAnswerable is false, you\
            \ still can not comment this review."
      required:
      - "reviewId"
      - "location"
      - "createdAt"
      - "socialPortal"
      - "portalName"
      - "portalAnswerable"
      - "repliable"
    SubscriptionRuntime:
      title: "SubscriptionRuntime"
      type: "object"
      properties:
        renewalCycle:
          type: "string"
          description: "The renewal cycle of the subscription. That means this subscription\
            \ can only be terminated to the end of a cycle.\nWhen the end date is\
            \ reached, the subscription will be automatically renewed for another\
            \ cycle."
        noticePeriod:
          type: "string"
          description: "Defines the amount of time before the end of a renewal cycle\
            \ in which a termination must be initiated.\nIf no action is taken before\
            \ the notice period, the system will continue to treat the subscription\
            \ and automatically renew it for the next renewal cycle."
        renewalDate:
          type: "string"
          format: "date"
          description: "The start of the next renewal cycle. This is the date when\
            \ the subscription will be automatically renewed."
        cancellationDeadline:
          type: "string"
          format: "date"
          description: "The cancellation deadline of the subscription. This is the\
            \ date by which the subscription must be terminated in order to avoid\
            \ automatic renewal."
        nextPossibleEndDate:
          type: "string"
          format: "date"
          description: "The next possible end date of the subscription. This is the\
            \ date when the subscription can be terminated. If not provided, the subscription\
            \ can be cancelled on any date from today onward."
    SalaryDto_Get:
      type: "object"
      properties:
        min:
          type: "number"
          format: "double"
          description: "Minimum salary amount"
          example: 30000
        max:
          type: "number"
          format: "double"
          description: "Maximum salary amount, use this attribute only if you don't\
            \ want to define a range, but just a single value"
          example: 50000
        salaryType:
          type: "string"
          description: "Salary type"
          enum:
          - "YEARLY"
          - "MONTHLY"
          - "HOURLY"
          - "ONE_TIME"
        currency:
          type: "string"
          description: "Currency code"
          example: "EUR"
      required:
      - "currency"
      - "min"
      - "salaryType"
    SubscriptionUpdate:
      title: "SubscriptionUpdate"
      x-stoplight:
        id: "ip25lt27eily6"
      type: "object"
      properties:
        startDate:
          type: "string"
          format: "date"
          description: "Can only be changed if start date has not been reached yet.\n\
            If you want to change it, the startDate must be greater than or equal\
            \ to today.            "
        endDate:
          type: "string"
          description: "Must be greater than or equal to today.\nYou can only update\
            \ it, if endDate has not been reached yet.\nendDate = null indicates no\
            \ end date (unlimited).\nIf nextPossibleEndDate is specified in the [SubscriptionRuntime](#/components/schemas/SubscriptionRuntime)\
            \ object, endDate can only be set to that date."
          format: "date"
        externalId:
          type: "string"
          description: "you can set any id you want to enrich the information of that\
            \ subscription\nThis external id will be considered in the global search."
        note:
          type: "string"
          description: "An additional note you may want to place. Free text field\
            \ that is only used for internal purposes."
      required:
      - "startDate"
    SalaryDto_Post:
      type: "object"
      properties:
        min:
          type: "number"
          format: "double"
          description: "Minimum salary amount"
          example: 30000
        max:
          type: "number"
          format: "double"
          description: "Maximum salary amount, use this attribute only if you don't\
            \ want to define a range, but just a single value"
          example: 50000
        salaryType:
          type: "string"
          description: "Salary type"
          enum:
          - "YEARLY"
          - "MONTHLY"
          - "HOURLY"
          - "ONE_TIME"
        currency:
          type: "string"
          description: "Currency code"
          example: "EUR"
      required:
      - "currency"
      - "min"
      - "salaryType"
    ListTrialEligibility:
      description: "List of TrialEligible objects used to check eligibility for a\
        \ free trial\non the locations"
      type: "object"
      title: "ListTrialEligibility"
      properties:
        data:
          type: "array"
          description: "array of the free trial checks you requested"
          items:
            $ref: "#/components/schemas/TrialEligibility"
        total:
          type: "integer"
          description: "amount of locations checked"
      required:
      - "data"
      - "total"
    TrialPeriod:
      title: "TrialPeriod"
      x-stoplight:
        id: "ptr4yd6aqstmz"
      type: "object"
      properties:
        startDate:
          type: "string"
          x-stoplight:
            id: "0wbq5tg33ljh5"
          description: "begin of trial period"
          format: "date"
        endDate:
          type: "string"
          x-stoplight:
            id: "t3l057uejdn4v"
          format: "date"
          description: "end date of trial period"
      required:
      - "startDate"
      - "endDate"
      description: "information of a trial period for a subscription"
    CoordinateDto_Post:
      type: "object"
      properties:
        latitude:
          type: "number"
          format: "double"
          description: "Latitude coordinate"
          example: 52.52
        longitude:
          type: "number"
          format: "double"
          description: "Longitude coordinate"
          example: 13.405
      required:
      - "latitude"
      - "longitude"
    CallTrackingInit:
      title: "CallTrackingInit"
      x-stoplight:
        id: "7ozlygml73d8j"
      type: "object"
      properties:
        registerPermission:
          type: "boolean"
          description: "allowance to use customer data of the company"
        callTrackingPermission:
          type: "boolean"
          description: "allowance to register call tracking numbers for the company"
      required:
      - "registerPermission"
      - "callTrackingPermission"
    UserAccount:
      title: "UserAccount"
      type: "object"
      properties:
        id:
          type: "integer"
        userName:
          type: "string"
        email:
          type: "string"
        contextId:
          type: "integer"
        contextType:
          type: "string"
          enum:
          - "Location"
          - "Company"
          - "Workspace"
        active:
          type: "boolean"
        position:
          type: "string"
        firstName:
          type: "string"
        lastName:
          type: "string"
        languageCode:
          type: "string"
          enum:
          - "de"
          - "en"
          - "fr"
        url:
          type: "string"
        template:
          type: "integer"
        settings:
          type: "array"
          items:
            $ref: "#/components/schemas/KeyValueString"
        tags:
          type: "array"
          items:
            type: "string"
        salutation:
          type: "string"
        userType:
          type: "string"
          enum:
          - "agency service"
          - "self service"
        profilePicture:
          $ref: "./markee-api.yaml#/components/schemas/Image"
        phone:
          $ref: "./markee-api.yaml#/components/schemas/Phone"
        connectedPaymentProvider:
          type: "array"
          items:
            $ref: "#/components/schemas/ProviderConfig"
        ssoUser:
          type: "boolean"
          description: "if the user profile has been created through a sso or manually"
        cookieConsent:
          $ref: "./markee-api.yaml#/components/schemas/CookieConsent"
      required:
      - "id"
      - "email"
      - "contextId"
      - "contextType"
      - "firstName"
      - "lastName"
      - "languageCode"
      - "userType"
      - "ssoUser"
    KeywordTargeting:
      title: "KeywordTargeting"
      type: "object"
      properties:
        value:
          type: "string"
        matchType:
          type: "string"
          enum:
          - "BROAD"
          - "PHRASE"
          - "EXACT"
          - "NEGATIVE"
          - "NEGATIVE_EXACT"
          - "NEGATIVE_PHRASE"
      required:
      - "value"
    EmploymentTypeListResponse:
      type: "object"
      description: "Response containing a list of employment types and the total count."
      properties:
        employmentTypes:
          type: "array"
          description: "List of employment types"
          items:
            $ref: "#/components/schemas/EmploymentTypeDto"
        total:
          type: "integer"
          format: "int32"
          description: "Total number of employment types"
          example: 42
      required:
      - "employmentTypes"
    ListResultInvoice:
      title: "ListResultInvoice"
      type: "object"
      properties:
        data:
          type: "array"
          items:
            $ref: "#/components/schemas/InvoiceOverview"
        total:
          type: "integer"
      required:
      - "data"
      - "total"
    ListResultSubscription:
      title: "ListResultSubscription"
      x-stoplight:
        id: "ch7ayqjhbtcx6"
      type: "object"
      properties:
        data:
          type: "array"
          description: "list of subscriptions"
          items:
            $ref: "#/components/schemas/Subscription"
        total:
          type: "integer"
          description: "total lenght of data array"
      required:
      - "data"
      - "total"
    IndustryDto_Get:
      type: "object"
      properties:
        id:
          type: "integer"
          format: "int32"
          description: "Industry ID - auto-generated"
          example: 2
        name:
          type: "string"
          description: "Industry name"
          example: "Abfallbewirtschaftung"
          readOnly: true
    IndustryDto_Post:
      type: "object"
      properties:
        id:
          type: "integer"
          format: "int32"
          description: "Industry ID - auto-generated"
          example: 2
    ListResultPortalLocation:
      title: "ListResultPortalLocation"
      type: "object"
      properties:
        data:
          type: "array"
          items:
            $ref: "#/components/schemas/PortalLocation"
        total:
          type: "integer"
    Invoice:
      title: "Invoice"
      type: "object"
      description: ""
      properties:
        invoice:
          type: "array"
          description: "the invoice position  contains details for the products id\
            \ of the invoice and location id that they  belong to and more!"
          items:
            $ref: "#/components/schemas/InvoicePosition"
        subtotal:
          type: "number"
          format: "double"
          description: "total price vat excluded in the price"
        vat:
          type: "number"
          format: "double"
          description: "//TODO Marjol  add description"
        total:
          type: "number"
          format: "double"
          description: "total price vat included in the price"
        vatPercentage:
          type: "number"
          format: "double"
          description: "vat percentage exp: 20% depent on the country of the invoice "
        vatId:
          type: "string"
          description: "not in use yet!!"
    AddressDto_Get:
      type: "object"
      properties:
        country:
          type: "string"
          description: "Country name"
          example: "DE"
        state:
          type: "string"
          description: "State or province"
          example: "Berlin"
        city:
          type: "string"
          description: "City name"
          example: "Berlin"
        street:
          type: "string"
          description: "Street name"
          example: "Alexanderplatz"
        houseNo:
          type: "string"
          description: "House number"
          example: 1
        postcode:
          type: "string"
          description: "Postal code"
          example: 10178
        coordinate:
          $ref: "#/components/schemas/CoordinateDto_Get"
          description: "Geographic coordinates"
        subLocality:
          type: "string"
          description: "Sublocality or district"
          example: "Mitte"
        adminLevels:
          type: "array"
          description: "Administrative levels with OSM IDs"
          items:
            $ref: "#/components/schemas/AdminLevelDto_Get"
          readOnly: true
      required:
      - "city"
      - "country"
    AdvertisementField:
      title: "AdvertisementField"
      x-stoplight:
        id: "ca32295e8ca17"
      type: "object"
      description: "object containing an advertisement type and its settings"
      properties:
        advertisementType:
          type: "string"
          description: "name of the ad type that is targeted"
        textFields:
          type: "array"
          description: "optional list of text fields that are connected to this advertisement\
            \ type."
          items:
            $ref: "#/components/schemas/AdvertisementTextField"
        imageFields:
          type: "array"
          description: "optional list of image fields that are connected to this advertisement\
            \ type."
          items:
            $ref: "#/components/schemas/AdvertisementImageField"
        page:
          type: "string"
          x-stoplight:
            id: "qgqjkqqsohhz4"
          description: "web page the ad will be shown"
        targetingTypes:
          type: "array"
          description: "List of targeting types available for this advertisment type."
          items:
            type: "string"
      required:
      - "advertisementType"
      - "page"
    WorkflowAction:
      title: "WorkflowAction"
      type: "object"
      properties:
        step:
          type: "integer"
          description: "step of the flow"
        description:
          type: "string"
          description: "abstract description of this step"
        apiDocumentation:
          type: "string"
          description: "if available a link to our api documentation how to execute\
            \ this step"
        knowledgeBase:
          type: "string"
          description: "if available a deeper documentation on this step"
      required:
      - "step"
      - "description"
    SeaLocalAdsInit:
      title: "SeaLocalAdsInit"
      x-stoplight:
        id: "qa5hcuy4apaq4"
      type: "object"
      description: "Object you need to send to initiate a sea local ads extension\
        \ after a product has been ordered that includes SEA Local Ads.\n"
      properties:
        budgetIncrease:
          type: "integer"
          description: "If the budget increase has already been configured for your\
            \ product, you won't need to make any additional adjustments.\n\nHowever,\
            \ if it is not predefined, you have the option to increase the budget\
            \ using a specific value. The default value is 0."
        subscriptionId:
          type: "integer"
          format: "int64"
          description: "subscriptionId of the sea campaign"
      required:
      - "subscriptionId"
    JobOfferRequirementDto_Post:
      type: "object"
      properties:
        name:
          type: "string"
          description: "Requirement name"
          example: "Programming languages"
        isMandatory:
          type: "boolean"
          description: "Whether requirement is mandatory"
        fieldType:
          type: "string"
          description: "Field type for requirement"
          enum:
          - "TEXT"
          - "BOOLEAN"
          - "NUMBER"
          - "EMAIL"
          - "PHONE"
          - "FILE"
          - "FILE_LIST"
          - "TEXTAREA"
    CoordinateDto_Put:
      type: "object"
      properties:
        latitude:
          type: "number"
          format: "double"
          description: "Latitude coordinate"
          example: 52.52
        longitude:
          type: "number"
          format: "double"
          description: "Longitude coordinate"
          example: 13.405
      required:
      - "latitude"
      - "longitude"
    EmploymentTypeDto_Put:
      type: "object"
      properties:
        id:
          type: "integer"
          format: "int32"
          description: "Employment Type ID"
          example: 1
    Subscription:
      title: "Subscription"
      type: "object"
      properties:
        id:
          type: "integer"
          description: "system wide unique id of subscription"
          format: "int64"
        productId:
          type: "integer"
          deprecated: true
          description: "id of the product"
          format: "int64"
        subscribedSpace:
          $ref: "#/components/schemas/SpaceOverview"
        locationId:
          type: "integer"
          deprecated: true
          format: "int64"
          description: "location id that is connected to a product"
        instanceId:
          type: "integer"
          description: "instance of the product/location combination"
        locationName:
          type: "string"
          deprecated: true
          format: "int64"
          description: "name of the location"
        productName:
          type: "string"
          deprecated: true
          description: "name of the product in the language of your user account"
        startDate:
          type: "string"
          format: "date"
          description: "date when this connection got created"
        endDate:
          type: "string"
          format: "date"
          description: "end date, null means infinite"
        addonOfSubscription:
          type: "integer"
          format: "int64"
          description: "Indicates the main subscription in case this is an addon subscription"
        cancellable:
          type: "boolean"
          description: "indicates whether your current user has permission to cancel\
            \ this subscription (by setting an end date via an update). Value will\
            \ be given only when requesting subscription list."
        subscriptionBilling:
          $ref: "#/components/schemas/SubscriptionBilling"
          description: "billing information for the subscription"
        status:
          type: "string"
          enum:
          - "PROCESSING"
          - "ACTIVE"
          - "EXPIRING"
          - "FINISHED"
          - "FAILED"
          - "ORDERED"
          description: "current status of subscription:\n\nPROCESSING: The subscription\
            \ is currently getting processed with the third party provider or has\
            \ not yet reached the start date\n\nACTIVE: The setup of the subscription\
            \ was successful, all third party providers are connected\n\nFAILED: The\
            \ complete subscription or parts of it could not get activated, check\
            \ error code for more details\n\nEXPIRING: The subscription cancellation\
            \ is taking place at the moment\n\nORDERED: The subscription got placed,\
            \ but required date is still missing. Check missingData field for more\
            \ information"
        missingRequirements:
          type: "array"
          description: "if there are requirments missing to activate the subscription,\
            \ you find here the information which ones and how you can provide them"
          items:
            $ref: "#/components/schemas/ProductRequirement"
        possibleActions:
          type: "array"
          description: "a list of possible actions you can execute against a subscription"
          items:
            $ref: "#/components/schemas/Action"
        trialPeriod:
          $ref: "#/components/schemas/TrialPeriod"
        runtimeSettings:
          $ref: "#/components/schemas/SubscriptionRuntime"
          description: "Contains runtime settings of the subscription, e.g. renewal\
            \ cycle, notice period, cancellation deadline and possible next end date.\n\
            This is only available for subscriptions that belong to a product that\
            \ supports runtime settings."
      required:
      - "id"
      - "productId"
      - "subscribedSpace"
      - "instanceId"
      - "productName"
      - "startDate"
      - "status"
    KeyValueString:
      title: "KeyValueString"
      type: "object"
      properties:
        key:
          type: "string"
        value:
          type: "string"
      required:
      - "key"
      - "value"
      description: "key value object"
    ListResultWorkspaceContract:
      title: "ListResultWorkspaceContract"
      x-stoplight:
        id: "i7c1pwciv9en5"
      type: "object"
      properties:
        data:
          x-stoplight:
            id: "s870i3rz78szl"
          description: "array of the contracts you requested"
          type: "array"
          items:
            $ref: "#/components/schemas/WorkspaceContractOverview"
        total:
          type: "integer"
          x-stoplight:
            id: "hk3wjoom0rpva"
          description: "amount of available contracts for this filter settings"
      required:
      - "data"
      - "total"
      description: "list result containing workspace contracts"
    CoordinateDto_Get:
      type: "object"
      properties:
        latitude:
          type: "number"
          format: "double"
          description: "Latitude coordinate"
          example: 52.52
        longitude:
          type: "number"
          format: "double"
          description: "Longitude coordinate"
          example: 13.405
      required:
      - "latitude"
      - "longitude"
    BenefitTypeDto:
      type: "object"
      properties:
        id:
          type: "integer"
          format: "int32"
        name:
          type: "string"
      required:
      - "id"
      - "name"
    SuccessPurchase:
      title: "SuccessPurchase"
      type: "object"
      properties:
        transactionId:
          type: "string"
          description: "the transaction id from the payment provider"
        providerConfigurationId:
          type: "integer"
          format: "int64"
          description: "the payment provider configuration id"
        status:
          type: "string"
          enum:
          - "Successful"
          - "Failed"
          - "Waiting"
          description: "status of the purchase when available"
        message:
          type: "string"
          description: "some free message coming from the payment provider"
      required:
      - "status"
    ApplicationDto:
      type: "object"
      properties:
        id:
          type: "string"
        jobOfferId:
          type: "string"
        channel:
          type: "string"
        fullName:
          type: "string"
        email:
          type: "string"
        status:
          type: "string"
        applicationData:
          type: "array"
          items:
            $ref: "#/components/schemas/ApplicationDataItemDto"
        daysInStatus:
          type: "integer"
          format: "int32"
        applicationNote:
          type: "string"
        createdAt:
          type: "string"
        phone:
          type: "string"
      required:
      - "applicationData"
      - "channel"
      - "createdAt"
      - "daysInStatus"
      - "email"
      - "fullName"
      - "id"
      - "jobOfferId"
      - "status"
    CreateInsitesRequest:
      required:
      - "address"
      - "city"
      - "name"
      - "phone"
      - "url"
      - "zip"
      type: "object"
      properties:
        name:
          type: "string"
        phone:
          type: "string"
        address:
          type: "string"
        zip:
          type: "string"
        url:
          type: "string"
        city:
          type: "string"
    ProductPurchase:
      title: "ProductPurchase"
      type: "object"
      description: ""
      properties:
        productId:
          type: "integer"
          format: "int64"
        providerConfigurationId:
          type: "integer"
          format: "int64"
        providerData:
          type: "array"
          description: "provider data for the corresponding payment provider you want\
            \ to use"
          items:
            $ref: "#/components/schemas/KeyValueString"
        locationIds:
          type: "array"
          deprecated: true
          description: "location ids you want to connect the products to when the\
            \ purchase succeeds. The amount of this location ids stays for the amount\
            \ of products you need to pay"
          items:
            type: "integer"
            format: "int64"
        spaceIds:
          type: "array"
          description: "space ids you want to connect the products to when the purchase\
            \ succeeds. The amount of this space ids stays for the amount of products\
            \ you need to pay"
          items:
            type: "integer"
            format: "int32"
        addonOfSubscription:
          type: "integer"
          format: "int64"
          description: "If this subscription is an addon of another subscription,\
            \ you can set the id of the main subscription here.            "
      required:
      - "productId"
    ApplicationNotePatch:
      type: "object"
      properties:
        note:
          type: "string"
      required:
      - "note"
    UnpublishJobOfferRequest_Post:
      type: "object"
      properties:
        jobOfferIds:
          type: "array"
          description: "List of Job Offer Space IDs to publish"
          items:
            type: "integer"
            format: "int32"
      required:
      - "jobOfferIds"
    AssignedProduct:
      title: "AssignedProduct"
      type: "object"
      properties:
        id:
          type: "integer"
          description: "unique identifier"
          format: "int64"
        name:
          description: "array of translated names"
          type: "string"
        description:
          type: "string"
          description: "array of translated descriptions"
        icon:
          type: "string"
          description: "the image url for the product"
        costs:
          $ref: "#/components/schemas/Costs"
        catalogId:
          type: "integer"
          description: "id of catalog the product belongs to"
          format: "int64"
        containsProducts:
          type: "array"
          description: "if the product is a suite, which contains multiple other products\
            \ from this contract, you will get all those ids"
          items:
            type: "integer"
            format: "int64"
        subscription:
          type: "array"
          description: "subscriptions of this product"
          items:
            $ref: "#/components/schemas/Subscription"
        purchaseStatus:
          type: "string"
          enum:
          - "Successful"
          - "Failed"
          - "Waiting"
          description: "status of the purchase when available"
        maxCount:
          type: "integer"
          description: "indicates how often can be connected to locations"
        meta:
          type: "array"
          description: "meta data that contain additional information about this product"
          items:
            $ref: "#/components/schemas/KeyValueString"
      required:
      - "id"
      - "name"
      - "costs"
      - "purchaseStatus"
      - "maxCount"
    BookableSpace:
      title: "BookableSpace"
      type: "object"
      description: "key value, containt an integer as key (e.g. an id) and a value\
        \ (e.g. a name)"
      properties:
        id:
          type: "integer"
          format: "int32"
        name:
          type: "string"
        spaceType:
          type: "string"
          enum:
          - "Location"
          - "Company"
          - "Workspace"
          - "JobOffer"
      required:
      - "id"
      - "name"
      - "spaceType"
    InvoiceOverview:
      title: "InvoiceOverview"
      type: "object"
      description: "//TODO Marjol  add currency "
      properties:
        productId:
          format: "int64"
          type: "array"
          description: "//TODO Marjol  fix spelling, add description"
          items:
            type: "integer"
        invoiceId:
          type: "integer"
          description: ""
        month:
          type: "string"
          description: "//TODO Marjol  fix spelling"
        start:
          type: "string"
          format: "date"
          description: "//TODO Marjol  add description"
        end:
          type: "string"
          format: "date"
          description: "//TODO Marjol  add description"
        totalAmount:
          type: "number"
          description: ""
          format: "double"
        invoiceDate:
          type: "string"
          format: "date"
    PublishJobOfferRequest_Post:
      type: "object"
      properties:
        jobOfferIds:
          type: "array"
          description: "List of Job Offer Space IDs to publish"
          items:
            type: "integer"
            format: "int32"
        internalReference:
          type: "string"
          description: "Internal reference"
      required:
      - "jobOfferIds"
    AddressDto_Put:
      type: "object"
      properties:
        country:
          type: "string"
          description: "Country name"
          example: "DE"
        state:
          type: "string"
          description: "State or province"
          example: "Berlin"
        city:
          type: "string"
          description: "City name"
          example: "Berlin"
        street:
          type: "string"
          description: "Street name"
          example: "Alexanderplatz"
        houseNo:
          type: "string"
          description: "House number"
          example: 1
        postcode:
          type: "string"
          description: "Postal code"
          example: 10178
        coordinate:
          $ref: "#/components/schemas/CoordinateDto_Put"
          description: "Geographic coordinates"
        subLocality:
          type: "string"
          description: "Sublocality or district"
          example: "Mitte"
      required:
      - "city"
      - "country"
    Product:
      description: "a single product created by a contract and offered to his subcontracts\n"
      type: "object"
      title: "Product"
      properties:
        id:
          type: "integer"
          description: "unique identifier"
          format: "int64"
        name:
          description: "translated name depending on your user language"
          type: "string"
        description:
          type: "string"
          description: "translated descriptions, depending on your user language"
        icon:
          type: "string"
          description: "the image url for the product"
        costs:
          $ref: "#/components/schemas/Costs"
        catalogId:
          type: "integer"
          description: "id of catalog the product belongs to"
          format: "int64"
        subscribableSpaceType:
          type: "string"
          description: "the subscribable space type of this product, which indicates\
            \ if it is a location or workspace product\nor a company product. This\
            \ is used to determine the bookable spaces for this product."
          enum:
          - "Location"
          - "Workspace"
          - "Company"
          - "JobOffer"
        bookableLocations:
          type: "array"
          deprecated: true
          description: "shows a list of bookable locations, in case you request it\
            \ for a company contract.\nThis covers only products from the self service\
            \ constellation, start_date = today and no end date."
          items:
            $ref: "./markee-api.yaml#/components/schemas/KeyValueInt"
        bookableSpaces:
          type: "array"
          deprecated: true
          description: "Shows a list of bookable spaces for this product. Depends\
            \ on the subscribable space type of the product.\nThis list shows possible\
            \ spaces that can be booked for this product with start_date = today.\
            \ It reflects only the status from today.\nSubscriptions, that are not\
            \ yet started or already ended, are not included here."
          items:
            $ref: "#/components/schemas/BookableSpace"
        containsProducts:
          type: "array"
          description: "if the product is a suite, which contains multiple other products\
            \ from this contract, you will get all those ids"
          items:
            type: "integer"
            format: "int64"
        meta:
          type: "array"
          description: "meta data of this product"
          items:
            $ref: "#/components/schemas/KeyValueMeta"
        connectedLocations:
          type: "array"
          deprecated: true
          description: "locations that are connected to this product, in case you're\
            \ requesting it for a company contract.\nOnly locations with an active\
            \ subscription runtime (with respect to start and end date) are listed\
            \ here."
          items:
            $ref: "#/components/schemas/Subscription"
        activeSubscriptions:
          type: "array"
          description: "Subscriptions that are active for this product, in case you're\
            \ requesting it for a company contract.\nOnly locations with an active\
            \ subscription runtime (with respect to start and end date) are listed\
            \ here."
          items:
            $ref: "#/components/schemas/Subscription"
        purchaseStatus:
          type: "string"
          enum:
          - "Successful"
          - "Failed"
          - "Waiting"
          description: "if this product is already purchased this indicates the status\
            \ of the buy. null if no purchase happened so far for this contract"
        maxCount:
          type: "integer"
          description: "on company contract level it indicates how often it has been\
            \ purchased\non workspace contract level it indicates, how often it could\
            \ get assigned to sub contractss (e.g. company contract), null if unlimited"
        baseProductTypes:
          type: "array"
          description: "the base products that serve as a foundation for this product"
          items:
            $ref: "#/components/schemas/BaseProductType"
        possibleSubscriptionActions:
          type: "array"
          description: "A list of possible actions you may can execute against subscription\
            \ after a product got purchased or ordered."
          items:
            $ref: "#/components/schemas/Action"
        functionalities:
          type: "array"
          description: "indicates which functionalities are covered by this product"
          items:
            type: "string"
            enum:
            - "ReviewMonitoring"
            - "ReviewManagement"
            - "GoogleBusinessMessages"
            - "ListingDuplicateManagement"
            - "Analytics"
            - "YextForFood"
            - "GBPAutoVerification"
            - "SocialPosts"
            - "ListingPortalManagement"
            - "JobOfferPublishing"
        trialDays:
          type: "integer"
          description: "product trial period days"
        dependencies:
          description: "dependencies to other products"
          $ref: "#/components/schemas/ProductDependency"
        addonOf:
          type: "array"
          description: "if this product is an addon, it indicates to which base products\
            \ it can get added"
          items:
            type: "integer"
            format: "int64"
      required:
      - "id"
      - "name"
      - "costs"
      - "baseProductTypes"
    ListResultContract:
      title: "ListResultContract"
      type: "object"
      description: "list result containing contracts"
      properties:
        data:
          type: "array"
          description: "array of the contracts you requested"
          items:
            $ref: "#/components/schemas/ContractOverview"
        total:
          type: "integer"
          description: "amount of available contracts for this filter settings"
      required:
      - "data"
      - "total"
    PortalStatus:
      title: "PortalStatus"
      type: "object"
      properties:
        status:
          type: "string"
          enum:
          - "WAITING_ON_PROVIDER"
          - "WAITING_ON_CUSTOMER"
          - "WAITING_ON_PUBLISHER"
          - "LIVE"
          - "UNAVAILABLE"
          - "OPTED_OUT"
          description: "indicates the current status at the corresponding portal.\n\
            WAITING_ON_PROVIDER: the data are processed by the 3rd party system that\
            \ offers the listing\nWAITING_ON_CUSTOMER: some action needs to get executed\
            \ of the customer/ business owner. See available actions for more information\n\
            WAITING_ON_PUBLISHER: the publisher/portal is processing the data\nLIVE:\
            \ the data are synced and live at the portal\nUNAVAILABLE: the portal\
            \ did not accept the data, see errorCode and errorMessage for more information\n\
            OPTED_OUT: the portal has been activeley disabled by the user"
        errorCode:
          type: "integer"
          description: "unique portal error code if needed"
        errorMessage:
          type: "string"
          description: "error message describing a possible issue"
      required:
      - "status"
    Success:
      title: "Success"
      type: "object"
      properties:
        id:
          type: "integer"
          format: "int64"
    ListResultSuccess:
      title: "ListResultSuccess"
      type: "object"
      properties:
        ids:
          type: "array"
          items:
            type: "integer"
            format: "int64"
        total:
          type: "integer"
      required:
      - "ids"
      - "total"
    LocationInsert:
      title: "LocationInsert"
      type: "object"
      properties:
        name:
          type: "string"
        categories:
          type: "array"
          items:
            $ref: "./markee-api.yaml#/components/schemas/LocationCategory"
        address:
          $ref: "./markee-api.yaml#/components/schemas/AddressInsert"
        mainPhone:
          $ref: "./markee-api.yaml#/components/schemas/MainPhoneInsert"
        claimId:
          type: "string"
        pinVerification:
          type: "string"
        email:
          type: "string"
      required:
      - "name"
    Portal:
      title: "Portal"
      type: "object"
      properties:
        portalId:
          type: "string"
          description: "unique identifier of protal"
        name:
          type: "string"
          description: "pretty name of portal"
        status:
          $ref: "#/components/schemas/PortalStatus"
        availableActions:
          type: "array"
          items:
            $ref: "#/components/schemas/Action"
        parentPortalId:
          type: "string"
          description: "in case the portal is synced via a parental portal, the identifier\
            \ is given here"
        imageUrl:
          type: "string"
          description: "the logo of the portal"
        url:
          type: "string"
          description: "the landing page of the portal to which the data have been\
            \ synced"
        product:
          $ref: "#/components/schemas/ProductOverview"
        locationId:
          type: "integer"
          description: "unique location id of markee"
          format: "int64"
        provider:
          type: "string"
      required:
      - "portalId"
      - "name"
      - "status"
      - "product"
      - "locationId"
      - "provider"
    UrlAction:
      title: "UrlAction"
      type: "object"
      properties:
        url:
          type: "string"
          description: "the url which you may open or copy"
      required:
      - "url"
    ProductOverview:
      title: "ProductOverview"
      type: "object"
      description: "This class is offering minimal data of the product.\nTo get a\
        \ better insght get the product."
      properties:
        id:
          type: "integer"
          format: "int64"
        catalogId:
          type: "integer"
          format: "int64"
      required:
      - "id"
    PriceListProduct:
      type: "object"
      x-examples:
        example-1:
          name: "Free"
          weight: 1
          catalog_id: 1025
          product_id: 1876
          highlighted: false
          cost_per_item: 0
          highlight_text: null
          highlight_color: null
      properties:
        name:
          type: "string"
        weight:
          type: "integer"
        catalog_id:
          type: "integer"
        product_id:
          type: "integer"
        highlighted:
          type: "boolean"
        cost_per_item:
          type: "integer"
        highlight_text:
          type: "string"
          nullable: true
        highlight_color:
          type: "string"
          nullable: true
    InvoicePosition:
      title: "InvoicePosition"
      type: "object"
      properties:
        product:
          $ref: "./markee-api.yaml#/components/schemas/KeyValueInt"
        location:
          $ref: "./markee-api.yaml#/components/schemas/KeyValueInt"
        amount:
          type: "number"
          format: "double"
        start:
          type: "string"
          format: "date"
        end:
          type: "string"
          format: "date"
      description: "details information on the invoice producs "
    JobOfferDto_Delete:
      type: "object"
    OccupationalFieldDto_Put:
      type: "object"
      properties:
        id:
          type: "integer"
          format: "int32"
          description: "Occupational field ID - auto-generated"
          example: 4
    AddressDto_Post:
      type: "object"
      properties:
        country:
          type: "string"
          description: "Country name"
          example: "DE"
        state:
          type: "string"
          description: "State or province"
          example: "Berlin"
        city:
          type: "string"
          description: "City name"
          example: "Berlin"
        street:
          type: "string"
          description: "Street name"
          example: "Alexanderplatz"
        houseNo:
          type: "string"
          description: "House number"
          example: 1
        postcode:
          type: "string"
          description: "Postal code"
          example: 10178
        coordinate:
          $ref: "#/components/schemas/CoordinateDto_Post"
          description: "Geographic coordinates"
        subLocality:
          type: "string"
          description: "Sublocality or district"
          example: "Mitte"
      required:
      - "city"
      - "country"
    SalaryDto_Put:
      type: "object"
      properties:
        min:
          type: "number"
          format: "double"
          description: "Minimum salary amount"
          example: 30000
        max:
          type: "number"
          format: "double"
          description: "Maximum salary amount, use this attribute only if you don't\
            \ want to define a range, but just a single value"
          example: 50000
        salaryType:
          type: "string"
          description: "Salary type"
          enum:
          - "YEARLY"
          - "MONTHLY"
          - "HOURLY"
          - "ONE_TIME"
        currency:
          type: "string"
          description: "Currency code"
          example: "EUR"
      required:
      - "currency"
      - "min"
      - "salaryType"
    JobOfferDto_Get:
      type: "object"
      properties:
        jobOfferId:
          type: "integer"
          format: "int32"
          description: "Space ID - auto-generated, not required for POST"
          example: 12345
        status:
          type: "string"
          description: "Job offer status"
          enum:
          - "ACTIVE"
          - "INACTIVE"
          example: "ACTIVE"
        jobTitle:
          type: "string"
          description: "Job title name"
          example: "Software Engineer"
        createdAt:
          type: "string"
          format: "date-time"
          description: "Creation timestamp - auto-generated"
          example: "2024-01-01T12:00:00Z"
        lastUpdate:
          type: "string"
          format: "date-time"
          description: "Modified timestamp - auto-generated"
          example: "2024-01-02T15:30:00Z"
        openPositions:
          type: "integer"
          format: "int32"
          description: "Number of open positions"
          example: 5
        contactEmail:
          type: "string"
          deprecated: true
          description: "Contact email for applications. Deprecated: this field will\
            \ be removed in a future version."
        employerId:
          type: "integer"
          format: "int32"
          description: "Employer ID reference, same value as company spaceId"
          example: 67890
        employerName:
          type: "string"
          description: "Employer name - auto-populated from employer data"
          example: "Tech Company Inc."
        employerSlug:
          type: "string"
          description: "Employer slug - auto-populated from employer data"
          example: "tech-company-inc"
        externalAppLink:
          type: "string"
          description: "External application link"
          example: "https://techcompany.com/careers/apply/12345"
        jobDescription:
          type: "string"
          description: "Job description text"
          example: "We are looking for a skilled Software Engineer to join our team..."
        landingPageUrl:
          type: "string"
          description: "Job landing page url"
          example: "https://techcompany.com/careers/job-offer/12345"
        views:
          type: "integer"
          format: "int64"
          description: "Job offer total view count"
          example: 150
        publishedDate:
          type: "string"
          format: "date-time"
          description: "Job publishing date, will be null if job offer is not being\
            \ published"
          example: "2024-01-03T10:00:00Z"
        languages:
          type: "array"
          description: "Required languages for the position, iso 639 language code"
          example:
          - "en"
          - "de"
          items:
            type: "string"
        employmentTypes:
          type: "array"
          description: "Possible employment types. Obtain the possible ones by a dedicated\
            \ api endpoint"
          items:
            $ref: "#/components/schemas/EmploymentTypeDto_Get"
        minimumDegree:
          type: "string"
          description: "The minimum degree you need to have for this job offer as\
            \ an applicant"
          enum:
          - "DOCTOR_PHD"
          - "MASTER"
          - "BACHELOR"
          - "A_LEVEL"
          - "VOCATIONAL_TRAINING"
          - "OTHER"
          example: "BACHELOR"
        jobIndustries:
          type: "array"
          description: "Job industries - at least one required.Use the dedicated API\
            \ endpoint to retrieve possible industries."
          items:
            $ref: "#/components/schemas/IndustryDto_Get"
          minLength: 1
        jobOccupationalFields:
          type: "array"
          description: "Job occupational fields - optional classification. Use the\
            \ dedicated API endpoint to retrieve possible occupational fields."
          items:
            $ref: "#/components/schemas/OccupationalFieldDto_Get"
        salary:
          $ref: "#/components/schemas/SalaryDto_Get"
          description: "Salary information"
        address:
          $ref: "#/components/schemas/AddressDto_Get"
          description: "Job location address - required with country and city"
        jobOfferRequirements:
          type: "array"
          description: "Job offer requirements"
          items:
            $ref: "#/components/schemas/JobOfferRequirementDto_Get"
          uniqueItems: true
      required:
      - "address"
      - "employerId"
      - "jobDescription"
      - "jobIndustries"
      - "jobTitle"
    ReviewContent:
      title: "ReviewContent"
      type: "object"
      properties:
        content:
          type: "string"
          description: "by author created text of the review"
        author:
          type: "string"
          description: "name of the person that created the review"
    WebsiteConfiguration:
      title: "WebsiteConfiguration"
      x-stoplight:
        id: "mf0xhvif3bnd6"
      type: "object"
      properties:
        domainType:
          type: "string"
          description: "indicates which domain type got pre-configured. \ndomainType=domain:\
            \ you can choose the domain for your website\ndomainType=subDomain: you\
            \ can choose only the subdomain of a preconfigured domain, which is shown\
            \ in the corresponding attribute\n"
        preConfiguredDomain:
          type: "string"
          description: "domain that is available to host sub domains"
        templates:
          type: "array"
          description: "availalbe templates for this product"
          items:
            $ref: "#/components/schemas/WebsiteTemplate"
      required:
      - "domainType"
    Action:
      title: "Action"
      type: "object"
      description: "An action (e.g. for a cetain  portal or product) you may can execute.\n\
        Note: The action body contains exact one data set: either http, url or workfow\
        \ action.\nYou can check which one is defined via actionTypoe value."
      x-stoplight:
        id: "17e6c3d823e2a"
      properties:
        id:
          type: "string"
          description: "unique identifier of this action"
        name:
          type: "string"
          description: "multi lingual name of action, depends on your language setting\
            \ of your user"
        action:
          $ref: "#/components/schemas/ActionData"
        actionType:
          type: "string"
          description: "determines the action type you can execute:\n- HTTP: you will\
            \ get a list of http methods you can execute against our api, including\
            \ the needed bodies and query parameters\n- URL: provides an url you may\
            \ want to call or provide to an end customer\n- WORFKLOW: provides a list\
            \ of steps you may need to execute. Those may contain manual steps you\
            \ can not automate (e.g. certain communication with end customer first)"
          enum:
          - "HTTP"
          - "URL"
          - "WORKFLOW"
      required:
      - "id"
      - "name"
      - "action"
      - "actionType"
    ListResultAdvertisementFields:
      title: "ListResultAdvertisementFields"
      type: "object"
      description: "Object containing a list of available adspaces with their corresponding\
        \ field settings and constraints, as well as the total amount of available\
        \ adspaces."
      properties:
        data:
          type: "array"
          description: "list of all the available adspaces for the product, with all\
            \ their settings."
          items:
            $ref: "#/components/schemas/AdvertisementField"
        total:
          type: "integer"
          description: "number of available adspaces for the product."
      required:
      - "data"
      - "total"
    AdvertisementTextField:
      title: "AdvertisementTextField"
      type: "object"
      description: "object that defines the settings of a text field connected to\
        \ a specific adspace type."
      properties:
        fieldType:
          type: "string"
          description: "the input type of text field"
        name:
          type: "string"
          description: "name of the text field (description, title, display url, etc.)"
        minValue:
          type: "integer"
          description: "optional minimum constraint regarding the text field character\
            \ count"
        maxValue:
          type: "integer"
          description: "optional maximum constraint regarding the text field character\
            \ count"
        mandatory:
          type: "boolean"
          description: "property that establishes if the text field needs to be defined\
            \ for the adspace type that is being targeted."
      required:
      - "fieldType"
      - "name"
      - "mandatory"
    WebsiteInit:
      title: "WebsiteInit"
      type: "object"
      description: "Object you need to send to initiate a website after a product\
        \ has been ordered that include Website.\n"
      properties:
        templateId:
          type: "integer"
          description: "the template you want to use for this website. Which ones\
            \ are available you can get via endpoint /api/v5/presence/{productId}/website/configuration"
          format: "int32"
        domain:
          type: "string"
          description: "in case you deliver data to a website product of type \"domain\"\
            , you need to define the domain the website shall get hosted under. Leave\
            \ this field empty if your type is \"sub-domain\".\nThe type you can identify\
            \ with the endpoint:\n/v5/presence/{productId}/website/configuration"
        subDomain:
          type: "string"
          description: "in case you deliver data to a website product of type \"sub-domain\"\
            , you need to define the sub-domain the website shall get hosted under.\
            \ Leave this field empty if your type is \"domain\".\nThe type you can\
            \ identify with the endpoint:\n/v5/presence/{productId}/website/configuration\n\
            \nYou also see the pre-configured domain the website will be hosted with\
            \ the sub-domain"
      required:
      - "templateId"
    JobOfferRequirementDto_Put:
      type: "object"
      properties:
        id:
          type: "integer"
          format: "int32"
          description: "Job offer requirement ID - auto-generated"
          example: 1
        name:
          type: "string"
          description: "Requirement name"
          example: "Programming languages"
        isMandatory:
          type: "boolean"
          description: "Whether requirement is mandatory"
        fieldType:
          type: "string"
          description: "Field type for requirement"
          enum:
          - "TEXT"
          - "BOOLEAN"
          - "NUMBER"
          - "EMAIL"
          - "PHONE"
          - "FILE"
          - "FILE_LIST"
          - "TEXTAREA"
    PaymentMethod:
      title: "PaymentMethod"
      type: "object"
      properties:
        card:
          $ref: "#/components/schemas/CreditCard"
    SubscriptionAction:
      title: "SubscriptionAction"
      x-stoplight:
        id: "fnrpxqsksx4zf"
      type: "object"
      properties:
        action:
          type: "string"
          description: "unique identifier for an action you can execute against a\
            \ subscription"
      required:
      - "action"
    SeaInit:
      title: "SeaInit"
      x-stoplight:
        id: "ghx5rlli5uvle"
      type: "object"
      description: "Object you need to send to initiate a sea campaign after a product\
        \ has been ordered that includes SEA.\n"
      properties:
        destinationUrl:
          type: "string"
          description: "Url promoted by the campaign. Must be a valid url."
        displayUrl:
          type: "string"
          description: "Url that is shown instead of the destination url, should be\
            \ of the same domain though"
        name:
          type: "string"
          description: "customizable name"
        radius:
          type: "integer"
          format: "int32"
          description: "radius around locations address in which the initial segment\
            \ of the campaign will be promoted"
        categoryTaxonomyId:
          type: "integer"
          format: "int32"
          description: "in case you want to use a predefined category taxonomy for\
            \ your initial segment, pass the id"
        customSetting:
          $ref: "./markee-api.yaml#/components/schemas/CustomSegmentSetting"
        excludedLocations:
          type: "array"
          description: "Use excludedLocations to remove location targetings from the\
            \ defined radius."
          items:
            $ref: "#/components/schemas/KeyValueString"
        includedLocations:
          type: "array"
          description: "Use includedLocations to add location targetings in addition\
            \ to the ones in the radius."
          items:
            $ref: "#/components/schemas/KeyValueString"
        budgetTarget:
          type: "integer"
          format: "int32"
          description: "In case there is a fixed definition in the product settings\
            \ this paramter is not used. Otherwise you have to define a budget"
        budgetTargetType:
          type: "string"
          enum:
          - "Call"
          - "Click"
          - "Interactions"
          - "Euro"
          description: "Choose \"Euro\" for sea budgets, in case it has not been defined\
            \ on product level"
      required:
      - "destinationUrl"
      - "name"
security:
- oauth2: []
- basicAuth: []
tags:
- name: "product"
- name: "contract"
- name: "user"
- name: "company"
- name: "location"
- name: "phone"
- name: "billing"
- name: "listing"
- name: "review"
- name: "posts"
- name: "sea"
- name: "website"
- name: "statistic"
- name: "calltracking"
- name: "advertisement"
- name: "portal"
- name: "job-offer"
- name: "recruitment-meta"
- name: "employer"
- name: "insites"
x-tagGroups:
- name: "Product Management"
  tags:
  - "product"
  - "contract"
  - "billing"
- name: "User Management"
  tags:
  - "user"
- name: "Content"
  tags:
  - "company"
  - "location"
  - "phone"
- name: "Analytics"
  tags:
  - "statistic"
- name: "Listing"
  tags:
  - "listing"
  - "portal"
- name: "Reputation"
  tags:
  - "review"
  - "posts"
- name: "Reach"
  tags:
  - "sea"
- name: "Presence"
  tags:
  - "website"
- name: "CallTracking"
  tags:
  - "calltracking"
- name: "Advertisement"
  tags:
  - "advertisement"
- name: "Recruitment"
  tags:
  - "job-offer"
  - "recruitment-meta"
  - "employer"
  - "portal"
- name: "Quality Reporting"
  tags:
  - "insites"
