{
  "api": {
    "TopLevel": {
      "XML": {
        "properties": {
          "[name: string]": {
            "name": "[name: string]",
            "class": {
              "name": "any"
            },
            "static": false,
            "readonly": false,
            "description": "Returns the value associated with the key or null",
            "deprecated": 0
          }
        }
      }
    },
    "dw": {
      "catalog": {
        "ProductSearchRefinements": {
          "properties": {
            "allRefinementDefinitions": {
              "name": "allRefinementDefinitions",
              "class": {
                "name": "Collection"
              },
              "static": false,
              "readonly": true,
              "description": "A sorted list of refinement definitions that are appropriate for\n the deepest common category (or deepest common folder) of the search\n result. The method concatenates the sorted refinement definitions per\n category starting at the root category until reaching the deepest common\n category.\n\n The method does not filter out refinement definitions that do\n not provide values for the current search result and can therefore also\n be used on empty search results.",
              "deprecated": false,
              "type": "property"
            },
            "refinementDefinitions": {
              "name": "refinementDefinitions",
              "class": {
                "name": "Collection"
              },
              "static": false,
              "readonly": true,
              "description": "A sorted list of refinement definitions that are appropriate for\n the deepest common category (or deepest common folder) of the search\n result. The method concatenates the sorted refinement definitions per category\n starting at the root category until reaching the deepest common category.\n\n The method also filters out refinement definitions that do not provide\n any values for the current search result.",
              "deprecated": false,
              "type": "property"
            }
          },
          "methods": {
            "getAllRefinementDefinitions": {
              "name": "getAllRefinementDefinitions",
              "args": [],
              "class": {
                "name": "Collection",
                "description": "A sorted list of refinement definitions appropriate for the search result (based on its deepest common category)"
              },
              "description": "Returns a sorted list of refinement definitions that are appropriate for\n the deepest common category (or deepest common folder) of the search\n result. The method concatenates the sorted refinement definitions per\n category starting at the root category until reaching the deepest common\n category.\n\n The method does not filter out refinement definitions that do\n not provide values for the current search result and can therefore also\n be used on empty search results.",
              "deprecated": false
            },
            "getRefinementDefinitions": {
              "name": "getRefinementDefinitions",
              "args": [],
              "class": {
                "name": "Collection",
                "description": "A sorted list of refinement definitions appropriate for the search result (based on its deepest common category)"
              },
              "description": "Returns a sorted list of refinement definitions that are appropriate for\n the deepest common category (or deepest common folder) of the search\n result. The method concatenates the sorted refinement definitions per category\n starting at the root category until reaching the deepest common category.\n\n The method also filters out refinement definitions that do not provide\n any values for the current search result.",
              "deprecated": false
            }
          }
        },
        "SearchRefinements": {
          "methods": {
            "getAllRefinementValues": null,
            "getAllRefinementValues0": null,
            "getRefinementValues": null
          }
        },
        "Variant": {
          "methods": {
            "getRecommendations": null
          }
        },
        "VariationGroup": {
          "methods": {
            "getRecommendations": null
          }
        }
      },
      "content": {
        "ContentSearchRefinements": {
          "properties": {
            "allRefinementDefinitions": {
              "name": "allRefinementDefinitions",
              "class": {
                "name": "Collection"
              },
              "static": false,
              "readonly": true,
              "description": "A sorted list of refinement definitions that are appropriate for\n the deepest common category (or deepest common folder) of the search\n result. The method concatenates the sorted refinement definitions per\n category starting at the root category until reaching the deepest common\n category.\n\n The method does not filter out refinement definitions that do\n not provide values for the current search result and can therefore also\n be used on empty search results.",
              "deprecated": false,
              "type": "property"
            },
            "refinementDefinitions": {
              "name": "refinementDefinitions",
              "class": {
                "name": "Collection"
              },
              "static": false,
              "readonly": true,
              "description": "A sorted list of refinement definitions that are appropriate for\n the deepest common category (or deepest common folder) of the search\n result. The method concatenates the sorted refinement definitions per category\n starting at the root category until reaching the deepest common category.\n\n The method also filters out refinement definitions that do not provide\n any values for the current search result.",
              "deprecated": false,
              "type": "property"
            }
          },
          "methods": {
            "getAllRefinementDefinitions": {
              "name": "getAllRefinementDefinitions",
              "args": [],
              "class": {
                "name": "Collection",
                "description": "A sorted list of refinement definitions appropriate for the search result (based on its deepest common category)"
              },
              "description": "Returns a sorted list of refinement definitions that are appropriate for\n the deepest common category (or deepest common folder) of the search\n result. The method concatenates the sorted refinement definitions per\n category starting at the root category until reaching the deepest common\n category.\n\n The method does not filter out refinement definitions that do\n not provide values for the current search result and can therefore also\n be used on empty search results.",
              "deprecated": false
            },
            "getRefinementDefinitions": {
              "name": "getRefinementDefinitions",
              "args": [],
              "class": {
                "name": "Collection",
                "description": "A sorted list of refinement definitions appropriate for the search result (based on its deepest common category)"
              },
              "description": "Returns a sorted list of refinement definitions that are appropriate for\n the deepest common category (or deepest common folder) of the search\n result. The method concatenates the sorted refinement definitions per category\n starting at the root category until reaching the deepest common category.\n\n The method also filters out refinement definitions that do not provide\n any values for the current search result.",
              "deprecated": false
            }
          }
        }
      },
      "net": {
        "Mail": {
          "description": "This class is used to send an email with either plain text or MimeEncodedText content.\n Recipient data (from, to, cc, bcc) and subject are specified\n using setter methods. When the <a href=\"class_dw_net_Mail.html#dw_net_Mail_send_DetailAnchor\">send()</a> method is invoked,\n the email is put into an internal queue and sent asynchronously.\n <p>\n <b>Note:</b> when this class is used with sensitive data, be careful in persisting sensitive information to disk.\n </p><p>\n The following example script sends an email with MimeEncodedText content:\n\n </p><pre> <code>\n function sendMail() {\n  var template: Template = new dw.util.Template(&quot;myTemplate.isml&quot;);\n\n  var o: Map = new dw.util.HashMap();\n  o.put(&quot;customer&quot;,&quot;customer&quot;);\n  o.put(&quot;product&quot;,&quot;product&quot;);\n\n  var content: MimeEncodedText = template.render(o);\n  var mail: Mail = new dw.net.Mail();\n  mail.addTo(&quot;<a href=\"/cdn-cgi/l/email-protection\" class=\"__cf_email__\" data-cfemail=\"04706b44617c65697468612a6b7663\">[email&#xA0;protected]</a>&quot;);\n  mail.setFrom(&quot;<a href=\"/cdn-cgi/l/email-protection\" class=\"__cf_email__\" data-cfemail=\"96f0e4f9fbd6f3eef7fbe6faf3b8f9e4f1\">[email&#xA0;protected]</a>&quot;);\n  mail.setSubject(&quot;Example Email&quot;);\n  mail.setContent(content);\n\n  mail.send();//returns either Status.ERROR or Status.OK, mail might not be sent yet, when this method returns\n  }\n </code>\n </pre>\n <p>\n  See <b>Sending email via scripts or hooks</b> in the documentation for additional examples.</p>"
        }
      },
      "io": {
        "CSVStreamWriter": {
          "methods": {
            "writeNext0": {
              "name": "writeNext",
              "args": [
                {
                  "name": "line",
                  "description": "an array of strings.",
                  "class": {
                    "name": "string[]"
                  },
                  "multiple": false
                }
              ],
              "class": {
                "name": "void",
                "description": ""
              },
              "description": "Write a single line to the CSV file.",
              "deprecated": false
            }
          }
        }
      },
      "object": {
        "CustomAttributes": {
          "description": "This class is used together with other classes that contain custom attributes\n and is used to read and write these attributes. The actual attributes are\n accessible as ECMA properties. The syntax for setting and retrieving the\n value of a custom attribute depends upon the type of the attribute. If the\n wrong syntax is used to set an individual attribute than an exception will be\n thrown.\n\n <p>\n\n The following script examples demonstrate how to work with custom attributes.\n Suppose we have an ExtensibleObject named &quot;eo&quot; possessing attributes of all\n the different types supported by the Commerce Cloud Digital metadata system. The\n following script snippet shows that setting single-valued attributes is\n simply a matter of using the assignment operator and standard ECMA primitives\n and built-in types:\n\n </p><p>\n\n </p><pre> // attribute of value type &apos;Boolean&apos;\n eo.custom.bvalue = true;\n var b : Boolean = eo.custom.bvalue;\n\n // attribute of value type &apos;Integer&apos;\n eo.custom.ivalue = 10;\n var i : Number = eo.custom.ivalue;\n\n // attribute of value type &apos;Number&apos;\n eo.custom.dvalue = 99.99;\n var d : Number = eo.custom.dvalue;\n\n // attribute of value type &apos;String&apos;\n eo.custom.svalue = &quot;String1&quot;;\n var s : String = eo.custom.svalue;\n\n // attribute of value type &apos;Email&apos;\n eo.custom.emailvalue = &quot;<a href=\"/cdn-cgi/l/email-protection\" class=\"__cf_email__\" data-cfemail=\"badfd7dbd3d6fadedfd7dbd4decddbc8df94d9d5d7\">[email&#xA0;protected]</a>&quot;;\n var e : String = eo.custom.emailvalue;\n\n // attribute of value type &apos;Text&apos;\n eo.custom.tvalue = &quot;laaaaaaaaaaaarge text&quot;;\n var t : String = eo.custom.tvalue;\n\n // attribute of value type &apos;Date&apos;\n eo.custom.dtvalue = new Date;\n var date : Date = eo.custom.dtvalue;\n </pre>\n\n <p>\n\n Setting and retrieving the values for multi-value attributes is also\n straightforward and uses ECMA arrays to represent the multiple values. Set-of\n attributes and enum-of attributes are handled in a very similar manner. The\n chief difference is that enum-of attributes are limited to a prescribed set\n of value definitions whereas set-of attributes are open-ended. Furthermore,\n each value in an enum-of attribute has a value and a display name which\n affects the retrieval logic.\n\n Multi-value attributes are returned as an array. This array is read-only and\n can&apos;t be used to update the multi-value attribute. To update the multi-value\n attribute an array with new values must be assigned to the attribute.\n\n </p><p>\n\n </p><pre> // attribute of value type &apos;Set of String&apos;\n // set the attribute value only if it hasn&apos;t been already set\n if( !(&apos;setofstringvalue&apos; in eo.custom) )\n {\n     eo.custom.setofstringvalue = new Array(&quot;abc&quot;,&quot;def&quot;,&quot;ghi&quot;);\n }\n\n // returns an Array of String instances\n var setofstring : Array = eo.custom.setofstringvalue;\n var s1 : String = setofstring[0];\n var s2 : String = setofstring[1];\n var s3 : String = setofstring[2];\n\n // attribute of value type &apos;Enum of Integer&apos; with multi-value handling\n eo.custom.enumofintmultivalue = new Array(1, 2, 3);\n\n // returns an Array of EnumValue instances\n var enumofintmulti : Array = eo.custom.enumofintmultivalue;\n var value1 : Number = enumofintmulti[0].getValue();\n var displayvalue1 : String = enumofintmulti[0].getDisplayValue();\n var value2 : Number = enumofintmulti[1].getValue();\n var displayvalue2 : String = enumofintmulti[1].getDisplayValue();\n var value3 : Number = enumofintmulti[2].getValue();\n var displayvalue3 : String = enumofintmulti[2].getDisplayValue();\n </pre>\n\n <p>\n\n For further details on the Commerce Cloud Digital attribute system, see the core\n Commerce Cloud Digital documentation.</p>",
          "properties": {
            "[name: string]": {
              "name": "[name: string]",
              "class": {
                "name": "any"
              },
              "static": false,
              "readonly": false,
              "description": "Returns the custom attribute with this name. Throws an exception if attribute is not defined",
              "deprecated": 0
            }
          }
        },
        "ExtensibleObject": {
          "properties": {
            "custom": {
              "class": {
                "name": "T"
              }
            }
          },
          "methods": {
            "getCustom": {
              "class": {
                "name": "T"
              }
            }
          }
        },
        "SimpleExtensible": {
          "properties": {
            "custom": {
              "class": {
                "name": "T"
              }
            }
          },
          "methods": {
            "getCustom": {
              "class": {
                "name": "T"
              }
            }
          }
        }
      },
      "order": {
        "PriceAdjustment": {
          "properties": {
            "custom": null
          }
        }
      },
      "svc": {
        "Result": {
          "fullClassName": "dw.svc.Result",
          "package": "dw.svc",
          "description": "Represents the result of a service call.",
          "generics": "T",
          "hierarchy": [
            {
              "name": "Object"
            }
          ],
          "properties": {
            "object": {
              "name": "object",
              "class": {
                "name": "T"
              },
              "static": false,
              "readonly": true,
              "description": "The actual object returned by the service when the status is OK.",
              "deprecated": false,
              "type": "property"
            }
          },
          "methods": {
            "getObject": {
              "name": "getObject",
              "args": [],
              "class": {
                "name": "T",
                "description": "Object returned by the service."
              },
              "description": "Returns the actual object returned by the service when the status is OK.",
              "deprecated": false
            }
          }
        }
      },
      "system": {
        "Pipelet": {
          "fullClassName": "dw.system.Pipelet",
          "package": "dw.system",
          "description": "An executable pipelet - see https://documentation.b2c.commercecloud.salesforce.com/DOC2/topic/com.demandware.dochelp/DWAPI/pipeletapi/html/api/pipeletList.html",
          "hierarchy": [
            {
              "name": "Object"
            }
          ],
          "constants": {},
          "constructors": {
            "name": {
              "name": "name",
              "args": [
                {
                  "name": "name",
                  "description": "Pipelet name",
                  "class": {
                    "name": "string"
                  },
                  "multiple": false
                }
              ],
              "class": {
                "description": ""
              },
              "description": "Creates a Pipelet",
              "deprecated": false
            }
          },
          "properties": {},
          "methods": {
            "execute": {
              "name": "execute",
              "args": [
                {
                  "name": "args",
                  "description": "Pipelet parameters",
                  "class": {
                    "name": "Object"
                  },
                  "multiple": false
                }
              ],
              "class": {
                "name": "Object",
                "description": "Execution result"
              },
              "description": "Execute the pipelet.",
              "deprecated": false
            }
          }
        },
        "PipelineDictionary": {
          "properties": {
            "[name: string]": {
              "name": "[name: string]",
              "class": {
                "name": "any"
              },
              "static": false,
              "readonly": false,
              "description": "Returns the attribute with this name",
              "deprecated": 0
            }
          }
        }
      },
      "util": {
        "Collection": {
          "properties": {
            "[index: number]": {
              "name": "[index: number]",
              "class": {
                "name": "Object"
              },
              "static": false,
              "readonly": false,
              "description": "Returns the value at the specified index.",
              "deprecated": false,
              "type": "property"
            }
          }
        },
        "List": {
          "methods": {
            "sort0": {
              "args": [
                {
                  "name": "comparator",
                  "description": "an instance of a PropertyComparator or a comparison function",
                  "class": {
                    "name": "dw.util.PropertyComparator | ((a: object, b: object) => number)"
                  },
                  "multiple": false
                }
              ]
            }
          }
        },
        "Map": {
          "properties": {
            "[name: string]": {
              "name": "[name: string]",
              "class": {
                "name": "any"
              },
              "static": false,
              "readonly": false,
              "description": "Returns the value associated with the key or null",
              "deprecated": 0
            }
          },
          "methods": {
            "containsKey": {
              "args": [
                {
                  "name": "key",
                  "description": "the key to use.",
                  "class": {
                    "name": "K"
                  },
                  "multiple": false
                }
              ]
            },
            "containsValue": {
              "args": [
                {
                  "name": "value",
                  "description": "the value to use.",
                  "class": {
                    "name": "V"
                  },
                  "multiple": false
                }
              ]
            },
            "entrySet": {
              "class": {
                "generics": "dw.util.MapEntry<K,V>"
              }
            },
            "get": {
              "args": [
                {
                  "name": "key",
                  "description": "the key to use.",
                  "class": {
                    "name": "K"
                  },
                  "multiple": false
                }
              ],
              "class": {
                "name": "V"
              }
            },
            "keySet": {
              "class": {
                "generics": "K"
              }
            },
            "put": {
              "args": [
                {
                  "name": "key",
                  "description": "the key to use to identify the value.",
                  "class": {
                    "name": "K"
                  },
                  "multiple": false
                },
                {
                  "name": "value",
                  "description": "the object to put into the map.",
                  "class": {
                    "name": "V"
                  },
                  "multiple": false
                }
              ],
              "class": {
                "name": "V"
              }
            },
            "putAll": {
              "args": [
                {
                  "name": "other",
                  "description": "the map whose contents are copied into this map.",
                  "class": {
                    "name": "Map<K, V>"
                  },
                  "multiple": false
                }
              ]
            },
            "remove": {
              "args": [
                {
                  "name": "key",
                  "description": "the key that identifies the object to remove.",
                  "class": {
                    "name": "K"
                  },
                  "multiple": false
                }
              ],
              "class": {
                "name": "V"
              }
            },
            "values": {
              "class": {
                "generics": "V"
              }
            }
          }
        },
        "MapEntry": {
          "properties": {
            "key": {
              "class": {
                "name": "K"
              }
            },
            "value": {
              "class": {
                "name": "V"
              }
            }
          },
          "methods": {
            "getKey": {
              "class": {
                "name": "K"
              }
            },
            "getValue": {
              "class": {
                "name": "V"
              }
            }
          }
        },
        "SeekableIterator": {
          "methods": {
            "asList": null
          }
        }
      },
      "web": {
        "Cookies": {
          "properties": {
            "[name: string]": {
              "name": "[name: string]",
              "class": {
                "name": "any"
              },
              "static": false,
              "readonly": false,
              "description": "Returns the dw.web.Cookie with this name or null",
              "deprecated": 0
            }
          }
        },
        "Form": {
          "properties": {
            "[name: string]": {
              "name": "[name: string]",
              "class": {
                "name": "dw.web.FormElement | any;"
              },
              "static": false,
              "readonly": true,
              "description": "Returns the Form element with this name.",
              "deprecated": 0
            }
          }
        },
        "Forms": {
          "properties": {
            "[name: string]": {
              "name": "[name: string]",
              "class": {
                "name": "dw.web.Form"
              },
              "static": false,
              "readonly": false,
              "description": "Returns the dw.web.Form with this name or null",
              "deprecated": 0
            }
          }
        },
        "FormGroup": {
          "properties": {
            "[name: string]": {
              "name": "[name: string]",
              "class": {
                "name": "dw.web.FormGroup | dw.web.FormField | any;"
              },
              "static": false,
              "readonly": true,
              "description": "Returns the Form element with this name.",
              "deprecated": 0
            }
          }
        },
        "HttpParameterMap": {
          "properties": {
            "[name: string]": {
              "name": "[name: string]",
              "class": {
                "name": "dw.web.HttpParameter | any"
              },
              "static": false,
              "readonly": true,
              "description": "Returns the HttpParameter with this name.",
              "deprecated": 0
            }
          }
        }
      }
    }
  }
}