File: //snap/google-cloud-cli/current/lib/surface/looker/instances/create.yaml
- release_tracks: [ALPHA, GA]
help_text:
brief: |
Create a Looker instance.
description: |
Create a new Looker instance.
This command can fail for the following reasons:
* An instance with the same name already exists.
* The active account does not have permission to create instances.
* `--async` flag is not passed
examples: |
To create a basic tier instance with the name `my-looker-instance` in region `us-central-1`
with an edition of `LOOKER_CORE_STANDARD`, run:
$ {command} my-looker-instance --region=us-central1 --edition="core-standard" --oauth-client-id='looker' --oauth-client-secret='looker' --async
Note: It is *recommended* that the `--async` argument is provided when creating
a Looker instance.
arguments:
resource:
spec: !REF googlecloudsdk.command_lib.looker.resources:instance
help_text: |
Arguments and flags that specify the Looker instance you want
to create.
params:
# Required Flags - edition
- arg_name: edition
api_field: instance.platformEdition
required: true
help_text: |
The edition of the Looker instance.
choices:
- enum_value: LOOKER_CORE_TRIAL
arg_value: core-trial
help_text: |
Trial edition of Looker.
- enum_value: LOOKER_CORE_STANDARD
arg_value: core-standard
help_text: |
A Looker (Google Cloud core) product for small organizations or teams with fewer than 50
users. This will be billed monthly while the instance is active.
- enum_value: LOOKER_CORE_STANDARD_ANNUAL
arg_value: core-standard-annual
help_text: |
A Looker (Google Cloud core) product for small organizations or teams with fewer than 50
users. This can be purchased via an annual contract.
- enum_value: LOOKER_CORE_ENTERPRISE_ANNUAL
arg_value: core-enterprise-annual
help_text: |
A Looker (Google Cloud core) product with enhanced security features for a wide variety of
internal BI and analytics use cases. This can be purchased via an annual contract.
- enum_value: LOOKER_CORE_EMBED_ANNUAL
arg_value: core-embed-annual
help_text: |
A Looker (Google Cloud core) product for deploying and maintaining external analytics and
custom applications at scale. This can be purchased via an annual contract.
- enum_value: LOOKER_CORE_NONPROD_STANDARD_ANNUAL
arg_value: nonprod-core-standard-annual
help_text: |
A non-production edition of Looker (Google Cloud core) product for small organizations or teams with fewer than 50
users. This can be purchased via an annual contract.
- enum_value: LOOKER_CORE_NONPROD_ENTERPRISE_ANNUAL
arg_value: nonprod-core-enterprise-annual
help_text: |
A non-production edition of Looker (Google Cloud core) product with enhanced security features for a wide variety of
internal BI and analytics use cases. This can be purchased via an annual contract.
- enum_value: LOOKER_CORE_NONPROD_EMBED_ANNUAL
arg_value: nonprod-core-embed-annual
help_text: |
A non-production edition of Looker (Google Cloud core) product for deploying and maintaining external analytics and
custom applications at scale. This can be purchased via an annual contract.
- enum_value: LOOKER_CORE_TRIAL_STANDARD
arg_value: core-trial-standard
help_text: |
A standard trial edition of Looker (Google Cloud core) product.
- enum_value: LOOKER_CORE_TRIAL_ENTERPRISE
arg_value: core-trial-enterprise
help_text: |
An enterprise trial edition of Looker (Google Cloud core) product.
- enum_value: LOOKER_CORE_TRIAL_EMBED
arg_value: core-trial-embed
help_text: |
An embed trial edition of Looker (Google Cloud core) product.
# Flags - Public IP
- arg_name: public-ip-enabled
api_field: instance.publicIpEnabled
type: bool
help_text: |
This specifies whether public IP is enabled on the Looker instance.
default: true
- arg_name: fips-enabled
api_field: instance.fipsEnabled
type: bool
help_text: |
This specifies whether FIPS is enabled on the Looker instance.
default: false
# Required Flags - OAuth
- api_field: instance.oauthConfig.clientId
arg_name: oauth-client-id
required: true
help_text: |
The client ID from an external OAuth application.
OAuth Application Credentials - Looker Instance OAuth login settings. Setup an OAuth
app that will allow users to authenticate and access the instance. For more
information see: https://developers.google.com/identity/protocols/oauth2/web-server#creatingcred
- api_field: instance.oauthConfig.clientSecret
arg_name: oauth-client-secret
required: true
help_text: |
The client secret from an external OAuth application.
OAuth Application Credentials - Looker Instance OAuth login settings. Setup an OAuth
app that will allow users to authenticate and access the instance. For more
information see: https://developers.google.com/identity/protocols/oauth2/web-server#creatingcred
# Class Type for PD SSD
- arg_name: class-type
required: false
api_field: instance.classType
help_text: |
The class type of the Looker instance.
choices:
- arg_value: r1
enum_value: R1
- arg_value: p1
enum_value: P1
# Group for Private IP
- group:
required: false
help_text: |
Private IP - Assigns an internal, Google-hosted VPC IP address. Private IP
connectivity requires additional APIs and permissions. Private IP cannot be disabled once it
has been enabled. If enabled, *consumer-network* must be assigned.
params:
- api_field: instance.privateIpEnabled
arg_name: private-ip-enabled
required: true
type: bool
help_text: |
This specifies whether private IP (PSA) is enabled on the Looker instance.
This flag is for creating a PSA (Private Service Access) instance.
- api_field: instance.consumerNetwork
arg_name: consumer-network
required: true
help_text: |
The network name within the consumer project. This MUST be delared if enabling private IP.
- api_field: instance.reservedRange
arg_name: reserved-range
help_text: |
The name of a reserved IP address range within the consumer network to be used for private
service access connection.
# Group for PSC
- group:
required: false
help_text: |
Private Service Connect - Private Service Connect allows private consumption of services
across VPC networks that belong to different groups, teams, projects, or organizations.
params:
- api_field: instance.pscEnabled
arg_name: psc-enabled
type: bool
required: true
help_text: |
This specifies whether Private Service Connect (PSC) is enabled on the Looker instance.
- api_field: instance.pscConfig.allowedVpcs
arg_name: psc-allowed-vpcs
help_text: |
List of VPCs that are allowed ingress into the Looker instance.
# Group for KMS Encryption config
- group:
required: false
help_text: |
Key resource - The Cloud KMS (Key Management Service) cryptokey that will be used to
protect the Looker instance and backups. The 'Looker Service Agent' service account must hold
permission 'Cloud KMS CryptoKey Encrypter/Decrypter'. The arguments in this group can
be used to specify the attributes of this resource.
params:
- api_field: instance.encryptionConfig.kmsKeyName
arg_name: kms-key
help_text: |
ID of the key or fully qualified identifier for the key. To
set the *kms-key* attribute:
* provide the argument *--kms-key* on the command line.
# Group for Maintanence Windows
- group:
required: false
help_text: |
Maintenance Window - Maintenance typically only takes place once every few months, and requires your instance
to be restarted while updates are made, which disrupts service briefly.
params:
- api_field: instance.maintenanceWindow.dayOfWeek
required: true
arg_name: maintenance-window-day
choices:
- arg_value: monday
enum_value: MONDAY
- arg_value: tuesday
enum_value: TUESDAY
- arg_value: wednesday
enum_value: WEDNESDAY
- arg_value: thursday
enum_value: THURSDAY
- arg_value: friday
enum_value: FRIDAY
- arg_value: saturday
enum_value: SATURDAY
- arg_value: sunday
enum_value: SUNDAY
help_text: |
Day of week for maintenance window, in UTC time zone.
- api_field: instance.maintenanceWindow.startTime
arg_name: maintenance-window-time
required: true
ALPHA:
processor: googlecloudsdk.command_lib.looker.instances_util:ParseTimeOfDayMainWindowV1Alpha
GA:
processor: googlecloudsdk.command_lib.looker.instances_util:ParseTimeOfDayMainWindowV1
help_text: |
Hour of day for maintenance window, in UTC time zone. A valid time of day must be
specified in 24hr format (ex: 13:00, 17:30, 23:45). Maintenance will be scheduled
within 60 minutes.
# Group for Deny Maintanence period
- group:
required: false
help_text: |
Deny Maintanence Period - You must allow at least 48 hours of maintenance availability in
a 60-day rolling window. Only contiguous availability windows of at least two hours are
considered. When setting a maintenance exclusion please be aware that excluding
application upgrades cannot exceed 60-days and excluding infrastructure upgrades cannot
exceed 90-days.
params:
- api_field: instance.denyMaintenancePeriod.startDate
arg_name: deny-maintenance-period-start-date
required: true
GA:
processor: googlecloudsdk.command_lib.looker.instances_util:ParseToDateTypeV1
ALPHA:
processor: googlecloudsdk.command_lib.looker.instances_util:ParseToDateTypeV1Alpha
help_text: |
Start date of the deny maintenance period in format: YYYY-MM-DD
- api_field: instance.denyMaintenancePeriod.endDate
arg_name: deny-maintenance-period-end-date
required: true
GA:
processor: googlecloudsdk.command_lib.looker.instances_util:ParseToDateTypeV1
ALPHA:
processor: googlecloudsdk.command_lib.looker.instances_util:ParseToDateTypeV1Alpha
help_text: |
End date of the deny maintenance period in format: YYYY-MM-DD
- api_field: instance.denyMaintenancePeriod.time
required: true
arg_name: deny-maintenance-period-time
GA:
processor: googlecloudsdk.command_lib.looker.instances_util:ParseTimeOfDayDenyPeriodV1
ALPHA:
processor: googlecloudsdk.command_lib.looker.instances_util:ParseTimeOfDayDenyPeriodV1Alpha
help_text: |
Time in UTC when the period starts and ends. A valid time of day must be
specified in 24hr format (ex: 13:00, 17:30, 23:45).
# Group for Gemini AI
- group:
required: false
release_tracks: [ALPHA]
help_text: |
Gemini AI - Gemini AI is a powerful AI model that can be used to answer questions,
generate content, and perform a variety of other tasks.
params:
- api_field: instance.geminiEnabled
arg_name: gemini-enabled
type: bool
required: true
help_text: |
This specifies whether Gemini AI is enabled on the Looker instance.
- api_field: instance.geminiAiConfig.trustedTester
arg_name: gemini-preview-tester-enabled
type: bool
help_text: |
This specifies whether user opts in for Gemini AI public preview for the Looker instance.
- api_field: instance.geminiAiConfig.promptLogging
arg_name: gemini-prompt-log-enabled
type: bool
help_text: |
This specifies whether Gemini AI prompt logging is enabled for the Looker instance.
async:
collection: looker.projects.locations.operations
request:
ALPHA:
api_version: v1alpha2
GA:
api_version: v1
collection: looker.projects.locations.instances