Module cvpysdk.backupsets.postgresbackupset

File for operating on a Postgres Server Backupset

PostgresBackupset is the only class defined in this file.

PostgresBackupset: Derived class from Backupset Base class, representing a Postgres server backupset, and to perform operations on that backupset

PostgresBackupset:

run_live_sync()                      --  runs live sync replication operation

configure_live_sync()                --  runs the Task API with the request JSON provided
to create live sync configuration, and returns the contents after parsing the response

restore_postgres_server()            --  method to restore the Postgres server
Expand source code Browse git
# -*- coding: utf-8 -*-

# --------------------------------------------------------------------------
# Copyright Commvault Systems, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# --------------------------------------------------------------------------

"""File for operating on a Postgres Server Backupset

PostgresBackupset is the only class defined in this file.

PostgresBackupset: Derived class from Backupset Base class, representing a Postgres
server backupset, and to perform operations on that backupset

PostgresBackupset:
==================

    run_live_sync()                      --  runs live sync replication operation

    configure_live_sync()                --  runs the Task API with the request JSON provided
    to create live sync configuration, and returns the contents after parsing the response

    restore_postgres_server()            --  method to restore the Postgres server

"""
from __future__ import unicode_literals
from ..backupset import Backupset
from ..exception import SDKException
from ..schedules import Schedule, Schedules


class PostgresBackupset(Backupset):
    """Derived class from Backupset Base class, representing a postgres backupset,
        and to perform operations on that backupset."""

    def __init__(self, instance_object, backupset_name, backupset_id=None):
        """
        Constructor for the class

        Args:
            instance_object   (obj)     -- instance object

            backupset_name    (str)     -- name of the backupset

            backupset_id      (str)     -- id of the backupset

        """
        super(PostgresBackupset, self).__init__(
            instance_object, backupset_name, backupset_id)
        self._LIVE_SYNC = self._commcell_object._services['LIVE_SYNC']

    def configure_live_sync(self, request_json):
        """Runs the Task API with the request JSON provided to create live sync configuration,
            and returns the contents after parsing the response.

            Args:
                request_json    (dict)  --  JSON request to run for the API

            Returns:
                object - instance of the Schedule class

            Raises:
                SDKException:
                    if live sync configuration fails

                    if response is empty

                    if response is not success
        """
        flag, response = self._cvpysdk_object.make_request('POST', self._LIVE_SYNC, request_json)

        if flag:
            if response.json():
                if "taskId" in response.json():
                    return Schedules(self._commcell_object).get(task_id=response.json()['taskId'])

                elif "errorCode" in response.json():
                    error_message = response.json()['errorMessage']

                    error_message = 'Live Sync configuration failed\nError: "{0}"'.format(
                        error_message)
                    raise SDKException('Backupset', '102', error_message)
                else:
                    raise SDKException('Backupset', '102', 'Failed to create schedule')
            else:
                raise SDKException('Backupset', '102')
        else:
            raise SDKException('Backupset', '101', self._update_response_(response.text))

    def run_live_sync(
            self,
            dest_client_name,
            dest_instance_name,
            baseline_job):
        """runs live sync replication operation

            Args:

                dest_client_name        (str)   --  destination client name where files are to be
                restored

                dest_instance_name      (str)   --  destination postgres instance name of
                destination client

                baseline_job            (obj)   --  baseline backup job object

            Returns:
                object - instance of the Schedule class

        """
        instance_object = self._instance_object
        instance_object._restore_association = self._properties["backupSetEntity"]
        request_json = instance_object._restore_json(
            paths=["/data"],
            dest_client_name=dest_client_name,
            dest_instance_name=dest_instance_name,
            backupset_name="fsbasedbackupset",
            backupset_flag=True,
            no_image=True,
            overwrite=True,
            baseline_jobid=int(baseline_job.job_id),
            baseline_ref_time=int(baseline_job.summary['jobStartTime']))

        request_json['taskInfo']['subTasks'][0]['options']['backupOpts'] = {
            'backupLevel': 2,
            'vsaBackupOptions': {}
            }
        request_json['taskInfo']['task']['taskType'] = 2
        request_json['taskInfo']['subTasks'][0]['subTask']['operationType'] = 1007
        request_json['taskInfo']['subTasks'][0]['subTask']['subTaskName'] = "automation"
        request_json['taskInfo']['subTasks'][0]['pattern'] = {
            "freq_type": 4096,
            "timeZone": {
                "TimeZoneName": "(UTC) Coordinated Universal Time"
                }
            }

        return self.configure_live_sync(request_json)

    def restore_postgres_server(
            self,
            database_list=None,
            dest_client_name=None,
            dest_instance_name=None,
            copy_precedence=None,
            from_time=None,
            to_time=None,
            clone_env=False,
            clone_options=None,
            media_agent=None,
            table_level_restore=False,
            staging_path=None,
            no_of_streams=None,
            volume_level_restore=False,
            redirect_enabled=False,
            redirect_path=None,
            restore_to_disk=False,
            restore_to_disk_job=None,
            destination_path=None,
            revert=False):
        """
        Method to restore the Postgres server

            Args:

                database_list               (List) -- List of databases

                dest_client_name            (str)  -- Destination Client name

                dest_instance_name          (str)  -- Destination Instance name

                copy_precedence             (int)  -- Copy precedence associted with storage

                from_time               (str)   --  time to retore the contents after
                    format: YYYY-MM-DD HH:MM:SS

                    default: None

                to_time                 (str)   --  time to retore the contents before
                    format: YYYY-MM-DD HH:MM:SS

                    default: None

                clone_env                   (bool)  --  boolean to specify whether the database
                should be cloned or not

                    default: False

                clone_options               (dict)  --  clone restore options passed in a dict

                    default: None

                    Accepted format: {
                                        "stagingLocaion": "/gk_snap",
                                        "forceCleanup": True,
                                        "port": "5595",
                                        "libDirectory": "/opt/PostgreSQL/9.6/lib",
                                        "isInstanceSelected": True,
                                        "reservationPeriodS": 3600,
                                        "user": "postgres",
                                        "binaryDirectory": "/opt/PostgreSQL/9.6/bin"

                                     }

                media_agent             (str)   --  media agent name

                    default: None

                table_level_restore     (bool)  --  boolean to specify if the restore operation
                is table level

                    default: False

                staging_path            (str)   --  staging path location for table level restore

                    default: None

                no_of_streams           (int)   --  number of streams to be used by
                volume level restore

                    default: None

                volume_level_restore    (bool)  --  volume level restore flag

                    default: False

                redirect_enabled         (bool)  --  boolean to specify if redirect restore is
                enabled

                    default: False

                redirect_path           (str)   --  Path specified in advanced restore options
                in order to perform redirect restore

                    default: None

                restore_to_disk         (bool)  --  restore to disk flag

                    default: False

                restore_to_disk_job     (list)   --  list of backup job ids to restore to disk

                    default: None

                destination_path        (str)   --  destination path for restore

                    default: None

                revert                 (bool)  --  boolean to specify whether to do a
                                                   hardware revert in restore
                    default: False

            Returns:
                object -- Job containing restore details

        """
        instance_object = self._instance_object
        if dest_client_name is None:
            dest_client_name = instance_object._agent_object._client_object.client_name

        if dest_instance_name is None:
            dest_instance_name = instance_object.instance_name

        backupset_name = self.backupset_name

        if backupset_name.lower() == "fsbasedbackupset":
            backupset_flag = True
            if database_list is None:
                database_list = ["/data"]
        else:
            backupset_flag = False

        instance_object._restore_association = self._properties['backupSetEntity']
        return instance_object.restore_in_place(
            database_list,
            dest_client_name,
            dest_instance_name,
            backupset_name,
            backupset_flag,
            copy_precedence=copy_precedence,
            from_time=from_time,
            to_time=to_time,
            clone_env=clone_env,
            clone_options=clone_options,
            media_agent=media_agent,
            table_level_restore=table_level_restore,
            staging_path=staging_path,
            no_of_streams=no_of_streams,
            volume_level_restore=volume_level_restore,
            redirect_enabled=redirect_enabled,
            redirect_path=redirect_path,
            restore_to_disk=restore_to_disk,
            restore_to_disk_job=restore_to_disk_job,
            destination_path=destination_path,
            revert=revert)

Classes

class PostgresBackupset (instance_object, backupset_name, backupset_id=None)

Derived class from Backupset Base class, representing a postgres backupset, and to perform operations on that backupset.

Constructor for the class

Args

instance_object (obj) – instance object

backupset_name (str) – name of the backupset

backupset_id (str) – id of the backupset

Expand source code Browse git
class PostgresBackupset(Backupset):
    """Derived class from Backupset Base class, representing a postgres backupset,
        and to perform operations on that backupset."""

    def __init__(self, instance_object, backupset_name, backupset_id=None):
        """
        Constructor for the class

        Args:
            instance_object   (obj)     -- instance object

            backupset_name    (str)     -- name of the backupset

            backupset_id      (str)     -- id of the backupset

        """
        super(PostgresBackupset, self).__init__(
            instance_object, backupset_name, backupset_id)
        self._LIVE_SYNC = self._commcell_object._services['LIVE_SYNC']

    def configure_live_sync(self, request_json):
        """Runs the Task API with the request JSON provided to create live sync configuration,
            and returns the contents after parsing the response.

            Args:
                request_json    (dict)  --  JSON request to run for the API

            Returns:
                object - instance of the Schedule class

            Raises:
                SDKException:
                    if live sync configuration fails

                    if response is empty

                    if response is not success
        """
        flag, response = self._cvpysdk_object.make_request('POST', self._LIVE_SYNC, request_json)

        if flag:
            if response.json():
                if "taskId" in response.json():
                    return Schedules(self._commcell_object).get(task_id=response.json()['taskId'])

                elif "errorCode" in response.json():
                    error_message = response.json()['errorMessage']

                    error_message = 'Live Sync configuration failed\nError: "{0}"'.format(
                        error_message)
                    raise SDKException('Backupset', '102', error_message)
                else:
                    raise SDKException('Backupset', '102', 'Failed to create schedule')
            else:
                raise SDKException('Backupset', '102')
        else:
            raise SDKException('Backupset', '101', self._update_response_(response.text))

    def run_live_sync(
            self,
            dest_client_name,
            dest_instance_name,
            baseline_job):
        """runs live sync replication operation

            Args:

                dest_client_name        (str)   --  destination client name where files are to be
                restored

                dest_instance_name      (str)   --  destination postgres instance name of
                destination client

                baseline_job            (obj)   --  baseline backup job object

            Returns:
                object - instance of the Schedule class

        """
        instance_object = self._instance_object
        instance_object._restore_association = self._properties["backupSetEntity"]
        request_json = instance_object._restore_json(
            paths=["/data"],
            dest_client_name=dest_client_name,
            dest_instance_name=dest_instance_name,
            backupset_name="fsbasedbackupset",
            backupset_flag=True,
            no_image=True,
            overwrite=True,
            baseline_jobid=int(baseline_job.job_id),
            baseline_ref_time=int(baseline_job.summary['jobStartTime']))

        request_json['taskInfo']['subTasks'][0]['options']['backupOpts'] = {
            'backupLevel': 2,
            'vsaBackupOptions': {}
            }
        request_json['taskInfo']['task']['taskType'] = 2
        request_json['taskInfo']['subTasks'][0]['subTask']['operationType'] = 1007
        request_json['taskInfo']['subTasks'][0]['subTask']['subTaskName'] = "automation"
        request_json['taskInfo']['subTasks'][0]['pattern'] = {
            "freq_type": 4096,
            "timeZone": {
                "TimeZoneName": "(UTC) Coordinated Universal Time"
                }
            }

        return self.configure_live_sync(request_json)

    def restore_postgres_server(
            self,
            database_list=None,
            dest_client_name=None,
            dest_instance_name=None,
            copy_precedence=None,
            from_time=None,
            to_time=None,
            clone_env=False,
            clone_options=None,
            media_agent=None,
            table_level_restore=False,
            staging_path=None,
            no_of_streams=None,
            volume_level_restore=False,
            redirect_enabled=False,
            redirect_path=None,
            restore_to_disk=False,
            restore_to_disk_job=None,
            destination_path=None,
            revert=False):
        """
        Method to restore the Postgres server

            Args:

                database_list               (List) -- List of databases

                dest_client_name            (str)  -- Destination Client name

                dest_instance_name          (str)  -- Destination Instance name

                copy_precedence             (int)  -- Copy precedence associted with storage

                from_time               (str)   --  time to retore the contents after
                    format: YYYY-MM-DD HH:MM:SS

                    default: None

                to_time                 (str)   --  time to retore the contents before
                    format: YYYY-MM-DD HH:MM:SS

                    default: None

                clone_env                   (bool)  --  boolean to specify whether the database
                should be cloned or not

                    default: False

                clone_options               (dict)  --  clone restore options passed in a dict

                    default: None

                    Accepted format: {
                                        "stagingLocaion": "/gk_snap",
                                        "forceCleanup": True,
                                        "port": "5595",
                                        "libDirectory": "/opt/PostgreSQL/9.6/lib",
                                        "isInstanceSelected": True,
                                        "reservationPeriodS": 3600,
                                        "user": "postgres",
                                        "binaryDirectory": "/opt/PostgreSQL/9.6/bin"

                                     }

                media_agent             (str)   --  media agent name

                    default: None

                table_level_restore     (bool)  --  boolean to specify if the restore operation
                is table level

                    default: False

                staging_path            (str)   --  staging path location for table level restore

                    default: None

                no_of_streams           (int)   --  number of streams to be used by
                volume level restore

                    default: None

                volume_level_restore    (bool)  --  volume level restore flag

                    default: False

                redirect_enabled         (bool)  --  boolean to specify if redirect restore is
                enabled

                    default: False

                redirect_path           (str)   --  Path specified in advanced restore options
                in order to perform redirect restore

                    default: None

                restore_to_disk         (bool)  --  restore to disk flag

                    default: False

                restore_to_disk_job     (list)   --  list of backup job ids to restore to disk

                    default: None

                destination_path        (str)   --  destination path for restore

                    default: None

                revert                 (bool)  --  boolean to specify whether to do a
                                                   hardware revert in restore
                    default: False

            Returns:
                object -- Job containing restore details

        """
        instance_object = self._instance_object
        if dest_client_name is None:
            dest_client_name = instance_object._agent_object._client_object.client_name

        if dest_instance_name is None:
            dest_instance_name = instance_object.instance_name

        backupset_name = self.backupset_name

        if backupset_name.lower() == "fsbasedbackupset":
            backupset_flag = True
            if database_list is None:
                database_list = ["/data"]
        else:
            backupset_flag = False

        instance_object._restore_association = self._properties['backupSetEntity']
        return instance_object.restore_in_place(
            database_list,
            dest_client_name,
            dest_instance_name,
            backupset_name,
            backupset_flag,
            copy_precedence=copy_precedence,
            from_time=from_time,
            to_time=to_time,
            clone_env=clone_env,
            clone_options=clone_options,
            media_agent=media_agent,
            table_level_restore=table_level_restore,
            staging_path=staging_path,
            no_of_streams=no_of_streams,
            volume_level_restore=volume_level_restore,
            redirect_enabled=redirect_enabled,
            redirect_path=redirect_path,
            restore_to_disk=restore_to_disk,
            restore_to_disk_job=restore_to_disk_job,
            destination_path=destination_path,
            revert=revert)

Ancestors

Methods

def configure_live_sync(self, request_json)

Runs the Task API with the request JSON provided to create live sync configuration, and returns the contents after parsing the response.

Args

request_json (dict) – JSON request to run for the API

Returns

object - instance of the Schedule class

Raises

SDKException: if live sync configuration fails

if response is empty

if response is not success
Expand source code Browse git
def configure_live_sync(self, request_json):
    """Runs the Task API with the request JSON provided to create live sync configuration,
        and returns the contents after parsing the response.

        Args:
            request_json    (dict)  --  JSON request to run for the API

        Returns:
            object - instance of the Schedule class

        Raises:
            SDKException:
                if live sync configuration fails

                if response is empty

                if response is not success
    """
    flag, response = self._cvpysdk_object.make_request('POST', self._LIVE_SYNC, request_json)

    if flag:
        if response.json():
            if "taskId" in response.json():
                return Schedules(self._commcell_object).get(task_id=response.json()['taskId'])

            elif "errorCode" in response.json():
                error_message = response.json()['errorMessage']

                error_message = 'Live Sync configuration failed\nError: "{0}"'.format(
                    error_message)
                raise SDKException('Backupset', '102', error_message)
            else:
                raise SDKException('Backupset', '102', 'Failed to create schedule')
        else:
            raise SDKException('Backupset', '102')
    else:
        raise SDKException('Backupset', '101', self._update_response_(response.text))
def restore_postgres_server(self, database_list=None, dest_client_name=None, dest_instance_name=None, copy_precedence=None, from_time=None, to_time=None, clone_env=False, clone_options=None, media_agent=None, table_level_restore=False, staging_path=None, no_of_streams=None, volume_level_restore=False, redirect_enabled=False, redirect_path=None, restore_to_disk=False, restore_to_disk_job=None, destination_path=None, revert=False)

Method to restore the Postgres server

Args:

    database_list               (List) -- List of databases

    dest_client_name            (str)  -- Destination Client name

    dest_instance_name          (str)  -- Destination Instance name

    copy_precedence             (int)  -- Copy precedence associted with storage

    from_time               (str)   --  time to retore the contents after
        format: YYYY-MM-DD HH:MM:SS

        default: None

    to_time                 (str)   --  time to retore the contents before
        format: YYYY-MM-DD HH:MM:SS

        default: None

    clone_env                   (bool)  --  boolean to specify whether the database
    should be cloned or not

        default: False

    clone_options               (dict)  --  clone restore options passed in a dict

        default: None

        Accepted format: {
                            "stagingLocaion": "/gk_snap",
                            "forceCleanup": True,
                            "port": "5595",
                            "libDirectory": "/opt/PostgreSQL/9.6/lib",
                            "isInstanceSelected": True,
                            "reservationPeriodS": 3600,
                            "user": "postgres",
                            "binaryDirectory": "/opt/PostgreSQL/9.6/bin"

                         }

    media_agent             (str)   --  media agent name

        default: None

    table_level_restore     (bool)  --  boolean to specify if the restore operation
    is table level

        default: False

    staging_path            (str)   --  staging path location for table level restore

        default: None

    no_of_streams           (int)   --  number of streams to be used by
    volume level restore

        default: None

    volume_level_restore    (bool)  --  volume level restore flag

        default: False

    redirect_enabled         (bool)  --  boolean to specify if redirect restore is
    enabled

        default: False

    redirect_path           (str)   --  Path specified in advanced restore options
    in order to perform redirect restore

        default: None

    restore_to_disk         (bool)  --  restore to disk flag

        default: False

    restore_to_disk_job     (list)   --  list of backup job ids to restore to disk

        default: None

    destination_path        (str)   --  destination path for restore

        default: None

    revert                 (bool)  --  boolean to specify whether to do a
                                       hardware revert in restore
        default: False

Returns:
    object -- Job containing restore details
Expand source code Browse git
def restore_postgres_server(
        self,
        database_list=None,
        dest_client_name=None,
        dest_instance_name=None,
        copy_precedence=None,
        from_time=None,
        to_time=None,
        clone_env=False,
        clone_options=None,
        media_agent=None,
        table_level_restore=False,
        staging_path=None,
        no_of_streams=None,
        volume_level_restore=False,
        redirect_enabled=False,
        redirect_path=None,
        restore_to_disk=False,
        restore_to_disk_job=None,
        destination_path=None,
        revert=False):
    """
    Method to restore the Postgres server

        Args:

            database_list               (List) -- List of databases

            dest_client_name            (str)  -- Destination Client name

            dest_instance_name          (str)  -- Destination Instance name

            copy_precedence             (int)  -- Copy precedence associted with storage

            from_time               (str)   --  time to retore the contents after
                format: YYYY-MM-DD HH:MM:SS

                default: None

            to_time                 (str)   --  time to retore the contents before
                format: YYYY-MM-DD HH:MM:SS

                default: None

            clone_env                   (bool)  --  boolean to specify whether the database
            should be cloned or not

                default: False

            clone_options               (dict)  --  clone restore options passed in a dict

                default: None

                Accepted format: {
                                    "stagingLocaion": "/gk_snap",
                                    "forceCleanup": True,
                                    "port": "5595",
                                    "libDirectory": "/opt/PostgreSQL/9.6/lib",
                                    "isInstanceSelected": True,
                                    "reservationPeriodS": 3600,
                                    "user": "postgres",
                                    "binaryDirectory": "/opt/PostgreSQL/9.6/bin"

                                 }

            media_agent             (str)   --  media agent name

                default: None

            table_level_restore     (bool)  --  boolean to specify if the restore operation
            is table level

                default: False

            staging_path            (str)   --  staging path location for table level restore

                default: None

            no_of_streams           (int)   --  number of streams to be used by
            volume level restore

                default: None

            volume_level_restore    (bool)  --  volume level restore flag

                default: False

            redirect_enabled         (bool)  --  boolean to specify if redirect restore is
            enabled

                default: False

            redirect_path           (str)   --  Path specified in advanced restore options
            in order to perform redirect restore

                default: None

            restore_to_disk         (bool)  --  restore to disk flag

                default: False

            restore_to_disk_job     (list)   --  list of backup job ids to restore to disk

                default: None

            destination_path        (str)   --  destination path for restore

                default: None

            revert                 (bool)  --  boolean to specify whether to do a
                                               hardware revert in restore
                default: False

        Returns:
            object -- Job containing restore details

    """
    instance_object = self._instance_object
    if dest_client_name is None:
        dest_client_name = instance_object._agent_object._client_object.client_name

    if dest_instance_name is None:
        dest_instance_name = instance_object.instance_name

    backupset_name = self.backupset_name

    if backupset_name.lower() == "fsbasedbackupset":
        backupset_flag = True
        if database_list is None:
            database_list = ["/data"]
    else:
        backupset_flag = False

    instance_object._restore_association = self._properties['backupSetEntity']
    return instance_object.restore_in_place(
        database_list,
        dest_client_name,
        dest_instance_name,
        backupset_name,
        backupset_flag,
        copy_precedence=copy_precedence,
        from_time=from_time,
        to_time=to_time,
        clone_env=clone_env,
        clone_options=clone_options,
        media_agent=media_agent,
        table_level_restore=table_level_restore,
        staging_path=staging_path,
        no_of_streams=no_of_streams,
        volume_level_restore=volume_level_restore,
        redirect_enabled=redirect_enabled,
        redirect_path=redirect_path,
        restore_to_disk=restore_to_disk,
        restore_to_disk_job=restore_to_disk_job,
        destination_path=destination_path,
        revert=revert)
def run_live_sync(self, dest_client_name, dest_instance_name, baseline_job)

runs live sync replication operation

Args

dest_client_name (str) – destination client name where files are to be restored

dest_instance_name (str) – destination postgres instance name of destination client

baseline_job (obj) – baseline backup job object

Returns

object - instance of the Schedule class

Expand source code Browse git
def run_live_sync(
        self,
        dest_client_name,
        dest_instance_name,
        baseline_job):
    """runs live sync replication operation

        Args:

            dest_client_name        (str)   --  destination client name where files are to be
            restored

            dest_instance_name      (str)   --  destination postgres instance name of
            destination client

            baseline_job            (obj)   --  baseline backup job object

        Returns:
            object - instance of the Schedule class

    """
    instance_object = self._instance_object
    instance_object._restore_association = self._properties["backupSetEntity"]
    request_json = instance_object._restore_json(
        paths=["/data"],
        dest_client_name=dest_client_name,
        dest_instance_name=dest_instance_name,
        backupset_name="fsbasedbackupset",
        backupset_flag=True,
        no_image=True,
        overwrite=True,
        baseline_jobid=int(baseline_job.job_id),
        baseline_ref_time=int(baseline_job.summary['jobStartTime']))

    request_json['taskInfo']['subTasks'][0]['options']['backupOpts'] = {
        'backupLevel': 2,
        'vsaBackupOptions': {}
        }
    request_json['taskInfo']['task']['taskType'] = 2
    request_json['taskInfo']['subTasks'][0]['subTask']['operationType'] = 1007
    request_json['taskInfo']['subTasks'][0]['subTask']['subTaskName'] = "automation"
    request_json['taskInfo']['subTasks'][0]['pattern'] = {
        "freq_type": 4096,
        "timeZone": {
            "TimeZoneName": "(UTC) Coordinated Universal Time"
            }
        }

    return self.configure_live_sync(request_json)

Inherited members