DUMMY_CREATE_SCHEDULED_TASK_FAILURE_RESPONSE_JSON = {
    'messages': [],
    'type': 'DATA',
    'httpStatusCode': 200,
    'response': {
        'messages': [
            {
                'type': 'ERROR',
                'code': 'BEAN_BACKEND_000',
                'message': 'ERROR : BEAN_BACKEND_000 - create, validation failed',
                'cause': None,
                'exception': False,
            }
        ],
        'data': {
            'messages': [],
            'optimisticLockVersion': 0,
            'readOnlySignature': 'SchedulerJobManagePage:1453ea5cfb5bf9c8a7ea92fb18aec59ab2bd1dce43c044c13c5fea86f234ba9e:cee656ee6e4d3178e35da42efbbb8c870c4f545b119103bcda3dbd96a16b0e3c',
            'id': '2f381f04-cbf6-4ce7-a80e-bd51cab0f312',
            'name': {'messages': [], 'type': 'RSTRING', 'value': 'Testing from SDK', 'scrubbed': False},
            'description': {'messages': [], 'type': 'RSTRING', 'value': 'Testing from SDK', 'scrubbed': False},
            'owner': {
                'messages': [],
                'type': 'RSTRING',
                'value': '71c0fe4b-e8b5-11eb-8015-a133d38af703@791759af-e8b5-11eb-8015-e592a7dbb2d0',
                'scrubbed': False,
            },
            'organizationId': {
                'messages': [],
                'type': 'RSTRING',
                'value': '791759af-e8b5-11eb-8015-e592a7dbb2d0',
                'scrubbed': False,
            },
            'type': {
                'messages': [],
                'type': 'RENUM',
                'value': 'PIPELINE_JOB',
                'scrubbed': False,
                'enumClass': 'com.streamsets.apps.scheduler.rbean.SchedulerJobType',
            },
            'executionInfo': {
                '@class': 'com.streamsets.apps.scheduler.rbean.RPipelineJob',
                'messages': [],
                'optimisticLockVersion': 0,
                'readOnlySignature': None,
                'pipelineJobId': {
                    'messages': [],
                    'type': 'RSTRING',
                    'value': 'f0568e7d-90e8-46f7-80f8-1ea58079928f:791759af-e8b5-11eb-8015-e592a7dbb2d0',
                    'scrubbed': False,
                },
                'pipelineJobName': {
                    'messages': [],
                    'type': 'RSTRING',
                    'value': 'Job for testing metrics',
                    'scrubbed': False,
                },
                'action': {
                    'messages': [],
                    'type': 'RENUM',
                    'value': 'START',
                    'scrubbed': False,
                    'enumClass': 'com.streamsets.apps.scheduler.rbean.RPipelineJob$Action',
                },
                'id': None,
            },
            'executionInfoMetadata': None,
            'crontabMask': {
                'messages': [
                    {
                        'type': 'ERROR',
                        'code': 'SCHEDULER_JOB_VALIDATOR_004',
                        'message': "ERROR : SCHEDULER_JOB_VALIDATOR_004 - Job '2f381f04-cbf6-4ce7-a80e-bd51cab0f312' error: Support for specifying both a day-of-week AND a day-of-month parameter is not implemented.",
                        'cause': None,
                        'exception': False,
                    }
                ],
                'type': 'RSTRING',
                'value': '*/5 * * * *',
                'scrubbed': False,
            },
            'timeZone': {
                'messages': [
                    {
                        'type': 'ERROR',
                        'code': 'SCHEDULER_JOB_VALIDATOR_006',
                        'message': "ERROR : SCHEDULER_JOB_VALIDATOR_006 - Job '2f381f04-cbf6-4ce7-a80e-bd51cab0f312' Invalid timezone",
                        'cause': None,
                        'exception': False,
                    }
                ],
                'type': 'RSTRING',
                'value': 'X',
                'scrubbed': False,
            },
            'status': {
                'messages': [],
                'type': 'RENUM',
                'value': 'RUNNING',
                'scrubbed': False,
                'enumClass': 'com.streamsets.apps.scheduler.rbean.RSchedulerJob$Status',
            },
            'startTime': {'messages': [], 'type': 'RDATETIME', 'value': 1711651471031, 'scrubbed': False},
            'endTime': {'messages': [], 'type': 'RDATETIME', 'value': None, 'scrubbed': False},
            'instanceMovePauseTime': {'messages': [], 'type': 'RDATETIME', 'value': None, 'scrubbed': False},
            'missedTriggerHandling': {
                'messages': [],
                'type': 'RENUM',
                'value': 'IGNORE',
                'scrubbed': False,
                'enumClass': 'com.streamsets.apps.scheduler.rbean.RSchedulerJob$MissedTriggerHandling',
            },
            'runs': [],
            'audits': [],
            'nextExecutionTime': {'messages': [], 'type': 'RDATETIME', 'value': None, 'scrubbed': False},
        },
        'success': False,
    },
    'version': '1',
    'metadataUrl': '/scheduler/rest/v2/metadata/SchedulerJobManagePage',
}


DUMMY_INVALID_SCHEDULED_TASK_JSON = {
    # We use 'INVALID' below as a way for the unit test mockup to determine which API response to target, allowing
    # support for both valid/invalid scheduled tasks for testing purposes. Both the ScheduledTask class and the
    # SCH API for ScheduledTask ignore the 'messages' field - adding anything to it gets overwritten/ignored.
    'messages': ['INVALID'],
    'optimisticLockVersion': 0,
    'readOnlySignature': 'SchedulerJobCreatePage:5a61d8f2caf6feef97d20eb9a302b7af63319bf5ce484164a552703b636d8a8a:1817ba8ca21462ac2506dc8a5365254ed3d65acd8eceda1f3a895a3a08268b5f',
    'id': '2f381f04-cbf6-4ce7-a80e-bd51cab0f312',
    'name': {'messages': [], 'type': 'RSTRING', 'value': 'Testing from SDK', 'scrubbed': False},
    'description': {'messages': [], 'type': 'RSTRING', 'value': 'Testing from SDK', 'scrubbed': False},
    'owner': {
        'messages': [],
        'type': 'RSTRING',
        'value': '71c0fe4b-e8b5-11eb-8015-a133d38af703@791759af-e8b5-11eb-8015-e592a7dbb2d0',
        'scrubbed': False,
    },
    'organizationId': {
        'messages': [],
        'type': 'RSTRING',
        'value': '791759af-e8b5-11eb-8015-e592a7dbb2d0',
        'scrubbed': False,
    },
    'type': {
        'messages': [],
        'type': 'RENUM',
        'value': 'PIPELINE_JOB',
        'scrubbed': False,
        'enumClass': 'com.streamsets.apps.scheduler.rbean.SchedulerJobType',
    },
    'executionInfo': {
        '@class': 'com.streamsets.apps.scheduler.rbean.RPipelineJob',
        'messages': [],
        'optimisticLockVersion': 0,
        'readOnlySignature': None,
        'pipelineJobId': {
            'messages': [],
            'type': 'RSTRING',
            'value': 'f0568e7d-90e8-46f7-80f8-1ea58079928f:791759af-e8b5-11eb-8015-e592a7dbb2d0',
            'scrubbed': False,
        },
        'pipelineJobName': {
            'messages': [],
            'type': 'RSTRING',
            'value': 'Job for testing metrics',
            'scrubbed': False,
        },
        'action': {
            'messages': [],
            'type': 'RENUM',
            'value': 'START',
            'scrubbed': False,
            'enumClass': 'com.streamsets.apps.scheduler.rbean.RPipelineJob$Action',
        },
        'id': None,
    },
    'executionInfoMetadata': {
        'name': 'executionInfo',
        'typeDef': {
            'type': 'BEAN',
            'beanClass': 'com.streamsets.apps.scheduler.rbean.RPipelineJob',
            'groups': [],
            'properties': [
                {
                    'name': 'pipelineJobId',
                    'typeDef': {'type': 'RSTRING'},
                    'displayPosition': 10,
                    'group': '',
                    'collapsible': True,
                    'permissions': None,
                    'className': 'col s6',
                    'label': 'Job Id',
                    'description': '',
                    'readOnly': True,
                    'dependencies': {},
                    'required': False,
                    'uiMode': 'link',
                    'defaultValue': {'messages': [], 'type': 'RSTRING', 'value': '', 'scrubbed': False},
                    'canBeEmpty': True,
                    'masked': False,
                    'verify': False,
                    'hidden': False,
                    'maxLen': 0,
                    'selector': None,
                    'selectorDriven': None,
                    'range': None,
                    'uiConfig': '/sch/jobs/monitor/{link}',
                },
                {
                    'name': 'pipelineJobName',
                    'typeDef': {'type': 'RSTRING'},
                    'displayPosition': 20,
                    'group': '',
                    'collapsible': True,
                    'permissions': None,
                    'className': 'col s6',
                    'label': 'Job Name',
                    'description': '',
                    'readOnly': True,
                    'dependencies': {},
                    'required': False,
                    'uiMode': 'default',
                    'defaultValue': {'messages': [], 'type': 'RSTRING', 'value': '', 'scrubbed': False},
                    'canBeEmpty': True,
                    'masked': False,
                    'verify': False,
                    'hidden': False,
                    'maxLen': 0,
                    'selector': None,
                    'selectorDriven': None,
                    'range': None,
                    'uiConfig': '',
                },
                {
                    'name': 'action',
                    'typeDef': {
                        'type': 'RENUM',
                        'enumClass': 'com.streamsets.apps.scheduler.rbean.RPipelineJob$Action',
                    },
                    'displayPosition': 30,
                    'group': '',
                    'collapsible': False,
                    'permissions': None,
                    'className': 'col s6',
                    'label': 'Action',
                    'description': '',
                    'readOnly': False,
                    'dependencies': {},
                    'required': False,
                    'uiMode': 'default',
                    'defaultValue': {
                        'messages': [],
                        'type': 'RENUM',
                        'value': 'START',
                        'scrubbed': False,
                        'enumClass': 'com.streamsets.apps.scheduler.rbean.RPipelineJob$Action',
                    },
                    'canBeEmpty': True,
                    'masked': False,
                    'verify': False,
                    'hidden': False,
                    'maxLen': 0,
                    'selector': {
                        'style': 'DROPDOWN',
                        'allowCustomValue': False,
                        'multiValues': False,
                        'propertyNames': None,
                        'elements': [
                            {'value': 'START', 'label': 'START', 'userChangeable': True, 'properties': {}},
                            {'value': 'STOP', 'label': 'STOP', 'userChangeable': True, 'properties': {}},
                            {'value': 'UPGRADE', 'label': 'UPGRADE', 'userChangeable': True, 'properties': {}},
                        ],
                        'type': 'LIST_SELECTOR',
                    },
                    'selectorDriven': None,
                    'range': None,
                    'uiConfig': '',
                },
            ],
        },
        'displayPosition': 60,
        'group': '',
        'collapsible': True,
        'permissions': None,
        'className': 'col s6',
        'label': 'Pipeline Job',
        'description': '',
        'readOnly': False,
        'dependencies': {},
        'required': False,
        'uiMode': None,
    },
    'crontabMask': {'messages': [], 'type': 'RSTRING', 'value': '*/5 * * * *', 'scrubbed': False},
    'timeZone': {'messages': [], 'type': 'RSTRING', 'value': 'X', 'scrubbed': False},
    'status': {
        'messages': [],
        'type': 'RENUM',
        'value': 'RUNNING',
        'scrubbed': False,
        'enumClass': 'com.streamsets.apps.scheduler.rbean.RSchedulerJob$Status',
    },
    'startTime': {'messages': [], 'type': 'RDATETIME', 'value': 1711651471031, 'scrubbed': False},
    'endTime': {'messages': [], 'type': 'RDATETIME', 'value': None, 'scrubbed': False},
    'instanceMovePauseTime': {'messages': [], 'type': 'RDATETIME', 'value': None, 'scrubbed': False},
    'missedTriggerHandling': {
        'messages': [],
        'type': 'RENUM',
        'value': 'IGNORE',
        'scrubbed': False,
        'enumClass': 'com.streamsets.apps.scheduler.rbean.RSchedulerJob$MissedTriggerHandling',
    },
    'runs': [],
    'audits': [],
    'nextExecutionTime': {'messages': [], 'type': 'RDATETIME', 'value': None, 'scrubbed': False},
}
