release_tracks: [ALPHA]
command_type: GENERIC
help_text:
  brief: Import a Dialogflow agent from a zip file.
  description: |
    Import a Dialogflow agent from a ZIP file and upload it to the agent of the current project.
    By default, uploads new intents and entity types without deleting the existing ones. Intents
    and entity types with the same name are replaced with the new versions.
  examples: |
    To import local file `path/to/agent.zip` to the agent of the current project:

      $ {command} --source="path/to/agent.zip"

    To import `agent.zip` in Google Storage Bucket `mybucket` to the agent of the current project:

      $ {command} --source="gs://mybucket/agent.zip"

    To import local file `path/to/agent.zip` to the agent of the current project and replace all
    existing resources in the agent:

      $ {command} --source="path/to/agent.zip" --replace-all

arguments:
  resource:
    help_text: The agent to import.
    spec: !REF googlecloudsdk.command_lib.dialogflow.resources:project
    is_parent_resource: true
  params:
  - arg_name: source
    help_text: |
      Path to a file or the URI to a Google Cloud Storage file containing the agent to import.
      Note: A URI must start with "gs://".
    required: true
  - arg_name: replace-all
    type: bool
    action: store_true
    help_text: |
      If true, replace the current agent version with a new one. All the intents and entity types
      in the older version will be deleted.

request:
  collection: dialogflow.projects.agent
  method: import
  modify_method_hook:
    googlecloudsdk.command_lib.dialogflow.agent.hooks:ChooseImportOrRestoreMethod
  modify_request_hooks:
  - googlecloudsdk.command_lib.dialogflow.agent.hooks:ModifyImportOrRestoreRequest

async:
  collection: dialogflow.projects.operations
  extract_resource_result: false

response:
  modify_response_hooks:
  - googlecloudsdk.command_lib.dialogflow.agent.hooks:LogImportSuccess

output:
  format: none
