
    ^                         S r SSKJr  SSKJr  SSKJr  SSKrSSKJrJr  SSK	J
r
  SSKJr  SS	KJr  SS
KJr  SSKJr  SrSrS rS rS r\R4                  " SS5      r " S S5      rg)z-Client for interacting with Storage Insights.    )absolute_import)division)unicode_literalsN)SequenceOptional)
list_pager)errors)client)apis)
propertiesi  'CSV options cannot be set with parquet.c                 L    U b   U R                  S5      R                  S5      $ S$ )z;Returns the ASCII string unescaping any escaped characters.Nasciizunicode-escape)encodedecode)strings    2lib/googlecloudsdk/api_lib/storage/insights_api.py_get_unescaped_asciir   %   s3     "- 
w		&	&
 8378    c                 @    SR                  XR                  5       5      $ )Nzprojects/{}/locations/{})formatlower)projectlocations     r   _get_parent_stringr   +   s     
$	*	*7NN4D	EEr   c                     [         R                  " 5       nUR                  U 5      n[        UR                  R
                  UR                  R                  R                  5       5      $ N)gcs_json_client
JsonClient
get_bucketr   metadataprojectNumberr   r   )bucket
gcs_clientbucket_resources      r   _get_parent_string_from_bucketr&   2   sT    ))+*))&1/	,,''--/
 r   ReportFormatOptionscsvparquetc            %       >  ^  \ rS rSrSrU 4S jr             S0S\S\S\S\S\S	\\   S
\	S\\
\      S\\
\      S\\
\      S\\
\      S\\
\      S\\
\      S\\
\      S\\
\      S\	S\S\4$S jjrS rS rS rS rS1S jr             S2S
\	S\\
\      S\\
\      S\\
\      S\\
\      S\\
\      S\\
\      S\\
\      S\\
\      S\	S\S	\\   S\4S jjr             S2S
\	S\\
\      S\\
\      S\\
\      S\\
\      S\\
\      S\\
\      S\\
\      S\\
\      S\	S\S	\\   S\4S jjrS  r         S3S! jrS" r S4S# jrS$ rS5S% jrS& rS' rS( r          S6S) jrS7S* jrS+ rS, rS- r S. r!S/r"U =r#$ )8InsightsApiB   z Client for Storage Insights API.c                    > [         [        U ]  5         [        R                  " SS5      U l        [        R                  " SS5      U l        g )Nstorageinsightsv1)superr,   __init__	core_apisGetClientInstancer
   GetMessagesModulemessages)self	__class__s    r   r2   InsightsApi.__init__E   s:    	+t%'--.?FDK//0A4HDMr   dataset_config_namer   destination_projectorganization_numberretention_periodactivity_data_retention_periodorganization_scopesource_projects_listsource_folders_list!include_buckets_prefix_regex_list!exclude_buckets_prefix_regex_listinclude_buckets_name_listexclude_buckets_name_listinclude_source_locationsexclude_source_locationsauto_add_new_bucketsidentity_typedescriptionc                    UbM  U R                   R                  R                  UR                  5       5      nU R                   R                  US9nOAU R                   R                  U R                   R                  R                  R                  S9nU(       a  U R                   R                  US9OSnU	(       a  U R                   R                  U	S9OSnU R                   R                  UUUUUUUUU(       a  UOSS9	nUb  UUl        U(       d  U(       a  U=(       d    /  Vs/ s H  nU R                   R                  US9PM     nnUU=(       d    /  Vs/ s H  nU R                   R                  US9PM     sn-  nU R                   R                  US9Ul        U(       d  U
(       a  U=(       d    /  Vs/ s H  nU R                   R                  US9PM     nnUU
=(       d    /  Vs/ s H  nU R                   R                  US9PM     sn-  nU R                   R                  US9Ul        U(       a  U R                   R                  US	9Ul        U(       a  U R                   R                  US	9Ul        U R                   R!                  UU[#        X25      S
9nU R$                  R&                  R)                  U5      $ s  snf s  snf s  snf s  snf )a
  Creates a dataset config.

Args:
  dataset_config_name: Name for the dataset config being created.
  location: The location where insights data will be stored in a GCS
    managed BigQuery instance.
  destination_project: The project in which the dataset config is
    being created and by extension the insights data will be stored.
  organization_number: Organization number of the organization to
    which all source projects / folders must belong.
  retention_period: No of days for which insights data is to be
    retained in BigQuery instance.
  activity_data_retention_period: No of days for which activity data is to
    be retained in BigQuery instance. If not set, retention period will be
    used by the API.
  organization_scope: If True, Insights data will be collected for
    all resources in the given organization.
  source_projects_list: List of source project numbers. Insights
    data is to be collected for buckets that belong to these projects.
  source_folders_list: List of source folder numbers. Insights
    data is to be collected for buckets that belong to these folders.
  include_buckets_prefix_regex_list: List of bucket prefix regex
    patterns which are to be included for insights processing from the
    source projects. We can either use included or excluded bucket
    parameters.
  exclude_buckets_prefix_regex_list: List of bucket prefix regex
    patterns which are to be excluded from insights processing from the
    source projects. We can either use included or excluded bucket
    parameters.
  include_buckets_name_list: List of bucket names which are to
    be included for insights processing from the source projects. We can
    either use included or excluded bucket parameters.
  exclude_buckets_name_list: List of bucket names which are to
    be excluded from insights processing from the source projects. We can
    either use included or excluded bucket parameters.
  include_source_locations: List of bucket locations which are
    to be included for insights processing from the source projects. We can
    either use included or excluded location parameters.
  exclude_source_locations: List of bucket locations which are
    to be excluded from insights processing from the source projects. We can
    either use included or excluded location parameters.
  auto_add_new_buckets: If True, auto includes any new buckets added
    to source projects that satisfy the include/exclude criterias.
  identity_type: Option for how permissions need to be setup for a
    given dataset config. Default option is IDENTITY_TYPE_PER_CONFIG.
  description: Human readable description text for the given dataset
    config.

Returns:
  An instance of Operation message
N)typeprojectNumbersfolderNumbers)	rJ   identityincludeNewlyCreatedBucketsnameorganizationNumberretentionPeriodDayssourceProjectssourceFoldersorganizationScope
bucketNamebucketPrefixRegexcloudStorageBuckets	locations)datasetConfigdatasetConfigIdparent)r6   IdentityTypeValueValuesEnumupperIDENTITY_TYPE_PER_CONFIGSourceProjectsSourceFoldersDatasetConfigactivityDataRetentionPeriodDaysCloudStorageBucketCloudStorageBucketsexcludeCloudStorageBucketsincludeCloudStorageBucketsCloudStorageLocationsexcludeCloudStorageLocationsincludeCloudStorageLocations;StorageinsightsProjectsLocationsDatasetConfigsCreateRequestr   r
   !projects_locations_datasetConfigsCreate)r7   r:   r   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   identity_type_enumsource_projectssource_foldersdataset_configexcluded_nameexcluded_storage_bucketsexcluded_regexincluded_nameincluded_storage_bucketsincluded_regexcreate_requests                                 r   create_dataset_config!InsightsApi.create_dataset_configJ   s   P  ==11EE



 mm,,2D,Emmm,,}}%%99RR - m 
 mm22+ 3 #'  
 ]]00) 1 "&  ]]00#7 .,&$0B, 1 
N &1
( 4 !$E  9>B>">m --
*
*m
*
D>  "  A GR G# Gn --
*
*^
*
L G# 
 --
+
+": ,  / !$E  9>B>">m --
*
*m
*
D>  "  A GR G# Gn --
*
*^
*
L G# 
 --
+
+": ,  /  
--
-
-0 .  1  
--
-
-0 .  1 ]]^^$+!"5@ _ N
 ;;88??OOa"#"#s   %#K#K
9#K,#Kc                 ~    U R                   R                  US9nU R                  R                  R	                  U5      $ )z Creates the dataset config link.rS   )r6   @StorageinsightsProjectsLocationsDatasetConfigsLinkDatasetRequestr
   rt   LinkDatasetr7   dataset_config_relative_namerequests      r   create_dataset_config_link&InsightsApi.create_dataset_config_link   s<    mm\\) ] G ;;88DDWMMr   c                 ~    U R                   R                  US9nU R                  R                  R	                  U5      $ )zDeletes the dataset config.r   )r6   ;StorageinsightsProjectsLocationsDatasetConfigsDeleteRequestr
   rt   Deleter   s      r   delete_dataset_config!InsightsApi.delete_dataset_config   s<    mmWW) X G ;;88??HHr   c                 ~    U R                   R                  US9nU R                  R                  R	                  U5      $ )z Deletes the dataset config link.r   )r6   BStorageinsightsProjectsLocationsDatasetConfigsUnlinkDatasetRequestr
   rt   UnlinkDatasetr   s      r   delete_dataset_config_link&InsightsApi.delete_dataset_config_link   s<    mm^^) _ G ;;88FFwOOr   c                 z    U R                   R                  R                  U R                  R	                  US95      $ )zGets the dataset config.r   )r
   rt   Getr6   8StorageinsightsProjectsLocationsDatasetConfigsGetRequest)r7   r   s     r   get_dataset_configInsightsApi.get_dataset_config   s:    ;;88<<NN- 	O 	
 r   c                    Ub=  [        [        R                  R                  R                  R                  5       U5      nO<[        [        R                  R                  R                  R                  5       S5      n[        R                  " U R                  R                  U R                  R                  US9Ub  UO[        SSS9$ )zLists the dataset configs.

Args:
  location (str): The location where insights data will be stored in a GCS
    managed BigQuery instance.
  page_size (int|None): Number of items per request to be returned.

Returns:
  List of dataset configs.
-rc   pageSizedatasetConfigs
batch_sizebatch_size_attributefield)r   r   VALUEScorer   r   r   YieldFromListr
   rt   r6   9StorageinsightsProjectsLocationsDatasetConfigsListRequest	PAGE_SIZE)r7   r   	page_sizerc   s       r   list_dataset_configInsightsApi.list_dataset_config  s     !



 
 
(
(
,
,
.f "*"3"3"8"8"@"@"D"D"FLf##55OO 	P 	
 !* 599' r   rw   rx   c                     / nSU4SUSL4SUSL4SUSL=(       d    USL4SUSL=(       d    USL4SUSL4SU	SL4S	U
SL4S
USL4SUSL4SUSL4/nU H   u  nnU(       d  M  UR                  U5        M"     U$ )zReturns the update_mask list.rX   rV   NrW   ro   rn   rr   rq   rR   rU   rk   rJ   )append)r7   r?   rw   rx   rD   rB   rE   rC   rF   rG   rH   r=   r>   rJ   update_maskmask_conditionsmask	conditions                     r   _get_dataset_config_update_mask+InsightsApi._get_dataset_config_update_mask#  s    " K 
01	?$67	.45(%T1 =0<	
 )%T1 =0<	

 
()A)MN	')A)MN	%';4'GH	 0 <=-*$6	
 
4/0-O2 +i	4  + r   c                    U R                  UUUUUUUU	U
UUUUS9nU(       d%  [        R                  " SR                  U5      5      eUb  U R                  R                  US9OSnUb  U R                  R                  US9OSnU R                  R                  UUUUUS9nU(       a  SUl        Ub  UUl	        U(       d  U(       a  U=(       d    /  Vs/ s H  nU R                  R                  US9PM     nnUU=(       d    /  Vs/ s H  nU R                  R                  US	9PM     sn-  nU R                  R                  US
9Ul        OU(       d  U(       a  U=(       d    /  Vs/ s H  nU R                  R                  US9PM     nnUU=(       d    /  Vs/ s H  nU R                  R                  US	9PM     sn-  nU R                  R                  US
9Ul        U
(       a  U R                  R                  U
S9Ul        U	(       a  U R                  R                  U	S9Ul        U R                  R#                  UUSR%                  U5      S9nU R&                  R(                  R+                  U5      $ s  snf s  snf s  snf s  snf )aE
  Updates the dataset config.

Args:
  dataset_config_relative_name: The relative name of the dataset
    config to be modified.
  organization_scope: If True, Insights data will be collected for
    all resources in the given organization. If this field is Empty/None,
    Either the sourceProjects or the sourceFolders must be set to update
    the scope.
  source_projects_list: List of source project numbers. Insights
    data is to be collected for buckets that belong to these projects. If
    this field is Empty/None, Either the organizationScope will be True or
    the sourceFolders must be set to update the scope.
  source_folders_list: List of source folder IDs. Insights
    data is to be collected for buckets that belong to these organisational
    folders. If this field is Empty/None, Either the organizationScope will
    be True or the sourceProjects must be set to update the scope.
  include_buckets_name_list: Optional list of bucket names which
    are to be included for insights processing from the source projects. Can
    either use included or excluded bucket parameters.
  include_buckets_prefix_regex_list: Optional list of bucket
    prefix regex patterns which are to be included for insights processing
    from the source projects. Can either use included or excluded bucket
    parameters.
  exclude_buckets_name_list: Optional list of bucket names which
    are to be excluded from insights processing from the source projects.
    Can either use included or excluded bucket parameters.
  exclude_buckets_prefix_regex_list: Optional list of bucket
    prefix regex patterns which are to be excluded from insights processing
    from the source projects. Can either use included or excluded bucket
    parameters.
  include_source_locations: Optional list of bucket locations
    which are to be included for insights processing from the source
    projects. Can either use included or excluded location parameters.
  exclude_source_locations: Optional list of bucket locations
    which are to be excluded from insights processing from the source
    projects. Can either use included or excluded location parameters.
  auto_add_new_buckets: If True, auto includes any new buckets added
    to source projects that satisfy the include/exclude criterias.
  retention_period: No of days for which insights data is to be
    retained in BigQuery instance.
  activity_data_retention_period: No of days for which activity data is to
    be retained in BigQuery instance.
  description: Human readable description text for the given dataset
    config.

Returns:
  An instance of Operation message.
)r?   rw   rx   rD   rB   rE   rC   rF   rG   rH   r=   r>   rJ   z(Nothing to update for dataset config: {}NrM   rO   )rU   rJ   rV   rW   rR   TrY   r[   r]   r_   ,)rS   ra   
updateMask)r   r	   InsightApiErrorr   r6   rh   ri   rj   rX   rk   rl   rm   rn   ro   rp   rq   rr   :StorageinsightsProjectsLocationsDatasetConfigsPatchRequestjoinr
   rt   Patch)r7   r   r?   r@   rA   rD   rB   rE   rC   rF   rG   rH   r=   r>   rJ   r   rw   rx   ry   rz   r{   r|   r}   r~   r   r   s                             r   update_dataset_config!InsightsApi.update_dataset_configU  s   H 66-,*";*K";*K!9!91)'E 7 K  ""
4
;
;*  
	) mm22+ 3 /3  
	( ]]00) 1 .2  ]]00,&$#7 1 N )-n&%1
( 4 !$E  9>B>">m --
*
*m
*
D>  "  A GR G# Gn --
*
*^
*
L G# 
 --
+
+": ,  /
 
#&G  9>B>">m --
*
*m
*
D>  "  A GR G# Gn --
*
*^
*
L G# 
 --
+
+": ,  /  
--
-
-0 .  1  
--
-
-0 .  1 mmVV)$88K( W G
 ;;88>>wGG_"#"#s   #I;#J )#J#J
c                    U(       aH  U R                   R                  5       nU(       d  U(       d  U(       a  [        R                  " S5      eSnO(Sn[	        U5      nU R                   R                  UUUS9n[        UUS9$ )z%Returns ReportFormatOptions instance.r   N)	delimiterheaderRequiredrecordSeparatorr(   )r6   ParquetOptionsr	   GcsApiErrorr   
CSVOptionsr'   )r7   csv_separatorcsv_delimiter
csv_headerr*   parquet_optionscsv_optionsunescaped_separators           r   _get_report_format_options&InsightsApi._get_report_format_options  s~     446o	}  !JKKko0?MM,,!#- - k
  r   c           	      R   U R                   R                  U R                   R                  UR                  UR                  UR
                  S9U R                   R                  UR                  UR                  UR
                  S9[        U R                   R                  R                  UR                  5       5      S9nU R                   R                  UU R                   R                  UR                  UR                  S9U R                   R                  US9S9nU R                  XxX5      nU R                   R                  UR                   UR"                  UUUS9nU R                   R%                  ['        U5      US9nU R(                  R*                  R-                  U5      $ )a  Creates a report config.

Args:
  source_bucket (str): Source bucket name for which reports will be
    generated.
  destination_url (storage_url.CloudUrl): The destination url where the
    generated reports will be stored.
  metadata_fields (list[str]): Fields to be included in the report.
  start_date (datetime.datetime.date): The date to start generating reports.
  end_date (datetime.datetime.date): The date after which to stop generating
    reports.
  frequency (str): Can be either DAILY or WEEKLY.
  csv_separator (str): The character used to separate the records in the
    CSV file.
  csv_delimiter (str): The delimiter that separates the fields in the CSV
    file.
  csv_header (bool): If True, include the headers in the CSV file.
  parquet (bool): If True, set the parquet options.
  display_name (str): Display name for the report config.

Returns:
  The created ReportConfig object.
yearmonthday	startDateendDate	frequencyr#   destinationPath)r#   )metadataFieldsstorageDestinationOptionsstorageFilters
csvOptionsparquetOptionsdisplayNamefrequencyOptionsobjectMetadataReportOptions)rc   reportConfig)r6   FrequencyOptionsDater   r   r   getattrFrequencyValueValuesEnumrf   ObjectMetadataReportOptionsCloudStorageDestinationOptionsbucket_nameresource_nameCloudStorageFiltersr   ReportConfigr)   r*   :StorageinsightsProjectsLocationsReportConfigsCreateRequestr&   r
    projects_locations_reportConfigsru   )r7   source_bucketdestination_urlmetadata_fields
start_dateend_dater   r   r   r   r*   display_namefrequency_optionsobject_metadata_report_optionsreport_format_optionsreport_configr   s                    r   create_inventory_report#InsightsApi.create_inventory_report  s   J 66--$$
(8(8jnn % N""hnn(,, # HMM**CCOO 7   &*]]%N%N&"&--"N"N"..+99 #O #; }}88  9 " &O &#" !;;j; MM..(,,,44 *$B / DM ]]]]-m<" ^ $N ;;77>> r   c                 Z   / nUb*  UR                  SR                  UR                  5      5        Uba  UR                  SR                  UR                  5      5        UR                  b*  UR                  SR                  UR                  5      5        U(       a  SR	                  U5      $ g)z1Returns the filter string used for list API call.Nz6objectMetadataReportOptions.storageFilters.bucket="{}"zAobjectMetadataReportOptions.storageDestinationOptions.bucket="{}"zJobjectMetadataReportOptions.storageDestinationOptions.destinationPath="{}"z AND )r   r   r   r   r   )r7   r   destinationfilter_lists       r   _get_filters_for_list!InsightsApi._get_filters_for_listW  s    K 
B
I
I'')*
 {6679 
	"	"	.##)6+*C*C#D	F \\+&&r   c           
         Ub=  [        [        R                  R                  R                  R                  5       U5      nO$[        Ub  UR                  OUR                  5      n[        R                  " U R                  R                  U R                  R                  UU R                  X5      S9Ub  UO[        SSS9$ )a  Lists the report configs.

Args:
  source_bucket (storage_url.CloudUrl): Source bucket for which reports will
    be generated.
  destination (storage_url.CloudUrl): The destination url where the
    generated reports will be stored.
  location (str): The location for which the report configs should be
    listed.
  page_size (int|None): Number of items per request to be returend.

Returns:
  List of Report configs.
)rc   filterr   reportConfigsr   )r   r   r   r   r   r   r&   r   r   r   r
   r   r6   8StorageinsightsProjectsLocationsReportConfigsListRequestr   r   )r7   r   r   r   r   rc   s         r   list_inventory_reports"InsightsApi.list_inventory_reportsm  s    " !*"3"3"8"8"@"@"D"D"F"*,f .& 
#
#,7,C,CEf ##44NN--mI 	O 	K !* 599' r   c                 z    U R                   R                  R                  U R                  R	                  US95      $ )zGets the report config.r   )r
   r   r   r6   7StorageinsightsProjectsLocationsReportConfigsGetRequestr7   report_config_names     r   get_inventory_report InsightsApi.get_inventory_report  s:    ;;77;;MM# 	N 	%& &r   c                 ~    U R                   R                  XS9nU R                  R                  R	                  U5      $ )zDeletes the report config.)rS   force)r6   :StorageinsightsProjectsLocationsReportConfigsDeleteRequestr
   r   r   )r7   r  r  r   s       r   delete_inventory_report#InsightsApi.delete_inventory_report  sA     		C	C# 
D 
2  ;;77>>wGGr   c                    / nUbK  U R                   R                  UR                  UR                  UR                  S9nUR                  S5        OSnUbK  U R                   R                  UR                  UR                  UR                  S9nUR                  S5        OSnUbJ  [        U R                   R                  R                  UR                  5       5      nUR                  S5        OSnU R                   R                  UUUS9U4$ )zBReturns a tuple of messages.FrequencyOptions and update_mask list.Nr   zfrequencyOptions.startDatezfrequencyOptions.endDatezfrequencyOptions.frequencyr   )
r6   r   r   r   r   r   r   r   r   rf   )r7   r   r   r   r   start_date_messageend_date_messagefrequency_messages           r   &_get_frequency_options_and_update_mask2InsightsApi._get_frequency_options_and_update_mask  s    K==--j&6&6JNN . L56++}}HNN , F34!
--
(
(
A
A
//
 56&&($' 	' 	) 	 r   c                    / nU(       a  UR                  S5        UbQ  U R                  R                  UR                  UR                  S9nUR                  S5        UR                  S5        OSnU R                  R                  UUS9U4$ )zHReturns a tuple of messages.ObjectMetadataReportOptions and update_mask.z*objectMetadataReportOptions.metadataFieldsNr   z<objectMetadataReportOptions.storageDestinationOptions.bucketzEobjectMetadataReportOptions.storageDestinationOptions.destinationPath)r   r   )r   r6   r   r   r   r   )r7   r   r   r   storage_destination_messages        r   %_get_metadata_options_and_update_mask1InsightsApi._get_metadata_options_and_update_mask  s     KEF"
--
6
6$00-;; 7  " 
HJ %)!MM55&"= 6 ?@KM Mr   c                     U R                  XX45      n/ nUR                  b  UR                  S5        XV4$ Ub  UR                  S5        Ub  UR                  S5        Ub  UR                  S5        XV4$ )z<Returns a tuple of ReportFormatOptions and update_mask list.r   zcsvOptions.delimiterzcsvOptions.headerRequiredzcsvOptions.recordSeparator)r   r*   r   )r7   r   r   r   r*   r   r   s          r   *_get_report_format_options_and_update_mask6InsightsApi._get_report_format_options_and_update_mask  s     !;;j;K$$0)* "// 
	"12		67		"78!//r   c                    U R                  XEU5      u  pU R                  X25      u  pU R                  XxX5      u  nnX-   U-   nUb  UR                  S5        U(       d%  [        R
                  " SR                  U5      5      eU R                  R                  UR                  UR                  UUUS9nU R                  R                  UUSR                  U5      S9nU R                  R                  R                  U5      $ )a~  Updates a report config.

Args:
  report_config_name (str): The name of the report config to be modified.
  destination_url (storage_url.CloudUrl): The destination url where the
    generated reports will be stored.
  metadata_fields (list[str]): Fields to be included in the report.
  start_date (datetime.datetime.date): The date to start generating reports.
  end_date (datetime.datetime.date): The date after which to stop generating
    reports.
  frequency (str): Can be either DAILY or WEEKLY.
  csv_separator (str): The character used to separate the records in the
    CSV file.
  csv_delimiter (str): The delimiter that separates the fields in the CSV
    file.
  csv_header (bool): If True, include the headers in the CSV file.
  parquet (bool): If True, set the parquet options.
  display_name (str): Display name for the report config.

Returns:
  The created ReportConfig object.
r   z'Nothing to update for report config: {}r   r   )rS   r   r   )r  r  r  r   r	   CloudApiErrorr   r6   r   r)   r*   9StorageinsightsProjectsLocationsReportConfigsPatchRequestr   r
   r   r   )r7   r  r   r   r   r   r   r   r   r   r*   r   r   frequency_update_maskr   metadata_update_maskr   report_format_maskr   r   r   s                        r   update_inventory_report#InsightsApi.update_inventory_report  s0   J 	33)	- - 	22	. 9"
 	77*	? .- 	47II  '  
3
:
:;M
NP P MM..(,,,44 *$B / DM 	OO#&xx, 	P 	
  ;;77==gFFr   c                     [         R                  " U R                  R                  U R                  R                  US9Ub  UO[        SSS9$ )zLists the report details.r   r   reportDetailsr   )r   r   r
   .projects_locations_reportConfigs_reportDetailsr6   EStorageinsightsProjectsLocationsReportConfigsReportDetailsListRequestr   )r7   r  r   s      r   list_report_detailsInsightsApi.list_report_details,  sM    ##BB	N	N% 
O 
' ) 599' r   c                 z    U R                   R                  R                  U R                  R	                  US95      $ Nr   )r
   r&  r   r6   DStorageinsightsProjectsLocationsReportConfigsReportDetailsGetRequestr  s     r   get_report_detailsInsightsApi.get_report_details7  s:    ;;EEII	M	M# 
N 
%& &r   c                 |    U R                   R                  R                  U R                  R	                  US95        g r+  )r
   projects_locations_operationsCancelr6   7StorageinsightsProjectsLocationsOperationsCancelRequestr7   operation_names     r   cancel_operationInsightsApi.cancel_operation=  s5    KK--44MM 	N 	
r   c                 z    U R                   R                  R                  U R                  R	                  US95      $ r+  )r
   r0  r   r6   4StorageinsightsProjectsLocationsOperationsGetRequestr3  s     r   get_operationInsightsApi.get_operationD  s:    ;;4488JJ 	K 	
 r   c                     U R                   R                  US9n[        R                  " U R                  R
                  USSS9$ )Nr   r   
operations)r   r   )r6   5StorageinsightsProjectsLocationsOperationsListRequestr   r   r
   r0  )r7   parent_resource_namer   s      r   list_operationsInsightsApi.list_operationsK  sM    KK% 	L 	
 
 ##11'	 r   )r
   r6   )NFNNNNNNNNFNN)NN)NNNNNNNNNNNNN)	NNNNNNNNN)NNNN)F)
NNNNNNNNNNr   )$__name__
__module____qualname____firstlineno____doc__r2   strintr   boolr   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r"  r(  r-  r5  r9  r?  __static_attributes____classcell__)r8   s   @r   r,   r,   B   s+   (I 7;!&6:59CGCG;?;?:>:>#('^P^P ^P 	^P
 ^P ^P '/sm^P ^P %Xc]3^P $HSM2^P *2(3-)@^P *2(3-)@^P "*(3-!8^P "*(3-!8^P !)# 7^P  !)# 7!^P" !#^P$ %^P& '^P@NIP< "&1504;?CG;?CG:>:>#'"6:00  .0 x}-	0
 "*(3-!80 *2(3-)@0 "*(3-!80 *2(3-)@0 !)# 70 !)# 70 !0 0 '/sm0 0j "&6:59;?CG;?CG:>:>#'"6:fH fH %Xc]3	fH
 $HSM2fH "*(3-!8fH *2(3-)@fH "*(3-!8fH *2(3-)@fH !)# 7fH !)# 7fH !fH fH '/smfH fHP4 BH. LPB&H<M00( GGR	& r   r,   )rE  
__future__r   r   r   collectionstypingr   r   apitools.base.pyr   googlecloudsdk.api_lib.storager	   'googlecloudsdk.api_lib.storage.gcs_jsonr
   r   googlecloudsdk.api_lib.utilr   r3   googlecloudsdk.corer   r   _CSV_PARQUET_ERROR_MESSGEr   r   r&   
namedtupler'   r,    r   r   <module>rV     sj    4 &  '  % ' 1 M 9 * 	E 8F ",,- 
T Tr   