UNPKG

gas-types-detailed

Version:

Detailed Google Apps Script Type Definitions. Forked from Definitely Typed @types/google-apps-script. Adds full documentation and urls.

1,170 lines (1,034 loc) 54 kB
// Type definitions for Google Apps Script 2023-10-28 // Project: https://developers.google.com/apps-script/ // Definitions by: motemen <https://github.com/motemen/> // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped /// <reference path="google-apps-script.types.d.ts" /> declare namespace GoogleAppsScript { namespace XML { /** * A representation of an XML attribute. * * // Reads the first and last name of each person and adds a new attribute with the full name. * var xml = '<roster>' * + '<person first="John" last="Doe"/>' * + '<person first="Mary" last="Smith"/>' * + '</roster>'; * var document = XmlService.parse(xml); * var people = document.getRootElement().getChildren('person'); * for (var i = 0; i < people.length; i++) { * var person = people[i]; * var firstName = person.getAttribute('first').getValue(); * var lastName = person.getAttribute('last').getValue(); * person.setAttribute('full', firstName + ' ' + lastName); * } * xml = XmlService.getPrettyFormat().format(document); * Logger.log(xml); */ interface Attribute { /** * Gets the local name of the attribute. If the attribute has a namespace prefix, use getNamespace().getPrefix() to get the prefix. * https://developers.google.com/apps-script/reference/xml-service/attribute#getName() */ getName(): string; /** * Gets the namespace for the attribute. * https://developers.google.com/apps-script/reference/xml-service/attribute#getNamespace() */ getNamespace(): Namespace; /** * Gets the value of the attribute. * https://developers.google.com/apps-script/reference/xml-service/attribute#getValue() */ getValue(): string; /** * Sets the local name of the attribute. To set a namespace prefix for the attribute, use setNamespace(namespace) in conjunction with XmlService.getNamespace(prefix, uri). * https://developers.google.com/apps-script/reference/xml-service/attribute#setName(String) * @param name the local name to set */ setName(name: string): Attribute; /** * Sets the namespace for the attribute. The namespace must have a prefix. * https://developers.google.com/apps-script/reference/xml-service/attribute#setNamespace(Namespace) * @param namespace the namespace to set */ setNamespace(namespace: Namespace): Attribute; /** * Sets the value of the attribute. * https://developers.google.com/apps-script/reference/xml-service/attribute#setValue(String) * @param value the value to set */ setValue(value: string): Attribute; } /** * A representation of an XML CDATASection node. * * // Create and log an XML document that shows how special characters like '<', '>', and '&' are * // stored in a CDATASection node as compared to in a Text node. * var illegalCharacters = '<em>The Amazing Adventures of Kavalier & Clay</em>'; * var cdata = XmlService.createCdata(illegalCharacters); * var text = XmlService.createText(illegalCharacters); * var root = XmlService.createElement('root').addContent(cdata).addContent(text); * var document = XmlService.createDocument(root); * var xml = XmlService.getPrettyFormat().format(document); * Logger.log(xml); */ interface Cdata { /** * Appends the given text to any content that already exists in the node. * https://developers.google.com/apps-script/reference/xml-service/cdata#append(String) * @param text the text to append to the node */ append(text: string): Text; /** * Detaches the node from its parent Element node. If the node does not have a parent, * this method has no effect. * https://developers.google.com/apps-script/reference/xml-service/cdata#detach() */ detach(): Content; /** * Gets the node's parent Element node. If the node does not have a parent, this method * returns null. * https://developers.google.com/apps-script/reference/xml-service/cdata#getParentElement() */ getParentElement(): Element; /** * Gets the text value of the Text node. * https://developers.google.com/apps-script/reference/xml-service/cdata#getText() */ getText(): string; /** * Gets the text value of all nodes that are direct or indirect children of the node, in the order * they appear in the document. * https://developers.google.com/apps-script/reference/xml-service/cdata#getValue() */ getValue(): string; /** * Sets the text value of the Text node. * https://developers.google.com/apps-script/reference/xml-service/cdata#setText(String) * @param text the text value to set */ setText(text: string): Text; } /** * A representation of an XML Comment node. */ interface Comment { /** * Detaches the node from its parent Element node. If the node does not have a parent, * this method has no effect. * https://developers.google.com/apps-script/reference/xml-service/comment#detach() */ detach(): Content; /** * Gets the node's parent Element node. If the node does not have a parent, this method * returns null. * https://developers.google.com/apps-script/reference/xml-service/comment#getParentElement() */ getParentElement(): Element; /** * Gets the text value of the Comment node. * https://developers.google.com/apps-script/reference/xml-service/comment#getText() */ getText(): string; /** * Gets the text value of all nodes that are direct or indirect children of the node, in the order * they appear in the document. * https://developers.google.com/apps-script/reference/xml-service/comment#getValue() */ getValue(): string; /** * Sets the text value of the Comment node. * https://developers.google.com/apps-script/reference/xml-service/comment#setText(String) * @param text the text value to set */ setText(text: string): Comment; } /** * A representation of a generic XML node. * Implementing classes * * NameBrief description * * CdataA representation of an XML CDATASection node. * * CommentA representation of an XML Comment node. * * DocTypeA representation of an XML DocumentType node. * * ElementA representation of an XML Element node. * * EntityRefA representation of an XML EntityReference node. * * ProcessingInstructionA representation of an XML ProcessingInstruction node. * * TextA representation of an XML Text node. */ interface Content { /** * Casts the node as a CDATASection node for the purposes of autocomplete. If the * node's ContentType is not already CDATA, this method returns null. * https://developers.google.com/apps-script/reference/xml-service/content#asCdata() */ asCdata(): Cdata; /** * Casts the node as a Comment node for the purposes of autocomplete. If the node's * ContentType is not already COMMENT, this method returns null. * https://developers.google.com/apps-script/reference/xml-service/content#asComment() */ asComment(): Comment; /** * Casts the node as a DocumentType node for the purposes of autocomplete. If * the node's ContentType is not already DOCTYPE, this method returns null. * https://developers.google.com/apps-script/reference/xml-service/content#asDocType() */ asDocType(): DocType; /** * Casts the node as an Element node for the purposes of autocomplete. If the node's * ContentType is not already ELEMENT, this method returns null. * https://developers.google.com/apps-script/reference/xml-service/content#asElement() */ asElement(): Element; /** * Casts the node as a EntityReference node for the purposes of autocomplete. * If the node's ContentType is not already ENTITYREF, this method returns * null. * https://developers.google.com/apps-script/reference/xml-service/content#asEntityRef() */ asEntityRef(): EntityRef; /** * Casts the node as a ProcessingInstruction node for the purposes of autocomplete. If * the node's ContentType is not already PROCESSINGINSTRUCTION, this method * returns null. * https://developers.google.com/apps-script/reference/xml-service/content#asProcessingInstruction() */ asProcessingInstruction(): ProcessingInstruction; /** * Casts the node as a Text node for the purposes of autocomplete. If the node's ContentType is not already TEXT, this method returns null. * https://developers.google.com/apps-script/reference/xml-service/content#asText() */ asText(): Text; /** * Detaches the node from its parent Element node. If the node does not have a parent, * this method has no effect. * https://developers.google.com/apps-script/reference/xml-service/content#detach() */ detach(): Content; /** * Gets the node's parent Element node. If the node does not have a parent, this method * returns null. * https://developers.google.com/apps-script/reference/xml-service/content#getParentElement() */ getParentElement(): Element; /** * Gets the node's content type. * https://developers.google.com/apps-script/reference/xml-service/content#getType() */ getType(): ContentType; /** * Gets the text value of all nodes that are direct or indirect children of the node, in the order * they appear in the document. * https://developers.google.com/apps-script/reference/xml-service/content#getValue() */ getValue(): string; } /** * An enumeration representing the types of XML content nodes. */ enum ContentType { CDATA, COMMENT, DOCTYPE, ELEMENT, ENTITYREF, PROCESSINGINSTRUCTION, TEXT } /** * A representation of an XML DocumentType node. */ interface DocType { /** * Detaches the node from its parent Element node. If the node does not have a parent, * this method has no effect. * https://developers.google.com/apps-script/reference/xml-service/doc-type#detach() */ detach(): Content; /** * Gets the name of the root Element node specified in the DocType declaration. * https://developers.google.com/apps-script/reference/xml-service/doc-type#getElementName() */ getElementName(): string; /** * Gets the internal subset data for the DocumentType node. * https://developers.google.com/apps-script/reference/xml-service/doc-type#getInternalSubset() */ getInternalSubset(): string; /** * Gets the node's parent Element node. If the node does not have a parent, this method * returns null. * https://developers.google.com/apps-script/reference/xml-service/doc-type#getParentElement() */ getParentElement(): Element; /** * Gets the public ID of the external subset data for the DocumentType node. * https://developers.google.com/apps-script/reference/xml-service/doc-type#getPublicId() */ getPublicId(): string; /** * Gets the system ID of the external subset data for the DocumentType node. * https://developers.google.com/apps-script/reference/xml-service/doc-type#getSystemId() */ getSystemId(): string; /** * Gets the text value of all nodes that are direct or indirect children of the node, in the order * they appear in the document. * https://developers.google.com/apps-script/reference/xml-service/doc-type#getValue() */ getValue(): string; /** * Sets the name of the root Element node to specify in the DocType * declaration. * https://developers.google.com/apps-script/reference/xml-service/doc-type#setElementName(String) * @param name the name of the root Element node to specify in the DocType declaration */ setElementName(name: string): DocType; /** * Sets the internal subset data for the DocumentType node. * https://developers.google.com/apps-script/reference/xml-service/doc-type#setInternalSubset(String) * @param data the internal subset data to set */ setInternalSubset(data: string): DocType; /** * Sets the public ID of the external subset data for the DocumentType node. * https://developers.google.com/apps-script/reference/xml-service/doc-type#setPublicId(String) * @param id the public ID of the external subset data to set */ setPublicId(id: string): DocType; /** * Sets the system ID of the external subset data for the DocumentType node. * https://developers.google.com/apps-script/reference/xml-service/doc-type#setSystemId(String) * @param id the system ID of the external subset data to set */ setSystemId(id: string): DocType; } /** * A representation of an XML document. */ interface Document { /** * Appends the given node to the end of the document. The content argument can be a Content object or any node object that corresponds to a type listed in ContentType. Note, however, that a document can only have one child Element * node, which is implicitly the root Element node. * https://developers.google.com/apps-script/reference/xml-service/document#addContent(Content) * @param content the node to append */ addContent(content: Content): Document; /** * Inserts the given node at the given index among all nodes that are immediate children of the * document. The content argument can be a Content object or any node object * that corresponds to a type listed in ContentType. Note, however, that a document * can only have one child Element node, which is implicitly the root Element * node. * https://developers.google.com/apps-script/reference/xml-service/document#addContent(Integer,Content) * @param index the index at which to insert the node among all nodes that are immediate children of the document * @param content the node to insert */ addContent(index: Integer, content: Content): Document; /** * Creates unattached copies of all nodes that are immediate children of the document. * https://developers.google.com/apps-script/reference/xml-service/document#cloneContent() */ cloneContent(): Content[]; /** * Detaches and returns the document's root Element node. If the document does not have * a root Element node, this method returns null. * https://developers.google.com/apps-script/reference/xml-service/document#detachRootElement() */ detachRootElement(): Element; /** * Gets all nodes that are immediate children of the document. * https://developers.google.com/apps-script/reference/xml-service/document#getAllContent() */ getAllContent(): Content[]; /** * Gets the node at the given index among all nodes that are immediate children of the * document. If there is no node at the given index, this method returns null. * https://developers.google.com/apps-script/reference/xml-service/document#getContent(Integer) * @param index the index for the node among all nodes that are immediate children of the document */ getContent(index: Integer): Content; /** * Gets the number of nodes that are immediate children of the document. * https://developers.google.com/apps-script/reference/xml-service/document#getContentSize() */ getContentSize(): Integer; /** * Gets all nodes that are direct or indirect children of the document, in the order they * appear in the document. * https://developers.google.com/apps-script/reference/xml-service/document#getDescendants() */ getDescendants(): Content[]; /** * Gets the document's DocType declaration. If the document does not have a DocumentType node, this method returns null. * https://developers.google.com/apps-script/reference/xml-service/document#getDocType() */ getDocType(): DocType; /** * Gets the document's root Element node. If the document does not have a root Element node, this method returns null. * https://developers.google.com/apps-script/reference/xml-service/document#getRootElement() */ getRootElement(): Element; /** * Determines whether the document has a root Element node. * https://developers.google.com/apps-script/reference/xml-service/document#hasRootElement() */ hasRootElement(): boolean; /** * Removes all nodes that are immediate children of the document. * https://developers.google.com/apps-script/reference/xml-service/document#removeContent() */ removeContent(): Content[]; /** * Removes the given node, if the node is an immediate child of the document. The content argument can be a Content object or any node object that corresponds to a * type listed in ContentType. * https://developers.google.com/apps-script/reference/xml-service/document#removeContent(Content) * @param content the node to remove */ removeContent(content: Content): boolean; /** * Removes the node at the given index among all nodes that are immediate children of the * document. If there is no node at the given index, this method returns null. * https://developers.google.com/apps-script/reference/xml-service/document#removeContent(Integer) * @param index the index for the node among all nodes that are immediate children of the document */ removeContent(index: Integer): Content; /** * Sets the document's DocType declaration. If the document already has a different * DocType node, this method overwrites the old node. This method throws an exception if * the document already contains the same DocType node that is being set. * https://developers.google.com/apps-script/reference/xml-service/document#setDocType(DocType) * @param docType the DocumentType to set */ setDocType(docType: DocType): Document; /** * Sets the document's root Element node. If the document already has a root Element node, this method overwrites the old node. * https://developers.google.com/apps-script/reference/xml-service/document#setRootElement(Element) * @param element the root Element node to set */ setRootElement(element: Element): Document; } /** * A representation of an XML Element node. * * // Adds up the values listed in a sample XML document and adds a new element with the total. * var xml = '<things>' * + '<plates>12</plates>' * + '<bowls>18</bowls>' * + '<cups>25</cups>' * + '</things>'; * var document = XmlService.parse(xml); * var root = document.getRootElement(); * var items = root.getChildren(); * var total = 0; * for (var i = 0; i < items.length; i++) { * total += Number(items[i].getText()); * } * var totalElement = XmlService.createElement('total').setText(total); * root.addContent(totalElement); * xml = XmlService.getPrettyFormat().format(document); * Logger.log(xml); */ interface Element { /** * Appends the given node as the last child of the Element node. The content * argument can be a Element object or any node object that corresponds to a type * listed in ContentType. * https://developers.google.com/apps-script/reference/xml-service/element#addContent(Content) * @param content the node to append */ addContent(content: Content): Element; /** * Inserts the given node at the given index among all nodes that are immediate children of the * Element node. The content argument can be a Element object or any * node object that corresponds to a type listed in ContentType. * https://developers.google.com/apps-script/reference/xml-service/element#addContent(Integer,Content) * @param index the index at which to insert the node among all nodes that are immediate children of the Element node * @param content the node to insert */ addContent(index: Integer, content: Content): Element; /** * Creates unattached copies of all nodes that are immediate children of the {@code Element} node. * https://developers.google.com/apps-script/reference/xml-service/element#cloneContent() */ cloneContent(): Content[]; /** * Detaches the node from its parent Element node. If the node does not have a parent, * this method has no effect. * https://developers.google.com/apps-script/reference/xml-service/element#detach() */ detach(): Content; /** * Gets all nodes that are immediate children of the {@code Element} node. * https://developers.google.com/apps-script/reference/xml-service/element#getAllContent() */ getAllContent(): Content[]; /** * Gets the attribute for this Element node with the given name and no namespace. If there * is no such attribute, this method returns null. * https://developers.google.com/apps-script/reference/xml-service/element#getAttribute(String) * @param name the name of the attribute */ getAttribute(name: string): Attribute; /** * Gets the attribute for this Element node with the given name and namespace. If there is * no such node, this method returns null. * https://developers.google.com/apps-script/reference/xml-service/element#getAttribute(String,Namespace) * @param name the name of the attribute * @param namespace the namespace of the attribute */ getAttribute(name: string, namespace: Namespace): Attribute; /** * Gets all attributes for this Element node, in the order they appear in the document. * https://developers.google.com/apps-script/reference/xml-service/element#getAttributes() */ getAttributes(): Attribute[]; /** * Gets the first Element node with the given name and no namespace that is an immediate * child of this Element node. If there is no such node, this method returns null. * https://developers.google.com/apps-script/reference/xml-service/element#getChild(String) * @param name the name of the child Element node */ getChild(name: string): Element; /** * Gets the first Element node with the given name and namespace that is an immediate * child of this Element node. If there is no such node, this method returns null. * https://developers.google.com/apps-script/reference/xml-service/element#getChild(String,Namespace) * @param name the name of the child Element node * @param namespace the namespace of the child Element node */ getChild(name: string, namespace: Namespace): Element; /** * Gets the text value of the node with the given name and no namespace, if the node is an * immediate child of the Element node. If there is no such node, this method returns * null. * https://developers.google.com/apps-script/reference/xml-service/element#getChildText(String) * @param name the name of the child node */ getChildText(name: string): string; /** * Gets the text value of the node with the given name and namespace, if the node is an immediate * child of the Element node. If there is no such node, this method returns null. * https://developers.google.com/apps-script/reference/xml-service/element#getChildText(String,Namespace) * @param name the name of the child node * @param namespace the namespace of the child node */ getChildText(name: string, namespace: Namespace): string; /** * Gets all Element nodes that are immediate children of this Element node, in the * order they appear in the document. * https://developers.google.com/apps-script/reference/xml-service/element#getChildren() */ getChildren(): Element[]; /** * Gets all Element nodes with the given name and no namespace that are immediate children * of this Element node, in the order they appear in the document. * https://developers.google.com/apps-script/reference/xml-service/element#getChildren(String) * @param name the name of the child Element nodes */ getChildren(name: string): Element[]; /** * Gets all Element nodes with the given name and namespace that are immediate children of * this Element node, in the order they appear in the document. * https://developers.google.com/apps-script/reference/xml-service/element#getChildren(String,Namespace) * @param name the name of the child Element nodes * @param namespace the namespace of the child Element nodes */ getChildren(name: string, namespace: Namespace): Element[]; /** * Gets the node at the given index among all nodes that are immediate children of the * {@code Element} node. If there is no node at the given index, this method returns null. * https://developers.google.com/apps-script/reference/xml-service/element#getContent(Integer) * @param index the index for the node among all nodes that are immediate children of the {@code Element} node */ getContent(index: Integer): Content; /** * Gets the number of nodes that are immediate children of the {@code Element} node. * https://developers.google.com/apps-script/reference/xml-service/element#getContentSize() */ getContentSize(): Integer; /** * Gets all nodes that are direct or indirect children of the {@code Element} node, in the order they * appear in the document. * https://developers.google.com/apps-script/reference/xml-service/element#getDescendants() */ getDescendants(): Content[]; /** * Gets the XML document that contains the {@code Element} node. * https://developers.google.com/apps-script/reference/xml-service/element#getDocument() */ getDocument(): Document; /** * Gets the local name of the Element node. If the node has a namespace prefix, use getQualifiedName() or getNamespace().getPrefix() to * get the prefix. * https://developers.google.com/apps-script/reference/xml-service/element#getName() */ getName(): string; /** * Gets the namespace for the Element node. * https://developers.google.com/apps-script/reference/xml-service/element#getNamespace() */ getNamespace(): Namespace; /** * Gets the namespace with the given prefix for the Element node. * https://developers.google.com/apps-script/reference/xml-service/element#getNamespace(String) * @param prefix the prefix for the namespace */ getNamespace(prefix: string): Namespace; /** * Gets the node's parent Element node. If the node does not have a parent, this method * returns null. * https://developers.google.com/apps-script/reference/xml-service/element#getParentElement() */ getParentElement(): Element; /** * Gets the local name and namespace prefix of the Element node, in the form [namespacePrefix]:[localName]. If the node does not have a namespace prefix, use getName(). * https://developers.google.com/apps-script/reference/xml-service/element#getQualifiedName() */ getQualifiedName(): string; /** * Gets the text value of the Element node. * https://developers.google.com/apps-script/reference/xml-service/element#getText() */ getText(): string; /** * Gets the text value of all nodes that are direct or indirect children of the node, in the order * they appear in the document. * https://developers.google.com/apps-script/reference/xml-service/element#getValue() */ getValue(): string; /** * Determines whether this Element node is a direct or indirect parent of a given Element node. * https://developers.google.com/apps-script/reference/xml-service/element#isAncestorOf(Element) * @param other the other Element node */ isAncestorOf(other: Element): boolean; /** * Determines whether the Element node is the document's root node. * https://developers.google.com/apps-script/reference/xml-service/element#isRootElement() */ isRootElement(): boolean; /** * Removes the given attribute for this Element node, if such an attribute exists. * https://developers.google.com/apps-script/reference/xml-service/element#removeAttribute(Attribute) * @param attribute the attribute */ removeAttribute(attribute: Attribute): boolean; /** * Removes the attribute for this Element node with the given name and no namespace, if * such an attribute exists. * https://developers.google.com/apps-script/reference/xml-service/element#removeAttribute(String) * @param attributeName the name of the attribute */ removeAttribute(attributeName: string): boolean; /** * Removes the attribute for this Element node with the given name and namespace, if such * an attribute exists. * https://developers.google.com/apps-script/reference/xml-service/element#removeAttribute(String,Namespace) * @param attributeName the name of the attribute * @param namespace the namespace of the attribute */ removeAttribute(attributeName: string, namespace: Namespace): boolean; /** * Removes all nodes that are immediate children of the {@code Element} node. * https://developers.google.com/apps-script/reference/xml-service/element#removeContent() */ removeContent(): Content[]; /** * Removes the given node, if the node is an immediate child of the {@code Element} node. The content argument can be a Element object or any node object that corresponds to a * type listed in ContentType. * https://developers.google.com/apps-script/reference/xml-service/element#removeContent(Content) * @param content the node to remove */ removeContent(content: Content): boolean; /** * Removes the node at the given index among all nodes that are immediate children of the * {@code Element} node. If there is no node at the given index, this method returns null. * https://developers.google.com/apps-script/reference/xml-service/element#removeContent(Integer) * @param index the index for the node among all nodes that are immediate children of the {@code Element} node */ removeContent(index: Integer): Content; /** * Sets the given attribute for this Element node. * https://developers.google.com/apps-script/reference/xml-service/element#setAttribute(Attribute) * @param attribute the attribute to set */ setAttribute(attribute: Attribute): Element; /** * Sets the attribute for this Element node with the given name, value, and no namespace. * https://developers.google.com/apps-script/reference/xml-service/element#setAttribute(String,String) * @param name the name of the attribute to set * @param value the value of the attribute to set */ setAttribute(name: string, value: string): Element; /** * Sets the attribute for this Element node with the given name, value, and namespace. * https://developers.google.com/apps-script/reference/xml-service/element#setAttribute(String,String,Namespace) * @param name the name of the attribute to set * @param value the value of the attribute to set * @param namespace the namespace of the attribute to set */ setAttribute(name: string, value: string, namespace: Namespace): Element; /** * Sets the local name of the Element node. To set a namespace prefix for the node, use * setNamespace(namespace) in conjunction with XmlService.getNamespace(prefix, uri). * https://developers.google.com/apps-script/reference/xml-service/element#setName(String) * @param name the local name to set */ setName(name: string): Element; /** * Sets the namespace for the Element node. * https://developers.google.com/apps-script/reference/xml-service/element#setNamespace(Namespace) * @param namespace the namespace to set */ setNamespace(namespace: Namespace): Element; /** * Sets the text value of the Element node. If the node already contains a text value or * any child nodes, this method overwrites the old content. To append or insert content instead, * use addContent(content) or addContent(index, content). * https://developers.google.com/apps-script/reference/xml-service/element#setText(String) * @param text the text to set */ setText(text: string): Element; } /** * A representation of an XML EntityReference node. */ interface EntityRef { /** * Detaches the node from its parent Element node. If the node does not have a parent, * this method has no effect. * https://developers.google.com/apps-script/reference/xml-service/entity-ref#detach() */ detach(): Content; /** * Gets the name of the EntityReference node. * https://developers.google.com/apps-script/reference/xml-service/entity-ref#getName() */ getName(): string; /** * Gets the node's parent Element node. If the node does not have a parent, this method * returns null. * https://developers.google.com/apps-script/reference/xml-service/entity-ref#getParentElement() */ getParentElement(): Element; /** * Gets the public ID of the EntityReference node. If the node does not have a public ID, * this method returns null. * https://developers.google.com/apps-script/reference/xml-service/entity-ref#getPublicId() */ getPublicId(): string; /** * Gets the system ID of the EntityReference node. If the node does not have a system ID, * this method returns null. * https://developers.google.com/apps-script/reference/xml-service/entity-ref#getSystemId() */ getSystemId(): string; /** * Gets the text value of all nodes that are direct or indirect children of the node, in the order * they appear in the document. * https://developers.google.com/apps-script/reference/xml-service/entity-ref#getValue() */ getValue(): string; /** * Sets the name of the EntityReference node. * https://developers.google.com/apps-script/reference/xml-service/entity-ref#setName(String) * @param name the name to set */ setName(name: string): EntityRef; /** * Sets the public ID of the EntityReference node. * https://developers.google.com/apps-script/reference/xml-service/entity-ref#setPublicId(String) * @param id the public ID to set */ setPublicId(id: string): EntityRef; /** * Sets the system ID of the EntityReference node. * https://developers.google.com/apps-script/reference/xml-service/entity-ref#setSystemId(String) * @param id the system ID to set */ setSystemId(id: string): EntityRef; } /** * A formatter for outputting an XML document, with three pre-defined formats that can be further * customized. * * // Log an XML document with specified formatting options. * var xml = '<root><a><b>Text!</b><b>More text!</b></a></root>'; * var document = XmlService.parse(xml); * var output = XmlService.getCompactFormat() * .setLineSeparator('\n') * .setEncoding('UTF-8') * .setIndent(' ') * .format(document); * Logger.log(output); */ interface Format { /** * Outputs the given Document as a formatted string. * https://developers.google.com/apps-script/reference/xml-service/format#format(Document) * @param document the document to format */ format(document: Document): string; /** * Outputs the given Element node as a formatted string. * https://developers.google.com/apps-script/reference/xml-service/format#format(Element) * @param element the element to format */ format(element: Element): string; /** * Sets the character encoding that the formatter should use. The encoding argument must * be an accepted XML encoding like ISO-8859-1, US-ASCII, UTF-8, or UTF-16. * * * // Log an XML document with encoding that does not support certain special characters. * var xml = '<root><a><b>ಠ‿ಠ</b><b>ಠ‿ಠ</b></a></root>'; * var document = XmlService.parse(xml); * var output = XmlService.getRawFormat() * .setEncoding('ISO-8859-1') * .format(document); * Logger.log(output); * https://developers.google.com/apps-script/reference/xml-service/format#setEncoding(String) * @param encoding the encoding to use */ setEncoding(encoding: string): Format; /** * Sets the string used to indent child nodes relative to their parents. Setting an indent other * than null will cause the formatter to insert a line break after every node. * * * // Log an XML document with each child node indented four spaces. * var xml = '<root><a><b>Text!</b><b>More text!</b></a></root>'; * var document = XmlService.parse(xml); * var output = XmlService.getCompactFormat() * .setIndent(' ') * .format(document); * Logger.log(output); * https://developers.google.com/apps-script/reference/xml-service/format#setIndent(String) * @param indent the indent to use */ setIndent(indent: string): Format; /** * Sets the string to insert whenever the formatter would normally insert a line break. The three * pre-defined formatters have different conditions under which they insert a line break. The * default line separator is \r\n. * * * // Log an XML document with several spaces and a pipe character in place of line breaks. * var xml = '<root><a><b>Text!</b><b>More text!</b></a></root>'; * var document = XmlService.parse(xml); * var output = XmlService.getRawFormat() * .setLineSeparator(' | ') * .format(document); * Logger.log(output); * https://developers.google.com/apps-script/reference/xml-service/format#setLineSeparator(String) * @param separator the separator to use */ setLineSeparator(separator: string): Format; /** * Sets whether the formatter should omit the XML declaration, such as <?xml version="1.0" * encoding="UTF-8"?>. * https://developers.google.com/apps-script/reference/xml-service/format#setOmitDeclaration(Boolean) * @param omitDeclaration true to omit the XML declaration; false to include it */ setOmitDeclaration(omitDeclaration: boolean): Format; /** * Sets whether the formatter should omit the encoding in the XML declaration, such as the * encoding field in <?xml version="1.0" encoding="UTF-8"?>. * https://developers.google.com/apps-script/reference/xml-service/format#setOmitEncoding(Boolean) * @param omitEncoding true to omit the encoding in the XML declaration; false to include it */ setOmitEncoding(omitEncoding: boolean): Format; } /** * A representation of an XML namespace. */ interface Namespace { /** * Gets the prefix for the namespace. * https://developers.google.com/apps-script/reference/xml-service/namespace#getPrefix() */ getPrefix(): string; /** * Gets the URI for the namespace. * https://developers.google.com/apps-script/reference/xml-service/namespace#getURI() */ getURI(): string; } /** * A representation of an XML ProcessingInstruction node. */ interface ProcessingInstruction { /** * Detaches the node from its parent Element node. If the node does not have a parent, * this method has no effect. * https://developers.google.com/apps-script/reference/xml-service/processing-instruction#detach() */ detach(): Content; /** * Gets the raw data for every instruction in the ProcessingInstruction node. * https://developers.google.com/apps-script/reference/xml-service/processing-instruction#getData() */ getData(): string; /** * Gets the node's parent Element node. If the node does not have a parent, this method * returns null. * https://developers.google.com/apps-script/reference/xml-service/processing-instruction#getParentElement() */ getParentElement(): Element; /** * Gets the target for the ProcessingInstruction node. * https://developers.google.com/apps-script/reference/xml-service/processing-instruction#getTarget() */ getTarget(): string; /** * Gets the text value of all nodes that are direct or indirect children of the node, in the order * they appear in the document. * https://developers.google.com/apps-script/reference/xml-service/processing-instruction#getValue() */ getValue(): string; } /** * A representation of an XML Text node. */ interface Text { /** * Appends the given text to any content that already exists in the node. * https://developers.google.com/apps-script/reference/xml-service/text#append(String) * @param text the text to append to the node */ append(text: string): Text; /** * Detaches the node from its parent Element node. If the node does not have a parent, * this method has no effect. * https://developers.google.com/apps-script/reference/xml-service/text#detach() */ detach(): Content; /** * Gets the node's parent Element node. If the node does not have a parent, this method * returns null. * https://developers.google.com/apps-script/reference/xml-service/text#getParentElement() */ getParentElement(): Element; /** * Gets the text value of the Text node. * https://developers.google.com/apps-script/reference/xml-service/text#getText() */ getText(): string; /** * Gets the text value of all nodes that are direct or indirect children of the node, in the order * they appear in the document. * https://developers.google.com/apps-script/reference/xml-service/text#getValue() */ getValue(): string; /** * Sets the text value of the Text node. * https://developers.google.com/apps-script/reference/xml-service/text#setText(String) * @param text the text value to set */ setText(text: string): Text; } /** * This service allows scripts to parse, navigate, and programmatically create XML documents. * * // Log the title and labels for the first page of blog posts on the * // Google Workspace Developer blog. * function parseXml() { * var url = 'https://gsuite-developers.googleblog.com/atom.xml'; * var xml = UrlFetchApp.fetch(url).getContentText(); * var document = XmlService.parse(xml); * var root = document.getRootElement(); * var atom = XmlService.getNamespace('http://www.w3.org/2005/Atom'); * * var entries = root.getChildren('entry', atom); * for (var i = 0; i < entries.length; i++) { * var title = entries[i].getChild('title', atom).getText(); * var categoryElements = entries[i].getChildren('category', atom); * var labels = []; * for (var j = 0; j < categoryElements.length; j++) { * labels.push(categoryElements[j].getAttribute('term').getValue()); * } * Logger.log('%s (%s)', title, labels.join(', ')); * } * } * * // Create and log an XML representation of the threads in your Gmail inbox. * function createXml() { * var root = XmlService.createElement('threads'); * var threads = GmailApp.getInboxThreads(); * for (var i = 0; i < threads.length; i++) { * var child = XmlService.createElement('thread') * .setAttribute('messageCount', threads[i].getMessageCount()) * .setAttribute('isUnread', threads[i].isUnread()) * .setText(threads[i].getFirstMessageSubject()); * root.addContent(child); * } * var document = XmlService.createDocument(root); * var xml = XmlService.getPrettyFormat().format(document); * Logger.log(xml); * } */ interface XmlService { ContentTypes: typeof ContentType; /** * Creates an unattached CDATASection node with the given value. * https://developers.google.com/apps-script/reference/xml-service/xml-service#createCdata(String) * @param text the value to set */ createCdata(text: string): Cdata; /** * Creates an unattached Comment node with the given value. * https://developers.google.com/apps-script/reference/xml-service/xml-service#createComment(String) * @param text the value to set */ createComment(text: string): Comment; /** * Creates an unattached DocumentType node for the root Element node * with the given name. * https://developers.google.com/apps-script/reference/xml-service/xml-service#createDocType(String) * @param elementName the name of the root Element node to specify in the DocType declaration */ createDocType(elementName: string): DocType; /** * Creates an unattached DocumentType node for the root Element node * with the given name, and the given system ID for the external subset data. * https://developers.google.com/apps-script/reference/xml-service/xml-service#createDocType(String,String) * @param elementName the name of the root Element node to specify in the DocType declaration * @param systemId the system ID of the external subset data to set */ createDocType(elementName: string, systemId: string): DocType; /** * Creates an unattached DocumentType node for the root Element node * with the given name, and the given public ID and system ID for the external subset data. * https://developers.google.com/apps-script/reference/xml-service/xml-service#createDocType(String,String,String) * @param elementName the name of the root Element node to specify in the DocType declaration * @param publicId the public ID of the external subset data to set * @param systemId the system ID of the external subset data to set */ createDocType(elementName: string, publicId: string, systemId: string): DocType; /** * Creates an empty XML document. * https://developers.google.com/apps-script/reference/xml-service/xml-service#createDocument() */ createDocument(): Document; /** * Creates an XML document with the given root Element node. * https://developers.google.com/apps-script/reference/xml-service/xml-service#createDocument(Element) * @param rootElement the root Element node to set */ createDocument(rootElement: Element): Document; /** * Creates an unattached Element node with the given local name and no namespace. * https://developers.google.com/apps-script/reference/xml-service/xml-service#createElement(String) * @param name the local name to set */ createElement(name: string): Element; /** * Creates an unattached Element node with the given local name and namespace. * https://developers.google.com/apps-script/reference/xml-service/xml-service#createElement(String,Namespace) * @param name the local name to set * @param namespace the namespace to set */ createElement(name: string, namespace: Namespace): Element; /** *