- release_tracks: [ALPHA, BETA]
  help_text:
    brief: create a reference image.
    description: create a reference image.
    examples: |
      To create a reference image 'my-image' in product 'my-product' in the
      location 'us-east1' from image of 'gs://my-bucket/image.jpg' with two
      bounding polygons, run:

        $ {command} my-image --location=my-location --product=my-product --storage-location=gs://my-bucket/image.jpg --flags-file=my-flags.yaml

      The content of 'my-flags.yaml' is as following:

      ```
      - --bounding-polygon:
          vertices:
            - {x: 0, y: 0}
            - {x: 0, y: 10}
            - {x: 10, y: 0}
            - {x: 10, y: 10}
      - --bounding-polygon:
          normalized-vertices:
            - {x: 0.8, y: 0.8}
            - {x: 0.8, y: 1}
            - {x: 1, y: 0.8}
            - {x: 1, y: 1}
      ```
  request:
    collection: vision.projects.locations.products.referenceImages
    api_version: v1
    modify_request_hooks:
    - googlecloudsdk.command_lib.ml.vision.product_search.utils:AddBoundingPolygonsToReferenceImageCreationRequest

  arguments:
    resource:
      help_text: Reference image to create.
      spec: !REF googlecloudsdk.command_lib.ml.vision.resources:reference_image
    params:
    - api_field: referenceImage.uri
      arg_name: storage-location
      required: true
      help_text: |-
        The Google Cloud Storage URI of the reference image. The URI must start with 'gs://'.
    additional_arguments_hook: googlecloudsdk.command_lib.ml.vision.product_search.utils:AddBoundingPolygonsArg
