Creates a new Service in a given project and location.

Scopes

You will need authorization for the https://www.googleapis.com/auth/cloud-platform scope to make a valid call.

If unset, the scope for this method defaults to https://www.googleapis.com/auth/cloud-platform. You can set the scope for this method like this: run2 --scope <scope> projects locations-services-create ...

Required Scalar Argument

  • <parent> (string)
    • Required. The location and project in which this service should be created. Format: projects/{project}/locations/{location}, where {project} can be project id or number. Only lowercase characters, digits, and hyphens.

Required Request Value

The request value is a data-structure with various fields. Each field may be a simple scalar or another data-structure. In the latter case it is advised to set the field-cursor to the data-structure's field to specify values more concisely.

For example, a structure like this:

GoogleCloudRunV2Service:
  annotations: { string: string }
  binary-authorization:
    breakglass-justification: string
    use-default: boolean
  client: string
  client-version: string
  create-time: string
  creator: string
  custom-audiences: [string]
  default-uri-disabled: boolean
  delete-time: string
  description: string
  etag: string
  expire-time: string
  generation: string
  ingress: string
  labels: { string: string }
  last-modifier: string
  latest-created-revision: string
  latest-ready-revision: string
  launch-stage: string
  name: string
  observed-generation: string
  reconciling: boolean
  satisfies-pzs: boolean
  scaling:
    min-instance-count: integer
  template:
    annotations: { string: string }
    encryption-key: string
    execution-environment: string
    health-check-disabled: boolean
    labels: { string: string }
    max-instance-request-concurrency: integer
    revision: string
    scaling:
      max-instance-count: integer
      min-instance-count: integer
    service-account: string
    session-affinity: boolean
    timeout: string
    vpc-access:
      connector: string
      egress: string
  terminal-condition:
    execution-reason: string
    last-transition-time: string
    message: string
    reason: string
    revision-reason: string
    severity: string
    state: string
    type: string
  uid: string
  update-time: string
  uri: string

can be set completely with the following arguments which are assumed to be executed in the given order. Note how the cursor position is adjusted to the respective structures, allowing simple field names to be used most of the time.

  • -r . annotations=key=sed
    • Optional. Unstructured key value map that may be set by external tools to store and arbitrary metadata. They are not queryable and should be preserved when modifying objects. Cloud Run API v2 does not support annotations with run.googleapis.com, cloud.googleapis.com, serving.knative.dev, or autoscaling.knative.dev namespaces, and they will be rejected in new resources. All system annotations in v1 now have a corresponding field in v2 Service. This field follows Kubernetes annotations' namespacing, limits, and rules.
    • the value will be associated with the given key
  • binary-authorization breakglass-justification=sit
    • If present, indicates to use Breakglass using this justification. If use_default is False, then it must be empty. For more information on breakglass, see https://cloud.google.com/binary-authorization/docs/using-breakglass
  • use-default=true

    • If True, indicates to use the default project's binary authorization policy. If False, binary authorization will be disabled.
  • .. client=aliquyam

    • Arbitrary identifier for the API client.
  • client-version=ipsum
    • Arbitrary version identifier for the API client.
  • create-time=et
    • Output only. The creation time.
  • creator=sanctus
    • Output only. Email address of the authenticated creator.
  • custom-audiences=lorem
    • One or more custom audiences that you want this service to support. Specify each custom audience as the full URL in a string. The custom audiences are encoded in the token and used to authenticate requests. For more information, see https://cloud.google.com/run/docs/configuring/custom-audiences.
    • Each invocation of this argument appends the given value to the array.
  • default-uri-disabled=true
    • Optional. Disables public resolution of the default URI of this service.
  • delete-time=et
    • Output only. The deletion time.
  • description=sed
    • User-provided description of the Service. This field currently has a 512-character limit.
  • etag=no
    • Output only. A system-generated fingerprint for this version of the resource. May be used to detect modification conflict during updates.
  • expire-time=et
    • Output only. For a deleted resource, the time after which it will be permamently deleted.
  • generation=elitr
    • Output only. A number that monotonically increases every time the user modifies the desired state. Please note that unlike v1, this is an int64 value. As with most Google APIs, its JSON representation will be a string instead of an integer.
  • ingress=sed
    • Provides the ingress settings for this Service. On output, returns the currently observed ingress settings, or INGRESS_TRAFFIC_UNSPECIFIED if no revision is active.
  • labels=key=no
    • Optional. Unstructured key value map that can be used to organize and categorize objects. User-provided labels are shared with Google's billing system, so they can be used to filter, or break down billing charges by team, component, environment, state, etc. For more information, visit https://cloud.google.com/resource-manager/docs/creating-managing-labels or https://cloud.google.com/run/docs/configuring/labels. Cloud Run API v2 does not support labels with run.googleapis.com, cloud.googleapis.com, serving.knative.dev, or autoscaling.knative.dev namespaces, and they will be rejected. All system labels in v1 now have a corresponding field in v2 Service.
    • the value will be associated with the given key
  • last-modifier=nonumy
    • Output only. Email address of the last authenticated modifier.
  • latest-created-revision=at
    • Output only. Name of the last created revision. See comments in reconciling for additional information on reconciliation process in Cloud Run.
  • latest-ready-revision=sadipscing
    • Output only. Name of the latest revision that is serving traffic. See comments in reconciling for additional information on reconciliation process in Cloud Run.
  • launch-stage=aliquyam
    • The launch stage as defined by Google Cloud Platform Launch Stages. Cloud Run supports ALPHA, BETA, and GA. If no value is specified, GA is assumed. Set the launch stage to a preview stage on input to allow use of preview features in that stage. On read (or output), describes whether the resource uses preview features. For example, if ALPHA is provided as input, but only BETA and GA-level features are used, this field will be BETA on output.
  • name=dolores
    • The fully qualified name of this Service. In CreateServiceRequest, this field is ignored, and instead composed from CreateServiceRequest.parent and CreateServiceRequest.service_id. Format: projects/{project}/locations/{location}/services/{service_id}
  • observed-generation=sadipscing
    • Output only. The generation of this Service currently serving traffic. See comments in reconciling for additional information on reconciliation process in Cloud Run. Please note that unlike v1, this is an int64 value. As with most Google APIs, its JSON representation will be a string instead of an integer.
  • reconciling=false
    • Output only. Returns true if the Service is currently being acted upon by the system to bring it into the desired state. When a new Service is created, or an existing one is updated, Cloud Run will asynchronously perform all necessary steps to bring the Service to the desired serving state. This process is called reconciliation. While reconciliation is in process, observed_generation, latest_ready_revison, traffic_statuses, and uri will have transient values that might mismatch the intended state: Once reconciliation is over (and this field is false), there are two possible outcomes: reconciliation succeeded and the serving state matches the Service, or there was an error, and reconciliation failed. This state can be found in terminal_condition.state. If reconciliation succeeded, the following fields will match: traffic and traffic_statuses, observed_generation and generation, latest_ready_revision and latest_created_revision. If reconciliation failed, traffic_statuses, observed_generation, and latest_ready_revision will have the state of the last serving revision, or empty for newly created Services. Additional information on the failure can be found in terminal_condition and conditions.
  • satisfies-pzs=true
    • Output only. Reserved for future use.
  • scaling min-instance-count=44

    • total min instances for the service. This number of instances is divided among all revisions with specified traffic based on the percent of traffic they are receiving. (ALPHA)
  • ..template annotations=key=et

    • Unstructured key value map that may be set by external tools to store and arbitrary metadata. They are not queryable and should be preserved when modifying objects. Cloud Run API v2 does not support annotations with run.googleapis.com, cloud.googleapis.com, serving.knative.dev, or autoscaling.knative.dev namespaces, and they will be rejected. All system annotations in v1 now have a corresponding field in v2 RevisionTemplate. This field follows Kubernetes annotations' namespacing, limits, and rules.
    • the value will be associated with the given key
  • encryption-key=sea
    • A reference to a customer managed encryption key (CMEK) to use to encrypt this container image. For more information, go to https://cloud.google.com/run/docs/securing/using-cmek
  • execution-environment=consetetur
    • The sandbox environment to host this Revision.
  • health-check-disabled=true
    • Optional. Disables health checking containers during deployment.
  • labels=key=stet
    • Unstructured key value map that can be used to organize and categorize objects. User-provided labels are shared with Google's billing system, so they can be used to filter, or break down billing charges by team, component, environment, state, etc. For more information, visit https://cloud.google.com/resource-manager/docs/creating-managing-labels or https://cloud.google.com/run/docs/configuring/labels. Cloud Run API v2 does not support labels with run.googleapis.com, cloud.googleapis.com, serving.knative.dev, or autoscaling.knative.dev namespaces, and they will be rejected. All system labels in v1 now have a corresponding field in v2 RevisionTemplate.
    • the value will be associated with the given key
  • max-instance-request-concurrency=94
    • Sets the maximum number of requests that each serving instance can receive.
  • revision=aliquyam
    • The unique name for the revision. If this field is omitted, it will be automatically generated based on the Service name.
  • scaling max-instance-count=7
    • Maximum number of serving instances that this resource should have.
  • min-instance-count=81

    • Minimum number of serving instances that this resource should have.
  • .. service-account=diam

    • Email address of the IAM service account associated with the revision of the service. The service account represents the identity of the running revision, and determines what permissions the revision has. If not provided, the revision will use the project's default service account.
  • session-affinity=true
    • Optional. Enable session affinity.
  • timeout=sit
    • Max allowed time for an instance to respond to a request.
  • vpc-access connector=sed
    • VPC Access connector name. Format: projects/{project}/locations/{location}/connectors/{connector}, where {project} can be project id or number. For more information on sending traffic to a VPC network via a connector, visit https://cloud.google.com/run/docs/configuring/vpc-connectors.
  • egress=eos

    • Traffic VPC egress settings. If not provided, it defaults to PRIVATE_RANGES_ONLY.
  • ...terminal-condition execution-reason=lorem

    • A reason for the execution condition.
  • last-transition-time=ea
    • Last time the condition transitioned from one status to another.
  • message=stet
    • Human readable message indicating details about the current status.
  • reason=dolores
    • A common (service-level) reason for this condition.
  • revision-reason=eos
    • A reason for the revision condition.
  • severity=et
    • How to interpret failures of this condition, one of Error, Warning, Info
  • state=sea
    • State of the condition.
  • type=et

    • type is used to communicate the status of the reconciliation process. See also: https://github.com/knative/serving/blob/main/docs/spec/errors.md#error-conditions-and-reporting Types common to all resources include: * "Ready": True when the Resource is ready.
  • .. uid=at

    • Output only. Server assigned unique identifier for the trigger. The value is a UUID4 string and guaranteed to remain unchanged until the resource is deleted.
  • update-time=dolore
    • Output only. The last-modified time.
  • uri=eirmod
    • Output only. The main URI in which this Service is serving traffic.

About Cursors

The cursor position is key to comfortably set complex nested structures. The following rules apply:

  • The cursor position is always set relative to the current one, unless the field name starts with the . character. Fields can be nested such as in -r f.s.o .
  • The cursor position is set relative to the top-level structure if it starts with ., e.g. -r .s.s
  • You can also set nested fields without setting the cursor explicitly. For example, to set a value relative to the current cursor position, you would specify -r struct.sub_struct=bar.
  • You can move the cursor one level up by using ... Each additional . moves it up one additional level. E.g. ... would go three levels up.

Optional Output Flags

The method's return value a JSON encoded structure, which will be written to standard output by default.

  • -o out
    • out specifies the destination to which to write the server's result to. It will be a JSON-encoded structure. The destination may be - to indicate standard output, or a filepath that is to contain the received bytes. If unset, it defaults to standard output.

Optional Method Properties

You may set the following properties to further configure the call. Please note that -p is followed by one or more key-value-pairs, and is called like this -p k1=v1 k2=v2 even though the listing below repeats the -p for completeness.

  • -p service-id=string

    • Required. The unique identifier for the Service. It must begin with letter, and cannot end with hyphen; must contain fewer than 50 characters. The name of the service becomes {parent}/services/{service_id}.
  • -p validate-only=boolean

    • Indicates that the request should be validated and default values populated, without persisting the request or creating any resources.

Optional General Properties

The following properties can configure any call, and are not specific to this method.

  • -p $-xgafv=string

    • V1 error format.
  • -p access-token=string

    • OAuth access token.
  • -p alt=string

    • Data format for response.
  • -p callback=string

    • JSONP
  • -p fields=string

    • Selector specifying which fields to include in a partial response.
  • -p key=string

    • API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
  • -p oauth-token=string

    • OAuth 2.0 token for the current user.
  • -p pretty-print=boolean

    • Returns response with indentations and line breaks.
  • -p quota-user=string

    • Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.
  • -p upload-type=string

    • Legacy upload protocol for media (e.g. "media", "multipart").
  • -p upload-protocol=string

    • Upload protocol for media (e.g. "raw", "multipart").