# coding=utf-8
# *** WARNING: this file was generated by pulumi-language-python. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import builtins as _builtins
import warnings
import sys
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
if sys.version_info >= (3, 11):
    from typing import NotRequired, TypedDict, TypeAlias
else:
    from typing_extensions import NotRequired, TypedDict, TypeAlias
from . import _utilities

__all__ = [
    'CustomScriptArgsArgs',
    'CustomScriptArgsArgsDict',
    'NodeContentUpdateArgs',
    'NodeContentUpdateArgsDict',
    'PageCustomCodeScriptArgs',
    'PageCustomCodeScriptArgsDict',
]

MYPY = False

if not MYPY:
    class CustomScriptArgsArgsDict(TypedDict):
        id: pulumi.Input[_builtins.str]
        """
        The unique identifier of the registered custom code script. The script must first be registered to the site using the RegisterScript resource. Examples: 'cms_slider', 'analytics', 'custom_widget'
        """
        location: pulumi.Input[_builtins.str]
        """
        The location where the script is placed on the page. Valid values: 'header' (placed in the <head> section), 'footer' (placed before </body>). Scripts in the header execute before page content loads, while footer scripts execute after the page has loaded.
        """
        version: pulumi.Input[_builtins.str]
        """
        The semantic version string for the registered script (e.g., '1.0.0', '0.1.2'). This version must exist for the registered script ID. When you update the version, a different version of the script will be applied.
        """
        attributes: NotRequired[pulumi.Input[Mapping[str, Any]]]
        """
        Optional developer-specified key/value pairs applied as HTML attributes to the script tag. Example: {'data-config': 'my-value'}. These attributes are passed directly to the script tag.
        """
elif False:
    CustomScriptArgsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class CustomScriptArgsArgs:
    def __init__(__self__, *,
                 id: pulumi.Input[_builtins.str],
                 location: pulumi.Input[_builtins.str],
                 version: pulumi.Input[_builtins.str],
                 attributes: Optional[pulumi.Input[Mapping[str, Any]]] = None):
        """
        :param pulumi.Input[_builtins.str] id: The unique identifier of the registered custom code script. The script must first be registered to the site using the RegisterScript resource. Examples: 'cms_slider', 'analytics', 'custom_widget'
        :param pulumi.Input[_builtins.str] location: The location where the script is placed on the page. Valid values: 'header' (placed in the <head> section), 'footer' (placed before </body>). Scripts in the header execute before page content loads, while footer scripts execute after the page has loaded.
        :param pulumi.Input[_builtins.str] version: The semantic version string for the registered script (e.g., '1.0.0', '0.1.2'). This version must exist for the registered script ID. When you update the version, a different version of the script will be applied.
        :param pulumi.Input[Mapping[str, Any]] attributes: Optional developer-specified key/value pairs applied as HTML attributes to the script tag. Example: {'data-config': 'my-value'}. These attributes are passed directly to the script tag.
        """
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "location", location)
        pulumi.set(__self__, "version", version)
        if attributes is not None:
            pulumi.set(__self__, "attributes", attributes)

    @_builtins.property
    @pulumi.getter
    def id(self) -> pulumi.Input[_builtins.str]:
        """
        The unique identifier of the registered custom code script. The script must first be registered to the site using the RegisterScript resource. Examples: 'cms_slider', 'analytics', 'custom_widget'
        """
        return pulumi.get(self, "id")

    @id.setter
    def id(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "id", value)

    @_builtins.property
    @pulumi.getter
    def location(self) -> pulumi.Input[_builtins.str]:
        """
        The location where the script is placed on the page. Valid values: 'header' (placed in the <head> section), 'footer' (placed before </body>). Scripts in the header execute before page content loads, while footer scripts execute after the page has loaded.
        """
        return pulumi.get(self, "location")

    @location.setter
    def location(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "location", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> pulumi.Input[_builtins.str]:
        """
        The semantic version string for the registered script (e.g., '1.0.0', '0.1.2'). This version must exist for the registered script ID. When you update the version, a different version of the script will be applied.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "version", value)

    @_builtins.property
    @pulumi.getter
    def attributes(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
        """
        Optional developer-specified key/value pairs applied as HTML attributes to the script tag. Example: {'data-config': 'my-value'}. These attributes are passed directly to the script tag.
        """
        return pulumi.get(self, "attributes")

    @attributes.setter
    def attributes(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
        pulumi.set(self, "attributes", value)


if not MYPY:
    class NodeContentUpdateArgsDict(TypedDict):
        node_id: pulumi.Input[_builtins.str]
        """
        The unique identifier for the DOM node to update. This ID comes from the page's DOM structure and must exist on the page. Retrieve node IDs using GET /pages/{page_id}/dom endpoint.
        """
        text: pulumi.Input[_builtins.str]
        """
        The new text content for the node. This will replace the existing text content in the specified node. Only applicable to text nodes or elements containing text.
        """
elif False:
    NodeContentUpdateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class NodeContentUpdateArgs:
    def __init__(__self__, *,
                 node_id: pulumi.Input[_builtins.str],
                 text: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] node_id: The unique identifier for the DOM node to update. This ID comes from the page's DOM structure and must exist on the page. Retrieve node IDs using GET /pages/{page_id}/dom endpoint.
        :param pulumi.Input[_builtins.str] text: The new text content for the node. This will replace the existing text content in the specified node. Only applicable to text nodes or elements containing text.
        """
        pulumi.set(__self__, "node_id", node_id)
        pulumi.set(__self__, "text", text)

    @_builtins.property
    @pulumi.getter(name="nodeId")
    def node_id(self) -> pulumi.Input[_builtins.str]:
        """
        The unique identifier for the DOM node to update. This ID comes from the page's DOM structure and must exist on the page. Retrieve node IDs using GET /pages/{page_id}/dom endpoint.
        """
        return pulumi.get(self, "node_id")

    @node_id.setter
    def node_id(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "node_id", value)

    @_builtins.property
    @pulumi.getter
    def text(self) -> pulumi.Input[_builtins.str]:
        """
        The new text content for the node. This will replace the existing text content in the specified node. Only applicable to text nodes or elements containing text.
        """
        return pulumi.get(self, "text")

    @text.setter
    def text(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "text", value)


if not MYPY:
    class PageCustomCodeScriptArgsDict(TypedDict):
        attributes: pulumi.Input[Mapping[str, Any]]
        """
        Optional developer-specified key/value pairs for script attributes. These attributes can be used by the script to customize its behavior on this page.
        """
        id: pulumi.Input[_builtins.str]
        """
        The unique identifier of a registered custom code script. This must be a script that was previously registered using the RegisteredScript resource. Script IDs are assigned by Webflow when the script is registered.
        """
        location: pulumi.Input[_builtins.str]
        """
        Where the script should be applied on the page. Must be either 'header' (loaded in page header) or 'footer' (loaded at end of page). Use 'header' for scripts that don't depend on DOM elements. Use 'footer' for scripts that need to run after DOM is fully loaded.
        """
        version: pulumi.Input[_builtins.str]
        """
        The semantic version string for the registered script (e.g., '1.0.0'). This version must match a registered version of the script. You can have multiple versions of the same script registered.
        """
elif False:
    PageCustomCodeScriptArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class PageCustomCodeScriptArgs:
    def __init__(__self__, *,
                 attributes: pulumi.Input[Mapping[str, Any]],
                 id: pulumi.Input[_builtins.str],
                 location: pulumi.Input[_builtins.str],
                 version: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[Mapping[str, Any]] attributes: Optional developer-specified key/value pairs for script attributes. These attributes can be used by the script to customize its behavior on this page.
        :param pulumi.Input[_builtins.str] id: The unique identifier of a registered custom code script. This must be a script that was previously registered using the RegisteredScript resource. Script IDs are assigned by Webflow when the script is registered.
        :param pulumi.Input[_builtins.str] location: Where the script should be applied on the page. Must be either 'header' (loaded in page header) or 'footer' (loaded at end of page). Use 'header' for scripts that don't depend on DOM elements. Use 'footer' for scripts that need to run after DOM is fully loaded.
        :param pulumi.Input[_builtins.str] version: The semantic version string for the registered script (e.g., '1.0.0'). This version must match a registered version of the script. You can have multiple versions of the same script registered.
        """
        pulumi.set(__self__, "attributes", attributes)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "location", location)
        pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter
    def attributes(self) -> pulumi.Input[Mapping[str, Any]]:
        """
        Optional developer-specified key/value pairs for script attributes. These attributes can be used by the script to customize its behavior on this page.
        """
        return pulumi.get(self, "attributes")

    @attributes.setter
    def attributes(self, value: pulumi.Input[Mapping[str, Any]]):
        pulumi.set(self, "attributes", value)

    @_builtins.property
    @pulumi.getter
    def id(self) -> pulumi.Input[_builtins.str]:
        """
        The unique identifier of a registered custom code script. This must be a script that was previously registered using the RegisteredScript resource. Script IDs are assigned by Webflow when the script is registered.
        """
        return pulumi.get(self, "id")

    @id.setter
    def id(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "id", value)

    @_builtins.property
    @pulumi.getter
    def location(self) -> pulumi.Input[_builtins.str]:
        """
        Where the script should be applied on the page. Must be either 'header' (loaded in page header) or 'footer' (loaded at end of page). Use 'header' for scripts that don't depend on DOM elements. Use 'footer' for scripts that need to run after DOM is fully loaded.
        """
        return pulumi.get(self, "location")

    @location.setter
    def location(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "location", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> pulumi.Input[_builtins.str]:
        """
        The semantic version string for the registered script (e.g., '1.0.0'). This version must match a registered version of the script. You can have multiple versions of the same script registered.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "version", value)


