ssm

package
v8.0.0+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 19, 2020 License: MIT Imports: 7 Imported by: 1

Documentation

Index

Constants

View Source
const APIVersion = "1.0"

API Version

Variables

View Source
var GenMetadata = map[string]*metadata.Resource{
	"Execution": &metadata.Resource{
		Name: "Execution",
		Description: `An Execution is a launched instance of a CloudApp. Executions can be created from the catalog
by launching an Application, from Designer by launching a Template, or directly in Manager
by using the API and sending the CAT source or CAT Compiled source.
Executions are represented in RightScale Cloud Management by a deployment -- the resources
defined in the CAT are all created in the Deployment. Any action on a running CloudApp should
be made on its Execution resource.
Making changes to any resource directly in the CM deployment
may result in undesired behavior since the Execution only refreshes certain information as a
result of running an Operation on an Execution. For example, if a Server is replaced in CM
instead of through Self-Service, the new Server's information won' be available in
Self-Service.`,
		Identifier: "application/vnd.rightscale.self_service.execution",
		Actions: []*metadata.Action{
			&metadata.Action{
				Name:        "index",
				Description: `List information about the Executions, or use a filter to only return certain Executions. A view can be used for various levels of detail.`,
				PathPatterns: []*metadata.PathPattern{
					&metadata.PathPattern{
						HTTPMethod: "GET",
						Pattern:    "/api/manager/projects/%s/executions",
						Variables:  []string{"project_id"},
						Regexp:     regexp.MustCompile(`/api/manager/projects/([^/]+)/executions`),
					},
				},
				CommandFlags: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "filter[]",
						Description: `Filter by status, syntax is ["status==running"]`,
						Type:        "[]string",
						Location:    metadata.QueryParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "ids[]",
						Description: `An optional list of execution IDs to retrieve`,
						Type:        "[]string",
						Location:    metadata.QueryParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "view",
						Description: `Optional view to return`,
						Type:        "string",
						Location:    metadata.QueryParam,
						Mandatory:   false,
						NonBlank:    false,
						ValidValues: []string{"default", "expanded", "index", "tiny"},
					},
				},
				APIParams: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "filter[]",
						Description: `Filter by status, syntax is ["status==running"]`,
						Type:        "[]string",
						Location:    metadata.QueryParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "ids[]",
						Description: `An optional list of execution IDs to retrieve`,
						Type:        "[]string",
						Location:    metadata.QueryParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "view",
						Description: `Optional view to return`,
						Type:        "string",
						Location:    metadata.QueryParam,
						Mandatory:   false,
						NonBlank:    false,
						ValidValues: []string{"default", "expanded", "index", "tiny"},
					},
				},
			},

			&metadata.Action{
				Name:        "show",
				Description: `Show details for a given Execution. A view can be used for various levels of detail.`,
				PathPatterns: []*metadata.PathPattern{
					&metadata.PathPattern{
						HTTPMethod: "GET",
						Pattern:    "/api/manager/projects/%s/executions/%s",
						Variables:  []string{"project_id", "id"},
						Regexp:     regexp.MustCompile(`/api/manager/projects/([^/]+)/executions/([^/]+)`),
					},
				},
				CommandFlags: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "view",
						Description: `Optional view to return`,
						Type:        "string",
						Location:    metadata.QueryParam,
						Mandatory:   false,
						NonBlank:    false,
						ValidValues: []string{"default", "expanded", "source"},
					},
				},
				APIParams: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "view",
						Description: `Optional view to return`,
						Type:        "string",
						Location:    metadata.QueryParam,
						Mandatory:   false,
						NonBlank:    false,
						ValidValues: []string{"default", "expanded", "source"},
					},
				},
			},

			&metadata.Action{
				Name:        "create",
				Description: `Create a new execution from a CAT, a compiled CAT, an Application in the Catalog, or a Template in Designer`,
				PathPatterns: []*metadata.PathPattern{
					&metadata.PathPattern{
						HTTPMethod: "POST",
						Pattern:    "/api/manager/projects/%s/executions",
						Variables:  []string{"project_id"},
						Regexp:     regexp.MustCompile(`/api/manager/projects/([^/]+)/executions`),
					},
				},
				CommandFlags: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "application_href",
						Description: `The href of the Application in Catalog from which to create the Execution. This attribute is mutually exclusive with: source, compiled_cat, compilation_href and template_href.`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "compilation_href",
						Description: `The href of the Compilation from which to create the Execution. This attribute is mutually exclusive with: source, compiled_cat, template_href and application_href. NOTE: This requires :designer role at least.`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "compiled_cat[cat_parser_gem_version]",
						Description: ``,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "compiled_cat[compiler_ver]",
						Description: ``,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "compiled_cat[conditions]",
						Description: ``,
						Type:        "map",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "compiled_cat[definitions]",
						Description: ``,
						Type:        "map",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "compiled_cat[dependency_hashes][]",
						Description: ``,
						Type:        "map",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "compiled_cat[imports]",
						Description: ``,
						Type:        "map",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "compiled_cat[long_description]",
						Description: ``,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "compiled_cat[mappings]",
						Description: ``,
						Type:        "map",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "compiled_cat[name]",
						Description: ``,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "compiled_cat[dependency_hashes][]",
						Description: ``,
						Type:        "map",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "compiled_cat[operations]",
						Description: ``,
						Type:        "map",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "compiled_cat[outputs]",
						Description: ``,
						Type:        "map",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "compiled_cat[package]",
						Description: ``,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "compiled_cat[parameters]",
						Description: ``,
						Type:        "map",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "compiled_cat[permissions]",
						Description: ``,
						Type:        "map",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "compiled_cat[dependency_hashes][]",
						Description: ``,
						Type:        "map",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "compiled_cat[resources]",
						Description: ``,
						Type:        "map",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "compiled_cat[rs_ca_ver]",
						Description: ``,
						Type:        "int",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "compiled_cat[short_description]",
						Description: ``,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "compiled_cat[source]",
						Description: ``,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "current_schedule",
						Description: `The currently selected schedule name, or nil for CloudApps using the '24/7' schedule`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "defer_launch",
						Description: `Whether or not to defer launching the execution. Setting this value to true will keep the execution in not_started state until it is explicitly launched or the first scheduled start operation occurs.`,
						Type:        "bool",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "description",
						Description: `The description for the execution. The short_description of the Template will be used if none is provided.`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "ends_at",
						Description: `The day on which the CloudApp should be automatically terminated`,
						Type:        "*time.Time",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "name",
						Description: `The name for the Execution. The Template name will be used if none is provided. This will be used as the name of the deployment (appended with a unique ID).`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "options[][name]",
						Description: `Name of configuration option`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "options[][type]",
						Description: `Type of configuration option.`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
						ValidValues: []string{"string", "number", "list"},
					},
					&metadata.ActionParam{
						Name:        "options[][value]",
						Description: `Configuration option value, a string, integer or array of strings depending on type`,
						Type:        "interface{}",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "schedule_required",
						Description: `Whether the CloudApp requires a schedule. If set to false, allows user to pick from '24/7' schedule in the UI`,
						Type:        "bool",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][action]",
						Description: `The name of the action to be run. When the value is "run", the "operation" struct should contain the name of the operation to run as well as any options needed by the operation.`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
						ValidValues: []string{"launch", "start", "stop", "terminate", "run"},
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][created_by][email]",
						Description: `User email`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][created_by][id]",
						Description: `User id`,
						Type:        "int",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][created_by][name]",
						Description: `User name, usually of the form "First Last"`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][compilation_href]",
						Description: `The HREF of the compilation used to create this execution`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][cost][unit]",
						Description: `Currency used for the cost value`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][cost][updated_at]",
						Description: `Timestamp of last cost refresh`,
						Type:        "*time.Time",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][cost][value]",
						Description: `Amount of instance usage in CloudApp deployment, only available roughly 24 hours after launch, empty if not available`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][created_by][email]",
						Description: `User email`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][created_by][id]",
						Description: `User id`,
						Type:        "int",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][created_by][name]",
						Description: `User name, usually of the form "First Last"`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][current_schedule]",
						Description: `The currently selected schedule name, or nil for CloudApps using the '24/7' schedule`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][deployment]",
						Description: `CloudApp deployment href`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][deployment_url]",
						Description: `URL of the CloudApp deployment in the Cloud Management Dashboard`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][description]",
						Description: `Description of execution`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][ends_at]",
						Description: `The time of the next 'terminate' ScheduledAction (if any).`,
						Type:        "*time.Time",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][href]",
						Description: `Execution href`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][created_by][id]",
						Description: `User id`,
						Type:        "int",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][kind]",
						Description: `The kind of this resource, always self_service#execution`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][latest_notification][category]",
						Description: `Notification category, info or error`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
						ValidValues: []string{"info", "error", "status_update"},
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][href]",
						Description: `Execution href`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][created_by][id]",
						Description: `User id`,
						Type:        "int",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][kind]",
						Description: `The kind of this resource, always self_service#execution`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][latest_notification][message]",
						Description: `Notification content`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][latest_notification][read]",
						Description: `Whether notification was marked as read (not currently used)`,
						Type:        "bool",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][latest_notification][timestamps][created_at]",
						Description: `Creation timestamp`,
						Type:        "*time.Time",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][launched_from][type]",
						Description: `The type of the value (one of: application, template, compiled_cat, source, compilation`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][cost][value]",
						Description: `Amount of instance usage in CloudApp deployment, only available roughly 24 hours after launch, empty if not available`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][launched_from_summary]",
						Description: `How the CloudApp was launched, either from Application, Template, source, or compiled_cat`,
						Type:        "map",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][created_by][name]",
						Description: `User name, usually of the form "First Last"`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][action]",
						Description: `The name of the action to be run. When the value is "run", the "operation" struct should contain the name of the operation to run as well as any options needed by the operation.`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
						ValidValues: []string{"launch", "start", "stop", "terminate", "run"},
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][created_by][email]",
						Description: `User email`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][created_by][id]",
						Description: `User id`,
						Type:        "int",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][created_by][name]",
						Description: `User name, usually of the form "First Last"`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][next_action][execution_schedule]",
						Description: `Indicates ScheduledActions that were created by the system as part of an execution schedule.`,
						Type:        "bool",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][next_action][first_occurrence]",
						Description: `The time and day of the first occurrence when the action will be ran, similar to the "DTSTART" property specified by iCal. Used (in conjunction with timezone) to determine the time of day for the "next_occurrence". Can be set to the future or past. DateTimes should be passed as ISO-8601 formatted time strings.  All DateTimes are converted to UTC when returned.`,
						Type:        "*time.Time",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][href]",
						Description: `Execution href`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][created_by][id]",
						Description: `User id`,
						Type:        "int",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][kind]",
						Description: `The kind of this resource, always self_service#execution`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][created_by][name]",
						Description: `User name, usually of the form "First Last"`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][next_action][next_occurrence]",
						Description: `The Date/Time for the next occurrence. Since "DateTime implies a timezone offset (but no DST preference), the "timezone" parameter will be used to determine the DST preference. All DateTimes are converted to UTC when returned.`,
						Type:        "*time.Time",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][created_by][name]",
						Description: `User name, usually of the form "First Last"`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][next_action][recurrence]",
						Description: `iCal recurrence rule (RRULE) as described by RFC 5545. Expresses the days on which the action will be run. Optionally a "last occurrence" date can be set by passing the iCal "UNTIL" parameter in the rule (date-time must be passed in ISO-8601 format). If omitted, the action will only be run once, on the "first_occurrence".`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][next_action][recurrence_description]",
						Description: `Read-only attribute that gets automatically generated from the recurrence definition`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][latest_notification][timestamps][created_at]",
						Description: `Creation timestamp`,
						Type:        "*time.Time",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][next_action][timezone]",
						Description: `The timezone in which the "first_occurrence" and "next_occurrence" times will be interpreted. Used to determine when Daylight Savings Time changes occur. Supports standardized "tzinfo" names [found here](http://www.iana.org/time-zones).`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][schedule_required]",
						Description: `Whether the CloudApp requires a schedule. If set to false, allows user to pick from '24/7' schedule in the UI`,
						Type:        "bool",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][scheduled]",
						Description: `Indicates whether or not an execution has a scheduled start action`,
						Type:        "bool",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][source]",
						Description: `Original CAT source`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][status]",
						Description: `Execution status.`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
						ValidValues: []string{"not_started", "launching", "starting", "enabling", "running", "disabling", "disabled", "terminating", "stopping", "waiting_for_operations", "canceling_operations", "stopped", "terminated", "failed", "provisioning", "decommissioning", "decommissioned"},
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][latest_notification][timestamps][created_at]",
						Description: `Creation timestamp`,
						Type:        "*time.Time",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][next_action][execution_schedule]",
						Description: `Indicates ScheduledActions that were created by the system as part of an execution schedule.`,
						Type:        "bool",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][next_action][first_occurrence]",
						Description: `The time and day of the first occurrence when the action will be ran, similar to the "DTSTART" property specified by iCal. Used (in conjunction with timezone) to determine the time of day for the "next_occurrence". Can be set to the future or past. DateTimes should be passed as ISO-8601 formatted time strings.  All DateTimes are converted to UTC when returned.`,
						Type:        "*time.Time",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][href]",
						Description: `Execution href`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][created_by][id]",
						Description: `User id`,
						Type:        "int",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][kind]",
						Description: `The kind of this resource, always self_service#execution`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][created_by][name]",
						Description: `User name, usually of the form "First Last"`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][next_action][next_occurrence]",
						Description: `The Date/Time for the next occurrence. Since "DateTime implies a timezone offset (but no DST preference), the "timezone" parameter will be used to determine the DST preference. All DateTimes are converted to UTC when returned.`,
						Type:        "*time.Time",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][created_by][name]",
						Description: `User name, usually of the form "First Last"`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][next_action][recurrence]",
						Description: `iCal recurrence rule (RRULE) as described by RFC 5545. Expresses the days on which the action will be run. Optionally a "last occurrence" date can be set by passing the iCal "UNTIL" parameter in the rule (date-time must be passed in ISO-8601 format). If omitted, the action will only be run once, on the "first_occurrence".`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][next_action][recurrence_description]",
						Description: `Read-only attribute that gets automatically generated from the recurrence definition`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][latest_notification][timestamps][created_at]",
						Description: `Creation timestamp`,
						Type:        "*time.Time",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions[][execution][next_action][timezone]",
						Description: `The timezone in which the "first_occurrence" and "next_occurrence" times will be interpreted. Used to determine when Daylight Savings Time changes occur. Supports standardized "tzinfo" names [found here](http://www.iana.org/time-zones).`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "schedules[][created_from]",
						Description: `optional HREF of the Schedule resource used to create this schedule`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "schedules[][description]",
						Description: `An optional description that will help users understand the purpose of the Schedule`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "schedules[][name]",
						Description: `The name of the Schedule`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "schedules[][start_recurrence][hour]",
						Description: `The hour of day from 0 to 23.`,
						Type:        "int",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "schedules[][start_recurrence][minute]",
						Description: `The minute from 0 to 59.`,
						Type:        "int",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "schedules[][start_recurrence][rule]",
						Description: `A RRULE string describing the recurrence rule.`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "schedules[][start_recurrence][hour]",
						Description: `The hour of day from 0 to 23.`,
						Type:        "int",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "schedules[][start_recurrence][minute]",
						Description: `The minute from 0 to 59.`,
						Type:        "int",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "schedules[][start_recurrence][rule]",
						Description: `A RRULE string describing the recurrence rule.`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "source",
						Description: `The raw CAT source from which to create the Execution. The CAT will be compiled first and then launched if successful. This attribute is mutually exclusive with: compiled_cat, template_href, compilation_href and application_href.`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "template_href",
						Description: `The href of the Template in Designer from which to create the Execution. This attribute is mutually exclusive with: source, compiled_cat, compilation_href and application_href. NOTE: This requires :designer role at least.`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
				},
				APIParams: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "application_href",
						Description: `The href of the Application in Catalog from which to create the Execution. This attribute is mutually exclusive with: source, compiled_cat, compilation_href and template_href.`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "compilation_href",
						Description: `The href of the Compilation from which to create the Execution. This attribute is mutually exclusive with: source, compiled_cat, template_href and application_href. NOTE: This requires :designer role at least.`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "compiled_cat",
						Description: `The compiled CAT source from which to create the Execution. This attribute is mutually exclusive with: source, template_href and application_href.`,
						Type:        "*CompiledCAT",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "current_schedule",
						Description: `The currently selected schedule name, or nil for CloudApps using the '24/7' schedule`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "defer_launch",
						Description: `Whether or not to defer launching the execution. Setting this value to true will keep the execution in not_started state until it is explicitly launched or the first scheduled start operation occurs.`,
						Type:        "bool",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "description",
						Description: `The description for the execution. The short_description of the Template will be used if none is provided.`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "ends_at",
						Description: `The day on which the CloudApp should be automatically terminated`,
						Type:        "*time.Time",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "name",
						Description: `The name for the Execution. The Template name will be used if none is provided. This will be used as the name of the deployment (appended with a unique ID).`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "options",
						Description: `The configuration options of the Execution. These are the values provided for the CloudApp parameters.`,
						Type:        "[]*ConfigurationOption",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "schedule_required",
						Description: `Whether the CloudApp requires a schedule. If set to false, allows user to pick from '24/7' schedule in the UI`,
						Type:        "bool",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "scheduled_actions",
						Description: `The inital ScheduledActions to apply to the Execution.`,
						Type:        "[]*ScheduledActionParam",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "schedules",
						Description: `The schedules available to the CloudApp`,
						Type:        "[]*Schedule",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "source",
						Description: `The raw CAT source from which to create the Execution. The CAT will be compiled first and then launched if successful. This attribute is mutually exclusive with: compiled_cat, template_href, compilation_href and application_href.`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "template_href",
						Description: `The href of the Template in Designer from which to create the Execution. This attribute is mutually exclusive with: source, compiled_cat, compilation_href and application_href. NOTE: This requires :designer role at least.`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
				},
			},

			&metadata.Action{
				Name:        "patch",
				Description: `Updates an execution end date or selected schedule.`,
				PathPatterns: []*metadata.PathPattern{
					&metadata.PathPattern{
						HTTPMethod: "PATCH",
						Pattern:    "/api/manager/projects/%s/executions/%s",
						Variables:  []string{"project_id", "id"},
						Regexp:     regexp.MustCompile(`/api/manager/projects/([^/]+)/executions/([^/]+)`),
					},
				},
				CommandFlags: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "current_schedule",
						Description: `The name of the schedule to select, or nil to use the '24/7' schedule`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "ends_at",
						Description: `The day on which the CloudApp should be automatically terminated`,
						Type:        "*time.Time",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
				},
				APIParams: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "current_schedule",
						Description: `The name of the schedule to select, or nil to use the '24/7' schedule`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "ends_at",
						Description: `The day on which the CloudApp should be automatically terminated`,
						Type:        "*time.Time",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
				},
			},

			&metadata.Action{
				Name:        "delete",
				Description: `No description provided for delete.`,
				PathPatterns: []*metadata.PathPattern{
					&metadata.PathPattern{
						HTTPMethod: "DELETE",
						Pattern:    "/api/manager/projects/%s/executions/%s",
						Variables:  []string{"project_id", "id"},
						Regexp:     regexp.MustCompile(`/api/manager/projects/([^/]+)/executions/([^/]+)`),
					},
				},
				CommandFlags: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name: "force",
						Description: `Force delete execution, bypassing state checks (only available to designers and admins).
Note: using this option only deletes the CloudApp from Self-Service and does not modify or terminate resources in any way. Any cloud resources running must be manually destroyed.`,
						Type:      "bool",
						Location:  metadata.QueryParam,
						Mandatory: false,
						NonBlank:  false,
					},
				},
				APIParams: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name: "force",
						Description: `Force delete execution, bypassing state checks (only available to designers and admins).
Note: using this option only deletes the CloudApp from Self-Service and does not modify or terminate resources in any way. Any cloud resources running must be manually destroyed.`,
						Type:      "bool",
						Location:  metadata.QueryParam,
						Mandatory: false,
						NonBlank:  false,
					},
				},
			},

			&metadata.Action{
				Name:        "multi_delete",
				Description: `Delete several executions from the database. Note: if an execution has not successfully been terminated, there may still be associated cloud resources running.`,
				PathPatterns: []*metadata.PathPattern{
					&metadata.PathPattern{
						HTTPMethod: "DELETE",
						Pattern:    "/api/manager/projects/%s/executions",
						Variables:  []string{"project_id"},
						Regexp:     regexp.MustCompile(`/api/manager/projects/([^/]+)/executions`),
					},
				},
				CommandFlags: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name: "force",
						Description: `Force delete execution, bypassing state checks (only available to designers and admins).
Note: using this option only deletes the CloudApp from Self-Service and does not modify or terminate resources in any way. Any cloud resources running must be manually destroyed.`,
						Type:      "bool",
						Location:  metadata.QueryParam,
						Mandatory: false,
						NonBlank:  false,
					},
					&metadata.ActionParam{
						Name:        "ids[]",
						Description: `List of execution IDs to delete`,
						Type:        "[]string",
						Location:    metadata.QueryParam,
						Mandatory:   true,
						NonBlank:    false,
					},
				},
				APIParams: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name: "force",
						Description: `Force delete execution, bypassing state checks (only available to designers and admins).
Note: using this option only deletes the CloudApp from Self-Service and does not modify or terminate resources in any way. Any cloud resources running must be manually destroyed.`,
						Type:      "bool",
						Location:  metadata.QueryParam,
						Mandatory: false,
						NonBlank:  false,
					},
					&metadata.ActionParam{
						Name:        "ids[]",
						Description: `List of execution IDs to delete`,
						Type:        "[]string",
						Location:    metadata.QueryParam,
						Mandatory:   true,
						NonBlank:    false,
					},
				},
			},

			&metadata.Action{
				Name:        "download",
				Description: `Download the CAT source for the execution.`,
				PathPatterns: []*metadata.PathPattern{
					&metadata.PathPattern{
						HTTPMethod: "GET",
						Pattern:    "/api/manager/projects/%s/executions/%s/download",
						Variables:  []string{"project_id", "id"},
						Regexp:     regexp.MustCompile(`/api/manager/projects/([^/]+)/executions/([^/]+)/download`),
					},
				},
				CommandFlags: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "api_version",
						Description: `The API version (only valid value is currently "1.0")`,
						Type:        "string",
						Location:    metadata.QueryParam,
						Mandatory:   true,
						NonBlank:    false,
					},
				},
				APIParams: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "api_version",
						Description: `The API version (only valid value is currently "1.0")`,
						Type:        "string",
						Location:    metadata.QueryParam,
						Mandatory:   true,
						NonBlank:    false,
					},
				},
			},

			&metadata.Action{
				Name:        "launch",
				Description: `Launch an Execution.`,
				PathPatterns: []*metadata.PathPattern{
					&metadata.PathPattern{
						HTTPMethod: "POST",
						Pattern:    "/api/manager/projects/%s/executions/%s/actions/launch",
						Variables:  []string{"project_id", "id"},
						Regexp:     regexp.MustCompile(`/api/manager/projects/([^/]+)/executions/([^/]+)/actions/launch`),
					},
				},
				CommandFlags: []*metadata.ActionParam{},
				APIParams:    []*metadata.ActionParam{},
			},

			&metadata.Action{
				Name:        "start",
				Description: `Start an Execution.`,
				PathPatterns: []*metadata.PathPattern{
					&metadata.PathPattern{
						HTTPMethod: "POST",
						Pattern:    "/api/manager/projects/%s/executions/%s/actions/start",
						Variables:  []string{"project_id", "id"},
						Regexp:     regexp.MustCompile(`/api/manager/projects/([^/]+)/executions/([^/]+)/actions/start`),
					},
				},
				CommandFlags: []*metadata.ActionParam{},
				APIParams:    []*metadata.ActionParam{},
			},

			&metadata.Action{
				Name:        "stop",
				Description: `Stop an Execution.`,
				PathPatterns: []*metadata.PathPattern{
					&metadata.PathPattern{
						HTTPMethod: "POST",
						Pattern:    "/api/manager/projects/%s/executions/%s/actions/stop",
						Variables:  []string{"project_id", "id"},
						Regexp:     regexp.MustCompile(`/api/manager/projects/([^/]+)/executions/([^/]+)/actions/stop`),
					},
				},
				CommandFlags: []*metadata.ActionParam{},
				APIParams:    []*metadata.ActionParam{},
			},

			&metadata.Action{
				Name:        "terminate",
				Description: `Terminate an Execution.`,
				PathPatterns: []*metadata.PathPattern{
					&metadata.PathPattern{
						HTTPMethod: "POST",
						Pattern:    "/api/manager/projects/%s/executions/%s/actions/terminate",
						Variables:  []string{"project_id", "id"},
						Regexp:     regexp.MustCompile(`/api/manager/projects/([^/]+)/executions/([^/]+)/actions/terminate`),
					},
				},
				CommandFlags: []*metadata.ActionParam{},
				APIParams:    []*metadata.ActionParam{},
			},

			&metadata.Action{
				Name:        "multi_launch",
				Description: `Launch several Executions.`,
				PathPatterns: []*metadata.PathPattern{
					&metadata.PathPattern{
						HTTPMethod: "POST",
						Pattern:    "/api/manager/projects/%s/executions/actions/launch",
						Variables:  []string{"project_id"},
						Regexp:     regexp.MustCompile(`/api/manager/projects/([^/]+)/executions/actions/launch`),
					},
				},
				CommandFlags: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "ids[]",
						Description: `List of execution IDs to launch`,
						Type:        "[]string",
						Location:    metadata.QueryParam,
						Mandatory:   true,
						NonBlank:    false,
					},
				},
				APIParams: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "ids[]",
						Description: `List of execution IDs to launch`,
						Type:        "[]string",
						Location:    metadata.QueryParam,
						Mandatory:   true,
						NonBlank:    false,
					},
				},
			},

			&metadata.Action{
				Name:        "multi_start",
				Description: `Start several Executions.`,
				PathPatterns: []*metadata.PathPattern{
					&metadata.PathPattern{
						HTTPMethod: "POST",
						Pattern:    "/api/manager/projects/%s/executions/actions/start",
						Variables:  []string{"project_id"},
						Regexp:     regexp.MustCompile(`/api/manager/projects/([^/]+)/executions/actions/start`),
					},
				},
				CommandFlags: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "ids[]",
						Description: `List of execution IDs to start`,
						Type:        "[]string",
						Location:    metadata.QueryParam,
						Mandatory:   true,
						NonBlank:    false,
					},
				},
				APIParams: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "ids[]",
						Description: `List of execution IDs to start`,
						Type:        "[]string",
						Location:    metadata.QueryParam,
						Mandatory:   true,
						NonBlank:    false,
					},
				},
			},

			&metadata.Action{
				Name:        "multi_stop",
				Description: `Stop several Executions.`,
				PathPatterns: []*metadata.PathPattern{
					&metadata.PathPattern{
						HTTPMethod: "POST",
						Pattern:    "/api/manager/projects/%s/executions/actions/stop",
						Variables:  []string{"project_id"},
						Regexp:     regexp.MustCompile(`/api/manager/projects/([^/]+)/executions/actions/stop`),
					},
				},
				CommandFlags: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "ids[]",
						Description: `List of execution IDs to stop`,
						Type:        "[]string",
						Location:    metadata.QueryParam,
						Mandatory:   true,
						NonBlank:    false,
					},
				},
				APIParams: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "ids[]",
						Description: `List of execution IDs to stop`,
						Type:        "[]string",
						Location:    metadata.QueryParam,
						Mandatory:   true,
						NonBlank:    false,
					},
				},
			},

			&metadata.Action{
				Name:        "multi_terminate",
				Description: `Terminate several Executions.`,
				PathPatterns: []*metadata.PathPattern{
					&metadata.PathPattern{
						HTTPMethod: "POST",
						Pattern:    "/api/manager/projects/%s/executions/actions/terminate",
						Variables:  []string{"project_id"},
						Regexp:     regexp.MustCompile(`/api/manager/projects/([^/]+)/executions/actions/terminate`),
					},
				},
				CommandFlags: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "ids[]",
						Description: `List of execution IDs to terminate`,
						Type:        "[]string",
						Location:    metadata.QueryParam,
						Mandatory:   true,
						NonBlank:    false,
					},
				},
				APIParams: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "ids[]",
						Description: `List of execution IDs to terminate`,
						Type:        "[]string",
						Location:    metadata.QueryParam,
						Mandatory:   true,
						NonBlank:    false,
					},
				},
			},

			&metadata.Action{
				Name:        "run",
				Description: `Runs an Operation on an Execution.`,
				PathPatterns: []*metadata.PathPattern{
					&metadata.PathPattern{
						HTTPMethod: "POST",
						Pattern:    "/api/manager/projects/%s/executions/%s/actions/run",
						Variables:  []string{"project_id", "id"},
						Regexp:     regexp.MustCompile(`/api/manager/projects/([^/]+)/executions/([^/]+)/actions/run`),
					},
				},
				CommandFlags: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "configuration_options[][name]",
						Description: `Name of configuration option`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "configuration_options[][type]",
						Description: `Type of configuration option.`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
						ValidValues: []string{"string", "number", "list"},
					},
					&metadata.ActionParam{
						Name:        "configuration_options[][value]",
						Description: `Configuration option value, a string, integer or array of strings depending on type`,
						Type:        "interface{}",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "name",
						Description: `The name of the operation to run`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   true,
						NonBlank:    false,
					},
				},
				APIParams: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "configuration_options",
						Description: `The configuration options of the operation. These are the values provided for the CloudApp parameters that this operation depends on.`,
						Type:        "[]*ConfigurationOption",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "name",
						Description: `The name of the operation to run`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   true,
						NonBlank:    false,
					},
				},
			},

			&metadata.Action{
				Name:        "multi_run",
				Description: `Runs an Operation on several Executions.`,
				PathPatterns: []*metadata.PathPattern{
					&metadata.PathPattern{
						HTTPMethod: "POST",
						Pattern:    "/api/manager/projects/%s/executions/actions/run",
						Variables:  []string{"project_id"},
						Regexp:     regexp.MustCompile(`/api/manager/projects/([^/]+)/executions/actions/run`),
					},
				},
				CommandFlags: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "ids[]",
						Description: `List of execution IDs to run`,
						Type:        "[]string",
						Location:    metadata.QueryParam,
						Mandatory:   true,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "configuration_options[][name]",
						Description: `Name of configuration option`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "configuration_options[][type]",
						Description: `Type of configuration option.`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
						ValidValues: []string{"string", "number", "list"},
					},
					&metadata.ActionParam{
						Name:        "configuration_options[][value]",
						Description: `Configuration option value, a string, integer or array of strings depending on type`,
						Type:        "interface{}",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "name",
						Description: `The name of the operation to run`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   true,
						NonBlank:    false,
					},
				},
				APIParams: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "ids[]",
						Description: `List of execution IDs to run`,
						Type:        "[]string",
						Location:    metadata.QueryParam,
						Mandatory:   true,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "configuration_options",
						Description: `The configuration options of the operation. These are the values provided for the CloudApp parameters that this operation depends on.`,
						Type:        "[]*ConfigurationOption",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "name",
						Description: `The name of the operation to run`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   true,
						NonBlank:    false,
					},
				},
			},
		},
		Links: map[string]string{
			"latest_notifications": "",
			"running_operations":   "",
		},
	},
	"Notification": &metadata.Resource{
		Name: "Notification",
		Description: `The Notification resource represents a system notification that an action has occurred. Generally
these Notifications are the start and completion of Operations. Currently notifications are only
available via the API/UI and are not distributed externally to users.`,
		Identifier: "application/vnd.rightscale.self_service.notification",
		Actions: []*metadata.Action{
			&metadata.Action{
				Name:        "index",
				Description: `List the most recent 50 Notifications. Use the filter parameter to specify specify Executions.`,
				PathPatterns: []*metadata.PathPattern{
					&metadata.PathPattern{
						HTTPMethod: "GET",
						Pattern:    "/api/manager/projects/%s/notifications",
						Variables:  []string{"project_id"},
						Regexp:     regexp.MustCompile(`/api/manager/projects/([^/]+)/notifications`),
					},
				},
				CommandFlags: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "filter[]",
						Description: `Filter by Execution`,
						Type:        "[]string",
						Location:    metadata.QueryParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "ids[]",
						Description: `The Notification IDs to return`,
						Type:        "[]string",
						Location:    metadata.QueryParam,
						Mandatory:   false,
						NonBlank:    false,
					},
				},
				APIParams: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "filter[]",
						Description: `Filter by Execution`,
						Type:        "[]string",
						Location:    metadata.QueryParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "ids[]",
						Description: `The Notification IDs to return`,
						Type:        "[]string",
						Location:    metadata.QueryParam,
						Mandatory:   false,
						NonBlank:    false,
					},
				},
			},

			&metadata.Action{
				Name:        "show",
				Description: `Get details for a specific Notification`,
				PathPatterns: []*metadata.PathPattern{
					&metadata.PathPattern{
						HTTPMethod: "GET",
						Pattern:    "/api/manager/projects/%s/notifications/%s",
						Variables:  []string{"project_id", "id"},
						Regexp:     regexp.MustCompile(`/api/manager/projects/([^/]+)/notifications/([^/]+)`),
					},
				},
				CommandFlags: []*metadata.ActionParam{},
				APIParams:    []*metadata.ActionParam{},
			},
		},
		Links: map[string]string{
			"execution": "",
		},
	},
	"Operation": &metadata.Resource{
		Name: "Operation",
		Description: `Operations represent actions that can be taken on an Execution.
When a CloudApp is launched, a sequence of Operations is run as [explained here](http://docs.rightscale.com/ss/reference/ss_CAT_file_language.html#operations) in the Operations section
While a CloudApp is running, users may launch any custom Operations as defined in the CAT.
Once a CAT is Terminated, a sequence of Operations is run as [explained here](http://docs.rightscale.com/ss/reference/ss_CAT_file_language.html#operations) in the Operations section`,
		Identifier: "application/vnd.rightscale.self_service.operation",
		Actions: []*metadata.Action{
			&metadata.Action{
				Name:        "index",
				Description: `Get the list of 50 most recent Operations (usually filtered by Execution).`,
				PathPatterns: []*metadata.PathPattern{
					&metadata.PathPattern{
						HTTPMethod: "GET",
						Pattern:    "/api/manager/projects/%s/operations",
						Variables:  []string{"project_id"},
						Regexp:     regexp.MustCompile(`/api/manager/projects/([^/]+)/operations`),
					},
				},
				CommandFlags: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "filter[]",
						Description: `Filter by Execution ID or status`,
						Type:        "[]string",
						Location:    metadata.QueryParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "ids[]",
						Description: `IDs of operations to filter on`,
						Type:        "[]string",
						Location:    metadata.QueryParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "limit",
						Description: `The maximum number of operations to retrieve. The maximum (and default) limit is 50.If a limit of more than 50 is specified, only 50 operations will be returned`,
						Type:        "int",
						Location:    metadata.QueryParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "view",
						Description: `Optional view to return`,
						Type:        "string",
						Location:    metadata.QueryParam,
						Mandatory:   false,
						NonBlank:    false,
						ValidValues: []string{"default", "expanded"},
					},
				},
				APIParams: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "filter[]",
						Description: `Filter by Execution ID or status`,
						Type:        "[]string",
						Location:    metadata.QueryParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "ids[]",
						Description: `IDs of operations to filter on`,
						Type:        "[]string",
						Location:    metadata.QueryParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "limit",
						Description: `The maximum number of operations to retrieve. The maximum (and default) limit is 50.If a limit of more than 50 is specified, only 50 operations will be returned`,
						Type:        "int",
						Location:    metadata.QueryParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "view",
						Description: `Optional view to return`,
						Type:        "string",
						Location:    metadata.QueryParam,
						Mandatory:   false,
						NonBlank:    false,
						ValidValues: []string{"default", "expanded"},
					},
				},
			},

			&metadata.Action{
				Name:        "show",
				Description: `Get the details for a specific Operation`,
				PathPatterns: []*metadata.PathPattern{
					&metadata.PathPattern{
						HTTPMethod: "GET",
						Pattern:    "/api/manager/projects/%s/operations/%s",
						Variables:  []string{"project_id", "id"},
						Regexp:     regexp.MustCompile(`/api/manager/projects/([^/]+)/operations/([^/]+)`),
					},
				},
				CommandFlags: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "view",
						Description: `Optional view to return`,
						Type:        "string",
						Location:    metadata.QueryParam,
						Mandatory:   false,
						NonBlank:    false,
						ValidValues: []string{"default", "expanded"},
					},
				},
				APIParams: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "view",
						Description: `Optional view to return`,
						Type:        "string",
						Location:    metadata.QueryParam,
						Mandatory:   false,
						NonBlank:    false,
						ValidValues: []string{"default", "expanded"},
					},
				},
			},

			&metadata.Action{
				Name:        "create",
				Description: `Trigger an Operation to run by specifying the Execution ID and the name of the Operation.`,
				PathPatterns: []*metadata.PathPattern{
					&metadata.PathPattern{
						HTTPMethod: "POST",
						Pattern:    "/api/manager/projects/%s/operations",
						Variables:  []string{"project_id"},
						Regexp:     regexp.MustCompile(`/api/manager/projects/([^/]+)/operations`),
					},
				},
				CommandFlags: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "execution_id",
						Description: `The Execution ID on which to run the operation`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   true,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "name",
						Description: `The name of the operation to run`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   true,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "options[][name]",
						Description: `Name of configuration option`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "options[][type]",
						Description: `Type of configuration option.`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
						ValidValues: []string{"string", "number", "list"},
					},
					&metadata.ActionParam{
						Name:        "options[][value]",
						Description: `Configuration option value, a string, integer or array of strings depending on type`,
						Type:        "interface{}",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
				},
				APIParams: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "execution_id",
						Description: `The Execution ID on which to run the operation`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   true,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "name",
						Description: `The name of the operation to run`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   true,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "options",
						Description: `The configuration options of the operation. These are the values provided for the CloudAPP parameters that this operation depends on.`,
						Type:        "[]*ConfigurationOption",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
				},
			},
		},
		Links: map[string]string{
			"execution": "",
		},
	},
	"ScheduledAction": &metadata.Resource{
		Name: "ScheduledAction",
		Description: `ScheduledActions describe a set of timed occurrences for an action to be run (at most once per day).
Recurrence Rules are based off of the [RFC 5545](https://tools.ietf.org/html/rfc5545) iCal spec, and timezones are from the standard [tzinfo database](http://www.iana.org/time-zones).
All DateTimes must be passed in [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601)`,
		Identifier: "application/vnd.rightscale.self_service.scheduled_action",
		Actions: []*metadata.Action{
			&metadata.Action{
				Name:        "index",
				Description: `List ScheduledAction resources in the project. The list can be filtered to a given execution.`,
				PathPatterns: []*metadata.PathPattern{
					&metadata.PathPattern{
						HTTPMethod: "GET",
						Pattern:    "/api/manager/projects/%s/scheduled_actions",
						Variables:  []string{"project_id"},
						Regexp:     regexp.MustCompile(`/api/manager/projects/([^/]+)/scheduled_actions`),
					},
				},
				CommandFlags: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "filter[]",
						Description: `Filter by execution id or execution creator (user) id.`,
						Type:        "[]string",
						Location:    metadata.QueryParam,
						Mandatory:   false,
						NonBlank:    false,
					},
				},
				APIParams: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "filter[]",
						Description: `Filter by execution id or execution creator (user) id.`,
						Type:        "[]string",
						Location:    metadata.QueryParam,
						Mandatory:   false,
						NonBlank:    false,
					},
				},
			},

			&metadata.Action{
				Name:        "show",
				Description: `Retrieve given ScheduledAction resource.`,
				PathPatterns: []*metadata.PathPattern{
					&metadata.PathPattern{
						HTTPMethod: "GET",
						Pattern:    "/api/manager/projects/%s/scheduled_actions/%s",
						Variables:  []string{"project_id", "id"},
						Regexp:     regexp.MustCompile(`/api/manager/projects/([^/]+)/scheduled_actions/([^/]+)`),
					},
				},
				CommandFlags: []*metadata.ActionParam{},
				APIParams:    []*metadata.ActionParam{},
			},

			&metadata.Action{
				Name:        "create",
				Description: `Create a new ScheduledAction resource.`,
				PathPatterns: []*metadata.PathPattern{
					&metadata.PathPattern{
						HTTPMethod: "POST",
						Pattern:    "/api/manager/projects/%s/scheduled_actions",
						Variables:  []string{"project_id"},
						Regexp:     regexp.MustCompile(`/api/manager/projects/([^/]+)/scheduled_actions`),
					},
				},
				CommandFlags: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "action",
						Description: `The name of the action to be run. When the value is "run", the "operation" struct should contain the name of the operation to run as well as any options needed by the operation.`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   true,
						NonBlank:    false,
						ValidValues: []string{"launch", "start", "stop", "terminate", "run"},
					},
					&metadata.ActionParam{
						Name:        "execution_id",
						Description: `Id of the Execuion.`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   true,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "first_occurrence",
						Description: `The time and day of the first occurrence when the action will be ran, similar to the "DTSTART" property specified by iCal. Used (in conjunction with timezone) to determine the time of day for the "next_occurrence". Can be set to the future or past. DateTimes should be passed as ISO-8601 formatted time strings.  All DateTimes are converted to UTC when returned.`,
						Type:        "*time.Time",
						Location:    metadata.PayloadParam,
						Mandatory:   true,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "name",
						Description: `The human-readable name for the ScheduledAction.`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "operation[configuration_options][][name]",
						Description: `Name of configuration option`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "operation[configuration_options][][type]",
						Description: `Type of configuration option.`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
						ValidValues: []string{"string", "number", "list"},
					},
					&metadata.ActionParam{
						Name:        "operation[configuration_options][][value]",
						Description: `Configuration option value, a string, integer or array of strings depending on type`,
						Type:        "interface{}",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "operation[configuration_options][][name]",
						Description: `Name of configuration option`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "recurrence",
						Description: `iCal recurrence rule (RRULE) as described by RFC 5545. Expresses the days on which the action will be run. Optionally a "last occurrence" date can be set by passing the iCal "UNTIL" parameter in the rule (date-time must be passed in ISO-8601 format). If omitted, the action will only be run once, on the "first_occurrence".`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "timezone",
						Description: `The timezone in which the "first_occurrence" and "next_occurrence" times will be interpreted. Used to determine when Daylight Savings Time changes occur. Supports standardized "tzinfo" names [found here](http://www.iana.org/time-zones).`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
				},
				APIParams: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "action",
						Description: `The name of the action to be run. When the value is "run", the "operation" struct should contain the name of the operation to run as well as any options needed by the operation.`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   true,
						NonBlank:    false,
						ValidValues: []string{"launch", "start", "stop", "terminate", "run"},
					},
					&metadata.ActionParam{
						Name:        "execution_id",
						Description: `Id of the Execuion.`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   true,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "first_occurrence",
						Description: `The time and day of the first occurrence when the action will be ran, similar to the "DTSTART" property specified by iCal. Used (in conjunction with timezone) to determine the time of day for the "next_occurrence". Can be set to the future or past. DateTimes should be passed as ISO-8601 formatted time strings.  All DateTimes are converted to UTC when returned.`,
						Type:        "*time.Time",
						Location:    metadata.PayloadParam,
						Mandatory:   true,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "name",
						Description: `The human-readable name for the ScheduledAction.`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "operation",
						Description: `When scheduling a "run" action, contains details on the operation to run`,
						Type:        "*OperationStruct",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "recurrence",
						Description: `iCal recurrence rule (RRULE) as described by RFC 5545. Expresses the days on which the action will be run. Optionally a "last occurrence" date can be set by passing the iCal "UNTIL" parameter in the rule (date-time must be passed in ISO-8601 format). If omitted, the action will only be run once, on the "first_occurrence".`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
					&metadata.ActionParam{
						Name:        "timezone",
						Description: `The timezone in which the "first_occurrence" and "next_occurrence" times will be interpreted. Used to determine when Daylight Savings Time changes occur. Supports standardized "tzinfo" names [found here](http://www.iana.org/time-zones).`,
						Type:        "string",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
				},
			},

			&metadata.Action{
				Name:        "patch",
				Description: `Updates the 'next_occurrence' property of a ScheduledAction.`,
				PathPatterns: []*metadata.PathPattern{
					&metadata.PathPattern{
						HTTPMethod: "PATCH",
						Pattern:    "/api/manager/projects/%s/scheduled_actions/%s",
						Variables:  []string{"project_id", "id"},
						Regexp:     regexp.MustCompile(`/api/manager/projects/([^/]+)/scheduled_actions/([^/]+)`),
					},
				},
				CommandFlags: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "next_occurrence",
						Description: `The Date/Time for the next occurrence, useful for delaying a single occurrence. DateTimes should be passed as ISO-8601 formatted time strings.`,
						Type:        "*time.Time",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
				},
				APIParams: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "next_occurrence",
						Description: `The Date/Time for the next occurrence, useful for delaying a single occurrence. DateTimes should be passed as ISO-8601 formatted time strings.`,
						Type:        "*time.Time",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
				},
			},

			&metadata.Action{
				Name:        "delete",
				Description: `Delete a ScheduledAction.`,
				PathPatterns: []*metadata.PathPattern{
					&metadata.PathPattern{
						HTTPMethod: "DELETE",
						Pattern:    "/api/manager/projects/%s/scheduled_actions/%s",
						Variables:  []string{"project_id", "id"},
						Regexp:     regexp.MustCompile(`/api/manager/projects/([^/]+)/scheduled_actions/([^/]+)`),
					},
				},
				CommandFlags: []*metadata.ActionParam{},
				APIParams:    []*metadata.ActionParam{},
			},

			&metadata.Action{
				Name:        "skip",
				Description: `Skips the requested number of ScheduledAction occurrences. If no count is provided, one occurrence is skipped. On success, the next_occurrence view of the updated ScheduledAction is returned.`,
				PathPatterns: []*metadata.PathPattern{
					&metadata.PathPattern{
						HTTPMethod: "POST",
						Pattern:    "/api/manager/projects/%s/scheduled_actions/%s/actions/skip",
						Variables:  []string{"project_id", "id"},
						Regexp:     regexp.MustCompile(`/api/manager/projects/([^/]+)/scheduled_actions/([^/]+)/actions/skip`),
					},
				},
				CommandFlags: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "count",
						Description: `The number of scheduled occurrences to skip. If not provided, the default count is 1.`,
						Type:        "int",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
				},
				APIParams: []*metadata.ActionParam{
					&metadata.ActionParam{
						Name:        "count",
						Description: `The number of scheduled occurrences to skip. If not provided, the default count is 1.`,
						Type:        "int",
						Location:    metadata.PayloadParam,
						Mandatory:   false,
						NonBlank:    false,
					},
				},
			},
		},
		Links: map[string]string{
			"execution": "",
		},
	},
}

Consists of a map of resource name to resource metadata.

Functions

This section is empty.

Types

type API

type API struct {
	*rsapi.API
}

API is the Self-Service manager client.

func New

func New(h string, a rsapi.Authenticator) *API

New returns a Self-Service catalog API client. It makes a test API request and returns an error if authentication fails.

func (*API) ExecutionLocator

func (api *API) ExecutionLocator(href string) *ExecutionLocator

ExecutionLocator builds a locator from the given href.

func (*API) NotificationLocator

func (api *API) NotificationLocator(href string) *NotificationLocator

NotificationLocator builds a locator from the given href.

func (*API) OperationLocator

func (api *API) OperationLocator(href string) *OperationLocator

OperationLocator builds a locator from the given href.

func (*API) ScheduledActionLocator

func (api *API) ScheduledActionLocator(href string) *ScheduledActionLocator

ScheduledActionLocator builds a locator from the given href.

type ApiResourcesValueStruct

type ApiResourcesValueStruct struct {
	Details map[string]interface{} `json:"details,omitempty"`
	Href    string                 `json:"href,omitempty"`
}

type AvailableOperationsParametersUiStruct

type AvailableOperationsParametersUiStruct struct {
	Category string `json:"category,omitempty"`
	Index    int    `json:"index,omitempty"`
	Label    string `json:"label,omitempty"`
}

type AvailableOperationsParametersValidationStruct

type AvailableOperationsParametersValidationStruct struct {
	AllowedPattern        string        `json:"allowed_pattern,omitempty"`
	AllowedValues         []interface{} `json:"allowed_values,omitempty"`
	ConstraintDescription string        `json:"constraint_description,omitempty"`
	MaxLength             int           `json:"max_length,omitempty"`
	MaxValue              int           `json:"max_value,omitempty"`
	MinLength             int           `json:"min_length,omitempty"`
	MinValue              int           `json:"min_value,omitempty"`
	NoEcho                bool          `json:"no_echo,omitempty"`
}

type CatDependency

type CatDependency struct {
	Alias      string `json:"alias,omitempty"`
	Name       string `json:"name,omitempty"`
	Package    string `json:"package,omitempty"`
	SourceHref string `json:"source_href,omitempty"`
}

type CompiledCAT

type CompiledCAT struct {
	CatParserGemVersion string                   `json:"cat_parser_gem_version,omitempty"`
	CompilerVer         string                   `json:"compiler_ver,omitempty"`
	Conditions          map[string]interface{}   `json:"conditions,omitempty"`
	Definitions         map[string]interface{}   `json:"definitions,omitempty"`
	DependencyHashes    []map[string]interface{} `json:"dependency_hashes,omitempty"`
	Imports             map[string]interface{}   `json:"imports,omitempty"`
	LongDescription     string                   `json:"long_description,omitempty"`
	Mappings            map[string]interface{}   `json:"mappings,omitempty"`
	Name                string                   `json:"name,omitempty"`
	Namespaces          []*Namespace             `json:"namespaces,omitempty"`
	Operations          map[string]interface{}   `json:"operations,omitempty"`
	Outputs             map[string]interface{}   `json:"outputs,omitempty"`
	Package             string                   `json:"package,omitempty"`
	Parameters          map[string]interface{}   `json:"parameters,omitempty"`
	Permissions         map[string]interface{}   `json:"permissions,omitempty"`
	RequiredParameters  []string                 `json:"required_parameters,omitempty"`
	Resources           map[string]interface{}   `json:"resources,omitempty"`
	RsCaVer             int                      `json:"rs_ca_ver,omitempty"`
	ShortDescription    string                   `json:"short_description,omitempty"`
	Source              string                   `json:"source,omitempty"`
}

type ConfigurationOption

type ConfigurationOption struct {
	Name  string      `json:"name,omitempty"`
	Type_ string      `json:"type,omitempty"`
	Value interface{} `json:"value,omitempty"`
}

type CostStruct

type CostStruct struct {
	Unit      string     `json:"unit,omitempty"`
	UpdatedAt *time.Time `json:"updated_at,omitempty"`
	Value     string     `json:"value,omitempty"`
}

type Execution

type Execution struct {
	ApiResources            []*Resource            `json:"api_resources,omitempty"`
	AvailableActions        []string               `json:"available_actions,omitempty"`
	AvailableOperations     []*OperationDefinition `json:"available_operations,omitempty"`
	AvailableOperationsInfo []*OperationInfo       `json:"available_operations_info,omitempty"`
	CompilationHref         string                 `json:"compilation_href,omitempty"`
	ConfigurationOptions    []*ConfigurationOption `json:"configuration_options,omitempty"`
	Cost                    *CostStruct            `json:"cost,omitempty"`
	CreatedBy               *User                  `json:"created_by,omitempty"`
	CurrentSchedule         string                 `json:"current_schedule,omitempty"`
	Dependencies            []*CatDependency       `json:"dependencies,omitempty"`
	Deployment              string                 `json:"deployment,omitempty"`
	DeploymentUrl           string                 `json:"deployment_url,omitempty"`
	Description             string                 `json:"description,omitempty"`
	EndsAt                  *time.Time             `json:"ends_at,omitempty"`
	Href                    string                 `json:"href,omitempty"`
	Id                      string                 `json:"id,omitempty"`
	Kind                    string                 `json:"kind,omitempty"`
	LatestNotification      *Notification          `json:"latest_notification,omitempty"`
	LatestNotifications     []*Notification        `json:"latest_notifications,omitempty"`
	LaunchedFrom            *LaunchedFrom          `json:"launched_from,omitempty"`
	LaunchedFromSummary     map[string]interface{} `json:"launched_from_summary,omitempty"`
	Links                   *ExecutionLinks        `json:"links,omitempty"`
	Name                    string                 `json:"name,omitempty"`
	NextAction              *ScheduledAction       `json:"next_action,omitempty"`
	Outputs                 []*Output              `json:"outputs,omitempty"`
	RunningOperations       []*Operation           `json:"running_operations,omitempty"`
	ScheduleRequired        bool                   `json:"schedule_required,omitempty"`
	Scheduled               bool                   `json:"scheduled,omitempty"`
	Schedules               []*Schedule            `json:"schedules,omitempty"`
	Source                  string                 `json:"source,omitempty"`
	Status                  string                 `json:"status,omitempty"`
	Timestamps              *TimestampsStruct      `json:"timestamps,omitempty"`
}

An Execution is a launched instance of a CloudApp. Executions can be created from the catalog by launching an Application, from Designer by launching a Template, or directly in Manager by using the API and sending the CAT source or CAT Compiled source. Executions are represented in RightScale Cloud Management by a deployment -- the resources defined in the CAT are all created in the Deployment. Any action on a running CloudApp should be made on its Execution resource. Making changes to any resource directly in the CM deployment may result in undesired behavior since the Execution only refreshes certain information as a result of running an Operation on an Execution. For example, if a Server is replaced in CM instead of through Self-Service, the new Server's information won' be available in Self-Service.

func (*Execution) Locator

func (r *Execution) Locator(api *API) *ExecutionLocator

Locator returns a locator for the given resource

type ExecutionLink struct {
	Href string `json:"href,omitempty"`
	Id   string `json:"id,omitempty"`
	Name string `json:"name,omitempty"`
}
type ExecutionLinks struct {
	LatestNotifications *NotificationLatestNotificationsLink `json:"latest_notifications,omitempty"`
	RunningOperations   *OperationRunningOperationsLink      `json:"running_operations,omitempty"`
}

type ExecutionLocator

type ExecutionLocator struct {
	Href
	// contains filtered or unexported fields
}

ExecutionLocator exposes the Execution resource actions.

func (*ExecutionLocator) Create

func (loc *ExecutionLocator) Create(options rsapi.APIParams) (*ExecutionLocator, error)

POST /api/manager/projects/:project_id/executions

Create a new execution from a CAT, a compiled CAT, an Application in the Catalog, or a Template in Designer

func (*ExecutionLocator) Delete

func (loc *ExecutionLocator) Delete(options rsapi.APIParams) error

DELETE /api/manager/projects/:project_id/executions/:id

No description provided for delete.

func (*ExecutionLocator) Download

func (loc *ExecutionLocator) Download(apiVersion string) error

GET /api/manager/projects/:project_id/executions/:id/download

Download the CAT source for the execution.

func (*ExecutionLocator) Index

func (loc *ExecutionLocator) Index(options rsapi.APIParams) ([]*Execution, error)

GET /api/manager/projects/:project_id/executions

List information about the Executions, or use a filter to only return certain Executions. A view can be used for various levels of detail.

func (*ExecutionLocator) Launch

func (loc *ExecutionLocator) Launch() error

POST /api/manager/projects/:project_id/executions/:id/actions/launch

Launch an Execution.

func (*ExecutionLocator) MultiDelete

func (loc *ExecutionLocator) MultiDelete(ids []string, options rsapi.APIParams) error

DELETE /api/manager/projects/:project_id/executions

Delete several executions from the database. Note: if an execution has not successfully been terminated, there may still be associated cloud resources running.

func (*ExecutionLocator) MultiLaunch

func (loc *ExecutionLocator) MultiLaunch(ids []string) error

POST /api/manager/projects/:project_id/executions/actions/launch

Launch several Executions.

func (*ExecutionLocator) MultiRun added in v1.0.6

func (loc *ExecutionLocator) MultiRun(ids []string, name string, options rsapi.APIParams) error

POST /api/manager/projects/:project_id/executions/actions/run

Runs an Operation on several Executions.

func (*ExecutionLocator) MultiStart

func (loc *ExecutionLocator) MultiStart(ids []string) error

POST /api/manager/projects/:project_id/executions/actions/start

Start several Executions.

func (*ExecutionLocator) MultiStop

func (loc *ExecutionLocator) MultiStop(ids []string) error

POST /api/manager/projects/:project_id/executions/actions/stop

Stop several Executions.

func (*ExecutionLocator) MultiTerminate

func (loc *ExecutionLocator) MultiTerminate(ids []string) error

POST /api/manager/projects/:project_id/executions/actions/terminate

Terminate several Executions.

func (*ExecutionLocator) Patch added in v1.0.6

func (loc *ExecutionLocator) Patch(options rsapi.APIParams) error

PATCH /api/manager/projects/:project_id/executions/:id

Updates an execution end date or selected schedule.

func (*ExecutionLocator) Run added in v1.0.6

func (loc *ExecutionLocator) Run(name string, options rsapi.APIParams) error

POST /api/manager/projects/:project_id/executions/:id/actions/run

Runs an Operation on an Execution.

func (*ExecutionLocator) Show

func (loc *ExecutionLocator) Show(options rsapi.APIParams) (*Execution, error)

GET /api/manager/projects/:project_id/executions/:id

Show details for a given Execution. A view can be used for various levels of detail.

func (*ExecutionLocator) Start

func (loc *ExecutionLocator) Start() error

POST /api/manager/projects/:project_id/executions/:id/actions/start

Start an Execution.

func (*ExecutionLocator) Stop

func (loc *ExecutionLocator) Stop() error

POST /api/manager/projects/:project_id/executions/:id/actions/stop

Stop an Execution.

func (*ExecutionLocator) Terminate

func (loc *ExecutionLocator) Terminate() error

POST /api/manager/projects/:project_id/executions/:id/actions/terminate

Terminate an Execution.

type ExecutionParam

type ExecutionParam struct {
	ApiResources            []*Resource                                  `json:"api_resources,omitempty"`
	AvailableActions        []string                                     `json:"available_actions,omitempty"`
	AvailableOperations     []*OperationDefinition                       `json:"available_operations,omitempty"`
	AvailableOperationsInfo []*OperationInfo                             `json:"available_operations_info,omitempty"`
	CompilationHref         string                                       `json:"compilation_href,omitempty"`
	ConfigurationOptions    []*ConfigurationOption                       `json:"configuration_options,omitempty"`
	Cost                    *LatestNotificationExecutionCostStruct       `json:"cost,omitempty"`
	CreatedBy               *User                                        `json:"created_by,omitempty"`
	CurrentSchedule         string                                       `json:"current_schedule,omitempty"`
	Dependencies            []*CatDependency                             `json:"dependencies,omitempty"`
	Deployment              string                                       `json:"deployment,omitempty"`
	DeploymentUrl           string                                       `json:"deployment_url,omitempty"`
	Description             string                                       `json:"description,omitempty"`
	EndsAt                  *time.Time                                   `json:"ends_at,omitempty"`
	Href                    string                                       `json:"href,omitempty"`
	Id                      string                                       `json:"id,omitempty"`
	Kind                    string                                       `json:"kind,omitempty"`
	LatestNotification      *NotificationParam                           `json:"latest_notification,omitempty"`
	LatestNotifications     []*NotificationParam                         `json:"latest_notifications,omitempty"`
	LaunchedFrom            *LaunchedFrom                                `json:"launched_from,omitempty"`
	LaunchedFromSummary     map[string]interface{}                       `json:"launched_from_summary,omitempty"`
	Links                   *ExecutionLinks                              `json:"links,omitempty"`
	Name                    string                                       `json:"name,omitempty"`
	NextAction              *ScheduledActionParam                        `json:"next_action,omitempty"`
	Outputs                 []*Output                                    `json:"outputs,omitempty"`
	RunningOperations       []*OperationParam                            `json:"running_operations,omitempty"`
	ScheduleRequired        bool                                         `json:"schedule_required,omitempty"`
	Scheduled               bool                                         `json:"scheduled,omitempty"`
	Schedules               []*Schedule                                  `json:"schedules,omitempty"`
	Source                  string                                       `json:"source,omitempty"`
	Status                  string                                       `json:"status,omitempty"`
	Timestamps              *LatestNotificationExecutionTimestampsStruct `json:"timestamps,omitempty"`
}

type Href

type Href string

An Href contains the relative path to a resource or resource collection, e.g. "/api/servers/123" or "/api/servers".

func (*Href) ActionPath

func (r *Href) ActionPath(rName, aName string) (*metadata.ActionPath, error)

ActionPath computes the path to the given resource action. For example given the href "/api/servers/123" calling ActionPath with resource "servers" and action "clone" returns the path "/api/servers/123/clone" and verb POST. The algorithm consists of extracting the variables from the href by looking up a matching pattern from the resource metadata. The variables are then substituted in the action path. If there are more than one pattern that match the href then the algorithm picks the one that can substitute the most variables.

type LatestNotificationExecutionCostStruct

type LatestNotificationExecutionCostStruct struct {
	Unit      string     `json:"unit,omitempty"`
	UpdatedAt *time.Time `json:"updated_at,omitempty"`
	Value     string     `json:"value,omitempty"`
}

type LatestNotificationExecutionNextActionOperationStruct

type LatestNotificationExecutionNextActionOperationStruct struct {
	ConfigurationOptions []*ConfigurationOption `json:"configuration_options,omitempty"`
	Name                 string                 `json:"name,omitempty"`
}

type LatestNotificationExecutionNextActionTimestampsStruct

type LatestNotificationExecutionNextActionTimestampsStruct struct {
	CreatedAt *time.Time `json:"created_at,omitempty"`
	UpdatedAt *time.Time `json:"updated_at,omitempty"`
}

type LatestNotificationExecutionRunningOperationsStatusStruct

type LatestNotificationExecutionRunningOperationsStatusStruct struct {
	Percent int     `json:"percent,omitempty"`
	Summary string  `json:"summary,omitempty"`
	Tasks   []*Task `json:"tasks,omitempty"`
}

type LatestNotificationExecutionRunningOperationsStatusTasksStatusStruct

type LatestNotificationExecutionRunningOperationsStatusTasksStatusStruct struct {
	Percent int    `json:"percent,omitempty"`
	Summary string `json:"summary,omitempty"`
}

type LatestNotificationExecutionRunningOperationsTimestampsStruct

type LatestNotificationExecutionRunningOperationsTimestampsStruct struct {
	CreatedAt  *time.Time `json:"created_at,omitempty"`
	FinishedAt *time.Time `json:"finished_at,omitempty"`
}

type LatestNotificationExecutionTimestampsStruct

type LatestNotificationExecutionTimestampsStruct struct {
	CreatedAt    *time.Time `json:"created_at,omitempty"`
	LaunchedAt   *time.Time `json:"launched_at,omitempty"`
	TerminatedAt *time.Time `json:"terminated_at,omitempty"`
}

type LatestNotificationTimestampsStruct

type LatestNotificationTimestampsStruct struct {
	CreatedAt *time.Time `json:"created_at,omitempty"`
}

type LaunchedFrom

type LaunchedFrom struct {
	Type_ string      `json:"type,omitempty"`
	Value interface{} `json:"value,omitempty"`
}

type Namespace

type Namespace struct {
	Name    string            `json:"name,omitempty"`
	Service *NamespaceService `json:"service,omitempty"`
	Types   []*NamespaceType  `json:"types,omitempty"`
}

type NamespaceService

type NamespaceService struct {
	Auth    string                 `json:"auth,omitempty"`
	Headers map[string]interface{} `json:"headers,omitempty"`
	Host    string                 `json:"host,omitempty"`
	Path    string                 `json:"path,omitempty"`
}

type NamespaceType

type NamespaceType struct {
	Delete    string                 `json:"delete,omitempty"`
	Fields    map[string]interface{} `json:"fields,omitempty"`
	Name      string                 `json:"name,omitempty"`
	Path      string                 `json:"path,omitempty"`
	Provision string                 `json:"provision,omitempty"`
}

type Notification

type Notification struct {
	Category   string             `json:"category,omitempty"`
	Execution  *Execution         `json:"execution,omitempty"`
	Href       string             `json:"href,omitempty"`
	Id         string             `json:"id,omitempty"`
	Kind       string             `json:"kind,omitempty"`
	Links      *NotificationLinks `json:"links,omitempty"`
	Message    string             `json:"message,omitempty"`
	Read       bool               `json:"read,omitempty"`
	Timestamps *TimestampsStruct  `json:"timestamps,omitempty"`
}

The Notification resource represents a system notification that an action has occurred. Generally these Notifications are the start and completion of Operations. Currently notifications are only available via the API/UI and are not distributed externally to users.

func (*Notification) Locator

func (r *Notification) Locator(api *API) *NotificationLocator

Locator returns a locator for the given resource

type NotificationLatestNotificationsLink struct {
	Href string `json:"href,omitempty"`
}
type NotificationLinks struct {
	Execution *ExecutionLink `json:"execution,omitempty"`
}

type NotificationLocator

type NotificationLocator struct {
	Href
	// contains filtered or unexported fields
}

NotificationLocator exposes the Notification resource actions.

func (*NotificationLocator) Index

func (loc *NotificationLocator) Index(options rsapi.APIParams) ([]*Notification, error)

GET /api/manager/projects/:project_id/notifications

List the most recent 50 Notifications. Use the filter parameter to specify specify Executions.

func (*NotificationLocator) Show

func (loc *NotificationLocator) Show() (*Notification, error)

GET /api/manager/projects/:project_id/notifications/:id

Get details for a specific Notification

type NotificationParam

type NotificationParam struct {
	Category   string                              `json:"category,omitempty"`
	Execution  *ExecutionParam                     `json:"execution,omitempty"`
	Href       string                              `json:"href,omitempty"`
	Id         string                              `json:"id,omitempty"`
	Kind       string                              `json:"kind,omitempty"`
	Links      *NotificationLinks                  `json:"links,omitempty"`
	Message    string                              `json:"message,omitempty"`
	Read       bool                                `json:"read,omitempty"`
	Timestamps *LatestNotificationTimestampsStruct `json:"timestamps,omitempty"`
}

type Operation

type Operation struct {
	ConfigurationOptions []*ConfigurationOption `json:"configuration_options,omitempty"`
	CreatedBy            *User                  `json:"created_by,omitempty"`
	Execution            *Execution             `json:"execution,omitempty"`
	Href                 string                 `json:"href,omitempty"`
	Id                   string                 `json:"id,omitempty"`
	Kind                 string                 `json:"kind,omitempty"`
	Label                string                 `json:"label,omitempty"`
	Links                *OperationLinks        `json:"links,omitempty"`
	Name                 string                 `json:"name,omitempty"`
	Status               *StatusStruct          `json:"status,omitempty"`
	Timestamps           *TimestampsStruct      `json:"timestamps,omitempty"`
}

Operations represent actions that can be taken on an Execution. When a CloudApp is launched, a sequence of Operations is run as [explained here](http://docs.rightscale.com/ss/reference/ss_CAT_file_language.html#operations) in the Operations section While a CloudApp is running, users may launch any custom Operations as defined in the CAT. Once a CAT is Terminated, a sequence of Operations is run as [explained here](http://docs.rightscale.com/ss/reference/ss_CAT_file_language.html#operations) in the Operations section

func (*Operation) Locator

func (r *Operation) Locator(api *API) *OperationLocator

Locator returns a locator for the given resource

type OperationDefinition

type OperationDefinition struct {
	Description string       `json:"description,omitempty"`
	Label       string       `json:"label,omitempty"`
	Name        string       `json:"name,omitempty"`
	Parameters  []*Parameter `json:"parameters,omitempty"`
}

type OperationInfo

type OperationInfo struct {
	Description string `json:"description,omitempty"`
	Label       string `json:"label,omitempty"`
	Name        string `json:"name,omitempty"`
}
type OperationLinks struct {
	Execution *ExecutionLink `json:"execution,omitempty"`
}

type OperationLocator

type OperationLocator struct {
	Href
	// contains filtered or unexported fields
}

OperationLocator exposes the Operation resource actions.

func (*OperationLocator) Create

func (loc *OperationLocator) Create(executionId string, name string, options rsapi.APIParams) (*OperationLocator, error)

POST /api/manager/projects/:project_id/operations

Trigger an Operation to run by specifying the Execution ID and the name of the Operation.

func (*OperationLocator) Index

func (loc *OperationLocator) Index(options rsapi.APIParams) ([]*Operation, error)

GET /api/manager/projects/:project_id/operations

Get the list of 50 most recent Operations (usually filtered by Execution).

func (*OperationLocator) Show

func (loc *OperationLocator) Show(options rsapi.APIParams) (*Operation, error)

GET /api/manager/projects/:project_id/operations/:id

Get the details for a specific Operation

type OperationParam

type OperationParam struct {
	ConfigurationOptions []*ConfigurationOption                                        `json:"configuration_options,omitempty"`
	CreatedBy            *User                                                         `json:"created_by,omitempty"`
	Execution            *ExecutionParam                                               `json:"execution,omitempty"`
	Href                 string                                                        `json:"href,omitempty"`
	Id                   string                                                        `json:"id,omitempty"`
	Kind                 string                                                        `json:"kind,omitempty"`
	Label                string                                                        `json:"label,omitempty"`
	Links                *OperationLinks                                               `json:"links,omitempty"`
	Name                 string                                                        `json:"name,omitempty"`
	Status               *LatestNotificationExecutionRunningOperationsStatusStruct     `json:"status,omitempty"`
	Timestamps           *LatestNotificationExecutionRunningOperationsTimestampsStruct `json:"timestamps,omitempty"`
}
type OperationRunningOperationsLink struct {
	Href string `json:"href,omitempty"`
}

type OperationStruct

type OperationStruct struct {
	ConfigurationOptions []*ConfigurationOption `json:"configuration_options,omitempty"`
	Name                 string                 `json:"name,omitempty"`
}

type Output

type Output struct {
	Category    string      `json:"category,omitempty"`
	Description string      `json:"description,omitempty"`
	Index       int         `json:"index,omitempty"`
	Label       string      `json:"label,omitempty"`
	Name        string      `json:"name,omitempty"`
	Value       interface{} `json:"value,omitempty"`
}

type Parameter

type Parameter struct {
	Default     interface{}                                    `json:"default,omitempty"`
	Description string                                         `json:"description,omitempty"`
	Name        string                                         `json:"name,omitempty"`
	Operations  []interface{}                                  `json:"operations,omitempty"`
	Type_       string                                         `json:"type,omitempty"`
	Ui          *AvailableOperationsParametersUiStruct         `json:"ui,omitempty"`
	Validation  *AvailableOperationsParametersValidationStruct `json:"validation,omitempty"`
}

type Recurrence added in v1.0.6

type Recurrence struct {
	Hour   int    `json:"hour,omitempty"`
	Minute int    `json:"minute,omitempty"`
	Rule   string `json:"rule,omitempty"`
}

type Resource

type Resource struct {
	Name  string                   `json:"name,omitempty"`
	Type_ string                   `json:"type,omitempty"`
	Value *ApiResourcesValueStruct `json:"value,omitempty"`
}

type Schedule added in v1.0.6

type Schedule struct {
	CreatedFrom     string      `json:"created_from,omitempty"`
	Description     string      `json:"description,omitempty"`
	Name            string      `json:"name,omitempty"`
	StartRecurrence *Recurrence `json:"start_recurrence,omitempty"`
	StopRecurrence  *Recurrence `json:"stop_recurrence,omitempty"`
}

type ScheduledAction

type ScheduledAction struct {
	Action                string                `json:"action,omitempty"`
	CreatedBy             *User                 `json:"created_by,omitempty"`
	Execution             *Execution            `json:"execution,omitempty"`
	ExecutionSchedule     bool                  `json:"execution_schedule,omitempty"`
	FirstOccurrence       *time.Time            `json:"first_occurrence,omitempty"`
	Href                  string                `json:"href,omitempty"`
	Id                    string                `json:"id,omitempty"`
	Kind                  string                `json:"kind,omitempty"`
	Links                 *ScheduledActionLinks `json:"links,omitempty"`
	Name                  string                `json:"name,omitempty"`
	NextOccurrence        *time.Time            `json:"next_occurrence,omitempty"`
	Operation             *OperationStruct      `json:"operation,omitempty"`
	Recurrence            string                `json:"recurrence,omitempty"`
	RecurrenceDescription string                `json:"recurrence_description,omitempty"`
	Timestamps            *TimestampsStruct     `json:"timestamps,omitempty"`
	Timezone              string                `json:"timezone,omitempty"`
}

ScheduledActions describe a set of timed occurrences for an action to be run (at most once per day). Recurrence Rules are based off of the [RFC 5545](https://tools.ietf.org/html/rfc5545) iCal spec, and timezones are from the standard [tzinfo database](http://www.iana.org/time-zones). All DateTimes must be passed in [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601)

func (*ScheduledAction) Locator

func (r *ScheduledAction) Locator(api *API) *ScheduledActionLocator

Locator returns a locator for the given resource

type ScheduledActionLinks struct {
	Execution *ExecutionLink `json:"execution,omitempty"`
}

type ScheduledActionLocator

type ScheduledActionLocator struct {
	Href
	// contains filtered or unexported fields
}

ScheduledActionLocator exposes the ScheduledAction resource actions.

func (*ScheduledActionLocator) Create

func (loc *ScheduledActionLocator) Create(action string, executionId string, firstOccurrence *time.Time, options rsapi.APIParams) (*ScheduledActionLocator, error)

POST /api/manager/projects/:project_id/scheduled_actions

Create a new ScheduledAction resource.

func (*ScheduledActionLocator) Delete

func (loc *ScheduledActionLocator) Delete() error

DELETE /api/manager/projects/:project_id/scheduled_actions/:id

Delete a ScheduledAction.

func (*ScheduledActionLocator) Index

func (loc *ScheduledActionLocator) Index(options rsapi.APIParams) ([]*ScheduledAction, error)

GET /api/manager/projects/:project_id/scheduled_actions

List ScheduledAction resources in the project. The list can be filtered to a given execution.

func (*ScheduledActionLocator) Patch

func (loc *ScheduledActionLocator) Patch(options rsapi.APIParams) error

PATCH /api/manager/projects/:project_id/scheduled_actions/:id

Updates the 'next_occurrence' property of a ScheduledAction.

func (*ScheduledActionLocator) Show

GET /api/manager/projects/:project_id/scheduled_actions/:id

Retrieve given ScheduledAction resource.

func (*ScheduledActionLocator) Skip

func (loc *ScheduledActionLocator) Skip(options rsapi.APIParams) error

POST /api/manager/projects/:project_id/scheduled_actions/:id/actions/skip

Skips the requested number of ScheduledAction occurrences. If no count is provided, one occurrence is skipped. On success, the next_occurrence view of the updated ScheduledAction is returned.

type ScheduledActionParam

type ScheduledActionParam struct {
	Action                string                                                 `json:"action,omitempty"`
	CreatedBy             *User                                                  `json:"created_by,omitempty"`
	Execution             *ExecutionParam                                        `json:"execution,omitempty"`
	ExecutionSchedule     bool                                                   `json:"execution_schedule,omitempty"`
	FirstOccurrence       *time.Time                                             `json:"first_occurrence,omitempty"`
	Href                  string                                                 `json:"href,omitempty"`
	Id                    string                                                 `json:"id,omitempty"`
	Kind                  string                                                 `json:"kind,omitempty"`
	Links                 *ScheduledActionLinks                                  `json:"links,omitempty"`
	Name                  string                                                 `json:"name,omitempty"`
	NextOccurrence        *time.Time                                             `json:"next_occurrence,omitempty"`
	Operation             *LatestNotificationExecutionNextActionOperationStruct  `json:"operation,omitempty"`
	Recurrence            string                                                 `json:"recurrence,omitempty"`
	RecurrenceDescription string                                                 `json:"recurrence_description,omitempty"`
	Timestamps            *LatestNotificationExecutionNextActionTimestampsStruct `json:"timestamps,omitempty"`
	Timezone              string                                                 `json:"timezone,omitempty"`
}

type StatusStruct

type StatusStruct struct {
	Percent int     `json:"percent,omitempty"`
	Summary string  `json:"summary,omitempty"`
	Tasks   []*Task `json:"tasks,omitempty"`
}

type Task

type Task struct {
	Label  string                                                               `json:"label,omitempty"`
	Name   string                                                               `json:"name,omitempty"`
	Status *LatestNotificationExecutionRunningOperationsStatusTasksStatusStruct `json:"status,omitempty"`
}

type TimestampsStruct

type TimestampsStruct struct {
	CreatedAt    *time.Time `json:"created_at,omitempty"`
	LaunchedAt   *time.Time `json:"launched_at,omitempty"`
	TerminatedAt *time.Time `json:"terminated_at,omitempty"`
}

type TimestampsStruct2

type TimestampsStruct2 struct {
	CreatedAt *time.Time `json:"created_at,omitempty"`
}

type TimestampsStruct3

type TimestampsStruct3 struct {
	CreatedAt  *time.Time `json:"created_at,omitempty"`
	FinishedAt *time.Time `json:"finished_at,omitempty"`
}

type TimestampsStruct4

type TimestampsStruct4 struct {
	CreatedAt *time.Time `json:"created_at,omitempty"`
	UpdatedAt *time.Time `json:"updated_at,omitempty"`
}

type User

type User struct {
	Email string `json:"email,omitempty"`
	Id    int    `json:"id,omitempty"`
	Name  string `json:"name,omitempty"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL