Skip to content

Update settings request

UpdateSettingsRequest

Bases: BaseFormItem

Update Form's FormSettings.

Source code in pygsuite/forms/generated/update_settings_request.py
class UpdateSettingsRequest(BaseFormItem):
    """
    Update Form's FormSettings.
    """

    def __init__(  # noqa: C901
        self,
        settings: Optional["FormSettings"] = None,
        update_mask: Optional[str] = None,
        object_info: Optional[Dict] = None,
    ):
        generated: Dict = {}
        if settings is not None:

            generated["settings"] = settings._info
        if update_mask is not None:

            generated["updateMask"] = update_mask
        object_info = object_info or generated
        super().__init__(object_info=object_info)

    @property
    def settings(self) -> "FormSettings":
        return FormSettings(object_info=self._info.get("settings"))

    @settings.setter
    def settings(self, value: "FormSettings"):
        if self._info.get("settings", None) == value:
            return
        self._info["settings"] = value

    @property
    def update_mask(self) -> str:
        return self._info.get("updateMask")

    @update_mask.setter
    def update_mask(self, value: str):
        if self._info.get("updateMask", None) == value:
            return
        self._info["updateMask"] = value

    @property
    def wire_format(self) -> dict:
        base = "UpdateSettings"
        base = base[0].lower() + base[1:]

        request = self._info
        components = "update_settings_request".split("_")
        # if it's an update, we *may* need to provide an update mask
        # generate this automatically to include all fields
        # can be optionally overridden when creating synchronization method
        if components[0] == "update":
            if not self.update_mask:
                target_field = [
                    field for field in request.keys() if field not in ["update_mask", "location"]
                ][0]
                self._info["updateMask"] = ",".join(request[target_field].keys())

        return {base: self._info}