All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.zenwave360.sdk.resources.asyncapi.v2.asyncapi-circular-refs.yml Maven / Gradle / Ivy

The newest version!
asyncapi: "2.0.0"
info:
  title: Product operations
  version: "0.1.0"

defaultContentType: application/json

channels:
  createProductNotification:
    subscribe:
      summary: Create a new Product (Async Command)
      operationId: doCreateProduct
      message:
        $ref: "#/components/messages/createProductMsg"
      bindings:
        kafka:
          bindingVersion: "latest"

components:
  messages:
    createProductMsg:
      name: createProductMsg
      title: Create product message
      summary: Requred info to create a product in a marketplace
      contentType: application/json
      headers:
        properties:
          messageType:
            type: string
            enum:
              - create-product
          destinationSystem:
            type: string
            enum:
              - MPS
              - BLINK
          brandId:
            type: number
            description: "Brand ID according masters, eg: 14 Zara Home, 18 Uterque, 1 Zara..."
      payload:
        $ref: "#/components/schemas/CreateProductPayload"

  schemas:
    CreateProductPayload:
      type: object
      properties:
        storeId:
          type: integer
          format: int64
        product:
          $ref: "#/components/schemas/ProductLocaleMsg"
    ProductLocaleMsg:
      type: object
      properties:
        productCode:
          type: string
        productName:
          type: array
          items:
            $ref: "#/components/schemas/ProductLocaleNameMsg"
        productDescription:
          type: array
          items:
            $ref: "#/components/schemas/ProductLocaleDescriptionMsg"
        productLongDescription:
          type: array
          items:
            $ref: "#/components/schemas/ProductLocaleDescriptionMsg"
        categoryName:
          type: string
        productCategories:
          type: array
          items:
            type: string
        productType:
          type: integer
        subBrandCode:
          type: string
        sellerPoint:
          type: string
        productMaterialProperties:
          type: array
          items:
            $ref: "#/components/schemas/PropertiesLocaleMsg"
        productProperties:
          type: array
          items:
            $ref: "#/components/schemas/PropertiesLocaleMsg"
        productSkus:
          type: array
          items:
            $ref: "#/components/schemas/ProductLocaleSkuMsg"
        productImages:
          type: array
          items:
            $ref: "#/components/schemas/ImageMsg"
        productSellerCategories:
          type: array
          items:
            $ref: "#/components/schemas/ProductSellerCategoriesLocaleMsg"
        productCustomSellerCategories:
          type: array
          items:
            $ref: "#/components/schemas/ProductCustomSellerCategoriesLocaleMsg"
        descLocaleModules:
          type: array
          items:
            $ref: "#/components/schemas/ModuleDescriptionLocaleMsg"
        relatedLocaleColors:
          type: array
          items:
            $ref: "#/components/schemas/ColorsRelatedLocaleMsg"
        wirelessDescModules:
          type: array
          items:
            $ref: "#/components/schemas/WirelessModuleDescriptionMsg"

    ProductLocaleNameMsg:
      type: object
      properties:
        locale:
          type: string
        name:
          type: string

    ProductLocaleDescriptionMsg:
      type: object
      properties:
        locale:
          type: string
        description:
          type: string

    PropertiesLocaleMsg:
      type: object
      properties:
        locale:
          type: array
          items:
            type: string
        propertyNames:
          type: array
          items:
            type: string
        properties:
          type: array
          items:
            $ref: "#/components/schemas/PropertyMsg"

    PropertyMsg:
      type: object
      properties:
        propertyId:
          type: string
        propertyName:
          type: string
        propertyDef:
          type: string
          enum:
            - item
            - product
        propertyType:
          type: string
          enum:
            - input
            - multiInput
            - multiCheck
            - singleCheck
            - complex
            - multiComplex
            - label
        innerProperties:
          type: array
          items:
            type: object
            $ref: "#/components/schemas/PropertyMsg"
        propertyRules:
          type: array
          items:
            $ref: "#/components/schemas/PropertyRuleMsg"
        propertyOptions:
          type: array
          items:
            $ref: "#/components/schemas/PropertyOptionMsg"
        propertyValues:
          type: array
          items:
            type: string
        propertyDefaultValue:
          type: string
        propertyMultipleDefaultValues:
          type: object
          properties:
            defaultComplexValues:
              type: array
              items:
                $ref: "#/components/schemas/FieldMsg"
            defaultMultiComplexValues:
              type: array
              items:
                $ref: "#/components/schemas/DefaultMultiComplexFieldMsg"
            defaultValues:
              type: array
              items:
                type: string

    PropertyRuleMsg:
      type: object
      properties:
        ruleName:
          type: string
        ruleType:
          type: string
          enum:
            - maxLengthRule
            - minLengthRule
            - maxValueRule
            - minValueRule
            - maxInputNumRule
            - minInputNumRule
            - valueTypeRule
            - requiredRule
            - disableRule
            - maxDecimalDigitsRule
            - minDecimalDigitsRule
            - regexRule
            - setRule
            - tipRule
            - devTipRule
            - readOnlyRule
            - maxTargetSizeRule
            - minTargetSizeRule
            - maxImageSizeRule
            - minImageSizeRule
        ruleValue:
          type: string
        exProperty:
          type: string
        dependencyGroup:
          type: object
          properties:
            dependencyOperator:
              type: string
              enum:
                - and
                - or
            dependencyList:
              type: array
              items:
                $ref: "#/components/schemas/PropertyDependencyMsg"

    PropertyDependencyMsg:
      type: object
      properties:
        dependantPropertyId:
          type: string
        dependencySymbol:
          type: string
          enum:
            - gt
            - ge
            - included_in_options
            - is_null
            - lt
            - not_contains
            - contains
            - distinct
            - not_included_in_options
            - eq
        dependencyValue:
          type: string

    PropertyOptionMsg:
      type: object
      properties:
        propertyOptionName:
          type: string
        propertyOptionValue:
          type: string

    FieldMsg:
      type: object
      properties:
        propertyId:
          type: string
        propertyName:
          type: string
        propertyType:
          type: string
        complexFields:
          type: array
          items:
            $ref: "#/components/schemas/ComplexFieldMsg"
        values:
          type: array
          items:
            type: string
        value:
          type: string

    ComplexFieldMsg:
      type: object
      properties:
        fields:
          type: array
          items:
            type: object
            #$ref: "#/components/schemas/FieldMsg" # CIRCULAR

    DefaultMultiComplexFieldMsg:
      type: object
      properties:
        defaultValues:
          type: array
          items:
            type: object
            #$ref: "#/components/schemas/FieldMsg" # CIRCULAR

    ProductLocaleSkuMsg:
      type: object
      properties:
        skuCode:
          type: string
        twinnedExcluded:
          type: string
        twinnedSkus:
          type: array
          items:
            type: string
        relatedSkus:
          type: array
          items:
            type: string
        colorCode:
          type: string
        sizeCode:
          type: string
        storeExclusions:
          type: array
          items:
            type: integer
            format: int64
        skuProperties:
          type: array
          items:
            $ref: "#/components/schemas/PropertiesLocaleMsg"

    ImageMsg:
      type: object
      properties:
        imageURL:
          type: string
        isMain:
          type: boolean
        isColor:
          type: boolean
        isVertical:
          type: boolean
        colorCode:
          type: string
        order:
          type: integer
        forceUpdate:
          type: boolean
        isBackground:
          type: boolean

    ProductSellerCategoriesLocaleMsg:
      type: object
      properties:
        locale:
          type: string
        sellerCategories:
          type: array
          items:
            type: string

    ProductCustomSellerCategoriesLocaleMsg:
      type: object
      properties:
        locale:
          type: string
        customSellerCategories:
          type: array
          items:
            type: string

    ModuleDescriptionLocaleMsg:
      type: object
      properties:
        locale:
          type: string
        descModules:
          type: array
          items:
            $ref: "#/components/schemas/ModuleDescriptionMsg"

    ModuleDescriptionMsg:
      type: object
      properties:
        moduleDescriptionId:
          type: string
        moduleName:
          type: string
        required:
          type: boolean
        content:
          type: string

    ColorsRelatedLocaleMsg:
      type: object
      properties:
        locale:
          type: string
        colorsRelated:
          type: array
          items:
            $ref: "#/components/schemas/ColorRelatedMsg"

    ColorRelatedMsg:
      type: object
      properties:
        relatedProductCode:
          type: string
        content:
          type: string

    WirelessModuleDescriptionMsg:
      type: object
      properties:
        moduleDescriptionId:
          type: string
        moduleName:
          type: string
        content:
          type: array
          items:
            $ref: "#/components/schemas/WirelessModuleContentMsg"

    WirelessModuleContentMsg:
      type: object
      properties:
        imagen:
          type: string
        texto:
          type: string
        link:
          type: string




© 2015 - 2024 Weber Informatics LLC | Privacy Policy