REST Resource: projects.locations.resourceAllowances

Resource: ResourceAllowance

The Resource Allowance description for Cloud Batch. Only one Resource Allowance is supported now under a specific location and project.

JSON representation
{
  "name": string,
  "uid": string,
  "createTime": string,
  "labels": {
    string: string,
    ...
  },
  "notifications": [
    {
      object (Notification)
    }
  ],

  // Union field resource_allowance can be only one of the following:
  "usageResourceAllowance": {
    object (UsageResourceAllowance)
  }
  // End of list of possible types for union field resource_allowance.
}
Fields
name

string

Identifier. ResourceAllowance name. For example: "projects/123456/locations/us-central1/resourceAllowances/resource-allowance-1".

uid

string

Output only. A system generated unique ID (in UUID4 format) for the ResourceAllowance.

createTime

string (Timestamp format)

Output only. Time when the ResourceAllowance was created.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

labels

map (key: string, value: string)

Optional. Labels are attributes that can be set and used by both the user and by Batch. Labels must meet the following constraints:

  • Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes.
  • All characters must use UTF-8 encoding, and international characters are allowed.
  • Keys must start with a lowercase letter or international character.
  • Each resource is limited to a maximum of 64 labels.

Both keys and values are additionally constrained to be <= 128 bytes.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

notifications[]

object (Notification)

Optional. Notification configurations.

Union field resource_allowance. ResourceAllowance detail. resource_allowance can be only one of the following:
usageResourceAllowance

object (UsageResourceAllowance)

The detail of usage resource allowance.

UsageResourceAllowance

UsageResourceAllowance describes the detail of usage resource allowance.

JSON representation
{
  "spec": {
    object (UsageResourceAllowanceSpec)
  },
  "status": {
    object (UsageResourceAllowanceStatus)
  }
}
Fields
spec

object (UsageResourceAllowanceSpec)

Required. Spec of a usage ResourceAllowance.

status

object (UsageResourceAllowanceStatus)

Output only. Status of a usage ResourceAllowance.

UsageResourceAllowanceSpec

Spec of a usage ResourceAllowance.

JSON representation
{
  "type": string,
  "limit": {
    object (Limit)
  }
}
Fields
type

string

Required. Spec type is unique for each usage ResourceAllowance. Batch now only supports type as "cpu-core-hours" for CPU usage consumption tracking.

limit

object (Limit)

Required. Threshold of a UsageResourceAllowance limiting how many resources can be consumed for each type.

Limit

UsageResourceAllowance limitation.

JSON representation
{

  // Union field duration can be only one of the following:
  "calendarPeriod": enum (CalendarPeriod)
  // End of list of possible types for union field duration.
  "limit": number
}
Fields

Union field duration.

duration can be only one of the following:

calendarPeriod

enum (CalendarPeriod)

Optional. A CalendarPeriod represents the abstract concept of a time period that has a canonical start.

limit

number

Required. Limit value of a UsageResourceAllowance within its one duration.

Limit cannot be a negative value. Default is 0. For example, you can set limit as 10000.0 with duration of the current month by setting calendarPeriod field as monthly. That means in your current month, 10000.0 is the core hour limitation that your resources are allowed to consume.

CalendarPeriod

A CalendarPeriod represents the abstract concept of a time period that has a canonical start. All calendar times begin at 12 AM US and Canadian Pacific Time (UTC-8).

Enums
CALENDAR_PERIOD_UNSPECIFIED Unspecified.
MONTH The month starts on the first date of the month and resets at the beginning of each month.
QUARTER The quarter starts on dates January 1, April 1, July 1, and October 1 of each year and resets at the beginning of the next quarter.
YEAR The year starts on January 1 and resets at the beginning of the next year.
WEEK The week period starts and resets every Monday.
DAY The day starts at 12:00am.

UsageResourceAllowanceStatus

Status of a usage ResourceAllowance.

JSON representation
{
  "state": enum (ResourceAllowanceState),
  "limitStatus": {
    object (LimitStatus)
  },
  "report": {
    object (ConsumptionReport)
  }
}
Fields
state

enum (ResourceAllowanceState)

Output only. ResourceAllowance state.

limitStatus

object (LimitStatus)

Output only. ResourceAllowance consumption status for usage resources.

report

object (ConsumptionReport)

Output only. The report of ResourceAllowance consumptions in a time period.

ResourceAllowanceState

ResourceAllowance valid state.

Enums
RESOURCE_ALLOWANCE_STATE_UNSPECIFIED Unspecified.
RESOURCE_ALLOWANCE_ACTIVE ResourceAllowance is active and in use.
RESOURCE_ALLOWANCE_DEPLETED ResourceAllowance limit is reached.

LimitStatus

UsageResourceAllowanceStatus detail about usage consumption.

JSON representation
{
  "consumptionInterval": {
    object (Interval)
  },
  "limit": number,
  "consumed": number
}
Fields
consumptionInterval

object (Interval)

Output only. The consumption interval.

limit

number

Output only. Limit value of a UsageResourceAllowance within its one duration.

consumed

number

Output only. Accumulated consumption during consumptionInterval.

Interval

Represents a time interval, encoded as a Timestamp start (inclusive) and a Timestamp end (exclusive).

The start must be less than or equal to the end. When the start equals the end, the interval is empty (matches no time). When both start and end are unspecified, the interval matches any time.

JSON representation
{
  "startTime": string,
  "endTime": string
}
Fields
startTime

string (Timestamp format)

Optional. Inclusive start of the interval.

If specified, a Timestamp matching this interval will have to be the same or after the start.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

endTime

string (Timestamp format)

Optional. Exclusive end of the interval.

If specified, a Timestamp matching this interval will have to be before the end.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

ConsumptionReport

ConsumptionReport is the report of ResourceAllowance consumptions in a time period.

JSON representation
{
  "latestPeriodConsumptions": {
    string: {
      object (PeriodConsumption)
    },
    ...
  }
}
Fields
latestPeriodConsumptions

map (key: string, value: object (PeriodConsumption))

Output only. ResourceAllowance consumptions in the latest calendar period. Key is the calendar period in string format. Batch currently supports HOUR, DAY, MONTH and YEAR.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

PeriodConsumption

JSON representation
{
  "consumptionInterval": {
    object (Interval)
  },
  "consumed": number
}
Fields
consumptionInterval

object (Interval)

Output only. The consumption interval.

consumed

number

Output only. Accumulated consumption during consumptionInterval.

Notification

Notification on resource state change.

JSON representation
{
  "pubsubTopic": string
}
Fields
pubsubTopic

string

Required. The Pub/Sub topic where notifications like the resource allowance state changes will be published. The topic must exist in the same project as the job and billings will be charged to this project. If not specified, no Pub/Sub messages will be sent. Topic format: projects/{project}/topics/{topic}.

Methods

create

Create a Resource Allowance.

delete

Delete a ResourceAllowance.

get

Get a ResourceAllowance specified by its resource name.

list

List all ResourceAllowances for a project within a region.

patch

Update a Resource Allowance.