project:
  name: project
  collection: networkservices.projects
  attributes:
  - &project
    parameter_name: projectsId
    attribute_name: project
    help: |
      The project ID.
    property: core/project

location:
  name: location
  collection: networkservices.projects.locations
  attributes:
  - *project
  - &location
    parameter_name: locationsId
    attribute_name: location
    help: |
      The location ID.
    fallthroughs:
    # If the location is not specified, assume 'global' by default.
    - hook: googlecloudsdk.command_lib.network_actions.util:SetLocationAsGlobal
      hint: use global location

wasmAction:
  name: WasmAction
  collection: networkservices.projects.locations.wasmActions
  request_id_field: wasmActionId
  attributes:
  - *project
  - *location
  - &wasmAction
    parameter_name: wasmActionsId
    attribute_name: wasm_action
    help: The ID of the `WasmAction`.

wasmPlugin:
  name: WasmPlugin
  collection: networkservices.projects.locations.wasmPlugins
  request_id_field: wasmPluginId
  attributes:
  - *project
  - *location
  - &wasmPlugin
    parameter_name: wasmPluginsId
    attribute_name: wasm_plugin
    help: The ID of the `WasmPlugin`.

wasmPluginVersion:
  name: WasmPluginVersion
  collection: networkservices.projects.locations.wasmPlugins.versions
  request_id_field: wasmPluginVersionId
  attributes:
  - *project
  - *location
  - *wasmPlugin
  - &version
    parameter_name: versionsId
    attribute_name: wasm_plugin_version
    help: The ID of the `WasmPluginVersion`.
