# frozen_string_literal: trueclassGitlab::Client# Defines methods related to pipeline schedules.# @see https://docs.gitlab.com/ce/api/pipeline_schedules.htmlmodulePipelineSchedules# Gets a list of project pipeline schedules.## @example# Gitlab.pipeline_schedules(5)# Gitlab.pipeline_schedules(5, { scope: 'active' })## @param [Integer, String] project the ID or name of a project.# @param [Hash] options A customizable set of options.# @options options [String] :scope The scope of pipeline schedules, one of a 'active' or 'inactive'.# @return [Array<Gitlab::ObjectifiedHash>]defpipeline_schedules(project,options={})get("/projects/#{url_encodeproject}/pipeline_schedules",query: options)end# Gets a single pipeline schedule.## @example# Gitlab.pipeline_schedule(5, 3)## @param [Integer, String] project The ID or name of a project.# @param [Integer] id The ID of the pipeline schedule.# @return [Gitlab::ObjectifiedHash]defpipeline_schedule(project,id)get("/projects/#{url_encodeproject}/pipeline_schedules/#{id}")end# Create a pipeline schedule.## @example# Gitlab.create_pipeline_schedule(5, { description: 'example' })## @param [Integer, String] project The ID or name of a project.# @param [Hash] options A customizable set of options.# @option options [String] :description The description of pipeline scehdule.# @option options [String] :ref The branch/tag name will be triggered.# @option options [String] :cron The cron (e.g. 0 1 * * *).# @option options [String] :cron_timezone The timezone supproted by ActiveSupport::TimeZone (e.g. Pacific Time (US & Canada)) (default: 'UTC').# @option options [Boolean] :active The activation of pipeline schedule. If false is set, the pipeline schedule will deactivated initially (default: true).# @return [Array<Gitlab::ObjectifiedHash>]defcreate_pipeline_schedule(project,options={})post("/projects/#{url_encodeproject}/pipeline_schedules",query: options)end# Updates the pipeline schedule of a project.## @example# Gitlab.edit_pipeline_schedule(3, 2, { description: 'example2' })## @param [Integer, String] project The ID or name of a project.# @param [Integer] The pipeline schedule ID.# @param [Hash] options A customizable set of options.# @option options [String] :description The description of pipeline scehdule.# @option options [String] :ref The branch/tag name will be triggered.# @option options [String] :cron The cron (e.g. 0 1 * * *).# @option options [String] :cron_timezone The timezone supproted by ActiveSupport::TimeZone (e.g. Pacific Time (US & Canada)) (default: 'UTC').# @option options [Boolean] :active The activation of pipeline schedule. If false is set, the pipeline schedule will deactivated initially (default: true).# @return [Array<Gitlab::ObjectifiedHash>] The updated pipeline schedule.defedit_pipeline_schedule(project,pipeline_schedule_id,options={})put("/projects/#{url_encodeproject}/pipeline_schedules/#{pipeline_schedule_id}",query: options)end# Take ownership of a pipeline schedule.## @example# Gitlab.pipeline_schedule_take_ownership(5, 1)## @param [Integer, String] project The ID or name of a project.# @param [Integer] trigger_id The pipeline schedule ID.# @return [Gitlab::ObjectifiedHash] The updated pipeline schedule.defpipeline_schedule_take_ownership(project,pipeline_schedule_id)post("/projects/#{url_encodeproject}/pipeline_schedules/#{pipeline_schedule_id}/take_ownership")end# Delete a pipeline schedule.## @example# Gitlab.delete_pipeline_schedule(5, 1)## @param [Integer, String] project The ID or name of a project.# @param [Integer] trigger_id The pipeline schedule ID.# @return [Gitlab::ObjectifiedHash] The deleted pipeline schedule.defdelete_pipeline_schedule(project,pipeline_schedule_id)delete("/projects/#{url_encodeproject}/pipeline_schedules/#{pipeline_schedule_id}")end# Create a pipeline schedule variable.## @example# Gitlab.create_pipeline_schedule_variable(5, 1, { key: 'foo', value: 'bar' })## @param [Integer, String] project The ID or name of a project.# @param [Integer] trigger_id The pipeline schedule ID.# @param [Hash] options A customizable set of options.# @option options [String] :key The key of a variable; must have no more than 255 characters; only A-Z, a-z, 0-9, and _ are allowed.# @option options [String] :value The value of a variable# @return [Array<Gitlab::ObjectifiedHash>] The created pipeline schedule variable.defcreate_pipeline_schedule_variable(project,pipeline_schedule_id,options={})post("/projects/#{url_encodeproject}/pipeline_schedules/#{pipeline_schedule_id}/variables",query: options)end# Updates the variable of a pipeline schedule.## @example# Gitlab.edit_pipeline_schedule_variable(3, 2, "foo" { value: 'bar' })## @param [Integer, String] project The ID or name of a project.# @param [Integer] The pipeline schedule ID.# @param [String] The key of a variable.# @param [Hash] options A customizable set of options.# @option options [String] :value The value of a variable.# @return [Array<Gitlab::ObjectifiedHash>] The updated pipeline schedule variable.defedit_pipeline_schedule_variable(project,pipeline_schedule_id,key,options={})put("/projects/#{url_encodeproject}/pipeline_schedules/#{pipeline_schedule_id}/variables/#{url_encodekey}",query: options)end# Delete the variable of a pipeline schedule## @example# Gitlab.delete_pipeline_schedule_variable(3, 2, "foo")## @param [Integer, String] project The ID or name of a project.# @param [Integer] The pipeline schedule ID.# @param [String] The key of a variable.# @return [Array<Gitlab::ObjectifiedHash>] The deleted pipeline schedule variable.defdelete_pipeline_schedule_variable(project,pipeline_schedule_id,key,_options={})delete("/projects/#{url_encodeproject}/pipeline_schedules/#{pipeline_schedule_id}/variables/#{url_encodekey}")endendend