
                             d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ dd	l
mZ dd
l
mZ ddlmZ e	j                    G d de	j"                               Zy)z7Implementation of create command for inventory reports.    )absolute_import)division)unicode_literals)insights_api)arg_parsers)base)errors)flags)storage_url)resource_argsc                   0    e Zd ZdZdddZed        Zd Zy)Updatez"Update an inventory report config.z1
       Update an inventory report config.
      a  

      To update the display-name of an inventory report config with ID=1234,
      location=us-central1, and project=foo:

        $ {command} 1234 --location=us-central1 --project=foo --display-name=bar

      To update the same inventory report config with fully specified name:

        $ {command} /projects/foo/locations/us-central1/reportConfigs/1234 --display-name=bar
      )DESCRIPTIONEXAMPLESc                    t        j                  | d       t        j                  |        | j	                  d      }|j	                  d      }t        j
                  |       |j                  ddt        j                  t        j                        d	
       |j                  ddt        j                  t        j                        d
       y )Nz	to updateT)mutexz(Add and Remove flags for metadata fields)helpz--add-metadata-fieldsMETADATA_FIELDS)choicesz(Adds fields to the metadata_fields list.)metavartyper   z--remove-metadata-fieldsz-Removes fields from the metadata_fields list.)
r   add_report_config_resource_argr
   add_inventory_reports_flags	add_group*add_inventory_reports_metadata_fields_flagadd_argumentr   ArgList*OPTIONAL_INVENTORY_REPORTS_METADATA_FIELDS)parsermetadata_fields_group metadata_fields_add_remove_groups      8lib/surface/storage/insights/inventory_reports/update.pyArgszUpdate.Args3   s    00E	%%f-",,4,8'<'F'F7 (G (9$	445JK$11!  DDF7 2 9 %11"!  DDF< 2 >    c                    t        j                         }|j                  j                  j	                         j                         }|j                  s|j                  r|j                  |      }t        |j                  j                        }|j                  "|j                  D ]  }|j                  |        |j                  J|j                  D ];  }||vr$t        j                  dj                  |            |j!                  |       = t#        |      }n$|j$                  rt#        |j$                        }ng }|j&                  3t)        j*                  t)        j,                  |j&                              }nd }|j/                  ||||j0                  |j2                  |j4                  |j6                  |j8                  |j:                  |j<                  |j>                        S )Nz-Cannot remove non-existing metadata field: {})
destination_urlmetadata_fields
start_dateend_date	frequencycsv_separatorcsv_delimiter
csv_headerparquetdisplay_name) r   InsightsApiCONCEPTSreport_configParseRelativeNameadd_metadata_fieldsremove_metadata_fieldsget_inventory_reportsetobjectMetadataReportOptionsmetadataFieldsaddr	   Errorformatremovelistr'   destinationr   storage_url_from_stringadd_gcs_scheme_if_missingupdate_inventory_reportschedule_startsschedule_repeats_untilschedule_repeatsr+   r,   r-   r.   r/   )	selfargsclientreport_config_namer2   r'   fieldmetadata_fields_listr&   s	            r"   Runz
Update.RunK   s   %%'F44::<IIK4#>#> 112DEm

3
3
B
BDo		!	!	---E


e
$ . 
	$	$	000E/),,?FFuMO O

 
 
'	 1
 "/2			!$"6"67
  ##;;

/
/0@0@
ACo o))','',,''((((??&& *  r$   N)__name__
__module____qualname____doc__detailed_helpstaticmethodr#   rM    r$   r"   r   r      s/    *


	-" > >./r$   r   N)rQ   
__future__r   r   r   googlecloudsdk.api_lib.storager   googlecloudsdk.callioper   r   "googlecloudsdk.command_lib.storager	   r
   r   =googlecloudsdk.command_lib.storage.insights.inventory_reportsr   DefaultUniverseOnlyCommandr   rT   r$   r"   <module>r\      sP    > &  ' 7 / ( 5 4 : W [T\\ [ [r$   