summaryrefslogtreecommitdiffstats
path: root/ansible_collections/lowlydba/sqlserver/plugins/modules/agent_job_schedule.py
blob: cb0232ad00d617e720523f36766ccb769ca5eded (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#!/usr/bin/python
# -*- coding: utf-8 -*-

# (c) 2022, John McCall (@lowlydba)
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)

DOCUMENTATION = r'''
---
module: agent_job_schedule
short_description: Configures a SQL Agent job schedule
description:
  - Configures settings for an agent schedule that can be applied to one or more agent jobs.
version_added: 0.1.0
options:
  schedule:
    description:
      - The name of the schedule.
    type: str
    required: true
  job:
    description:
      - The name of the job that has the schedule.
      - Schedules and jobs can also be associated via M(lowlydba.sqlserver.agent_job).
      - See U(https://docs.dbatools.io/New-DbaAgentSchedule) for more detailed usage.
    type: str
    required: true
  enabled:
    description:
      - Whether the schedule is enabled or disabled.
    type: bool
    required: false
  force:
    description:
      - The force option will ignore some errors in the options and assume defaults.
      - It will also remove the any present schedules with the same name for the specific job.
    type: bool
  frequency_type:
    description:
      - A value indicating when a job is to be executed.
      - If I(force=true) the default will be C(Once).
    type: str
    required: false
    choices: ['Once', 'OneTime', 'Daily', 'Weekly', 'Monthly', 'MonthlyRelative', 'AgentStart', 'AutoStart', 'IdleComputer', 'OnIdle']
  frequency_interval:
    description:
      - The days that a job is executed.
      - Allowed values for I(frequency_type=Daily) - C(EveryDay) or a number between C(1) and C(365) inclusive.
      - >-
        Allowed values for I(frequency_type=Weekly) -
        C(Sunday), C(Monday), C(Tuesday), C(Wednesday), C(Thursday), C(Friday), C(Saturday),
        C(Weekdays), C(Weekend) or C(EveryDay).
      - Allowed values for I(frequency_type=Monthly) - Numbers C(1) through C(31) for each day of the month.
      - If C(Weekdays), C(Weekend) or C(EveryDay) is used it overwrites any other value that has been passed before.
      - If I(force=true) the default will be C(1).
    type: str
    required: false
  frequency_subday_type:
    description:
      - Specifies the units for the subday I(frequency_interval).
    type: str
    required: false
    choices: ['Time', 'Seconds', 'Minutes', 'Hours']
  frequency_subday_interval:
    description:
      - The number of subday type periods to occur between each execution of a job.
    type: int
    required: false
  frequency_relative_interval:
    description:
      - A job's occurrence of I(frequency_interval) in each month. If I(frequency_interval=32) (C(MonthlyRelative)).
    type: str
    required: false
    choices: ['Unused', 'First', 'Second', 'Third', 'Fourth', 'Last']
  frequency_recurrence_factor:
    description:
      - The number of weeks or months between the scheduled execution of a job.
      - Required if I(frequency_type=Weekly), I(frequency_type=Monthly) or I(frequency_type=MonthlyRelative).
    type: int
    required: false
  start_date:
    description:
      - The date on which execution of a job can begin.
      - If I(force=true) the start date will be the current day.
      - Format is C(yyyyMMdd).
    type: str
    required: false
  end_date:
    description:
      - The date on which execution of a job can stop.
      - If I(force=true) the end date will be C(99991231), via dbatools.
      - Format is C(yyyyMMdd).
    type: str
    required: false

  start_time:
    description:
      - The time on any day to begin execution of a job. Format C(HHMMSS) (24 hour clock).
      - If I(force=true) the start time will be C(00:00:00).
    type: str
    required: false
  end_time:
    description:
      - The time on any day to end execution of a job. Format C(HHMMSS) (24 hour clock).
      - If (force=true) the start time will be C(23:59:59).
    type: str
    required: false
author: "John McCall (@lowlydba)"
requirements:
  - L(dbatools,https://www.powershellgallery.com/packages/dbatools/) PowerShell module
extends_documentation_fragment:
  - lowlydba.sqlserver.sql_credentials
  - lowlydba.sqlserver.attributes.check_mode
  - lowlydba.sqlserver.attributes.platform_all
  - lowlydba.sqlserver.state
'''

EXAMPLES = r'''
- name: Create a job schedule
  lowlydba.sqlserver.agent_job_schedule:
    sql_instance: sql-01.myco.io
    schedule: DailySchedule
    force: true
    enabled: true
    start_date: 2020-05-25  # May 25, 2020
    end_date: 2099-05-25    # May 25, 2099
    start_time: 010500      # 01:05:00 AM
    end_time: 140030        # 02:00:30 PM
    state: present

- name: Create a job with schedule
  lowlydba.sqlserver.agent_job:
    sql_instance: sql-01.myco.io
    job: MyJob
    force: true
    schedule: DailySchedule
'''

RETURN = r'''
data:
  description: Output from the C(New-DbaAgentJobSchedule) or C(Remove-DbaAgentJobSchedule) function.
  returned: success, but not in check_mode.
  type: dict
'''