
                         ^    d Z ddlmZ ddlmZ ddlmZ ddlmZ ddZddZ G d	 d
e	      Z
y)z2Utilities for Cloud Monitoring Metrics Scopes API.    )absolute_import)division)unicode_literals)apisc                 2    t        j                  dd|       S )N
monitoringv1no_http)r   GetClientInstancer
   s    7lib/googlecloudsdk/api_lib/monitoring/metrics_scopes.pyr   r      s    			dG	DD    Nc                 6    | xs
 t               } | j                  S N)r   MESSAGES_MODULE)clients    r   GetMessagesModuler      s    (&(&			r   c                   6    e Zd ZdZd	dZd Zd Zd Zd Zd Z	y)
MetricsScopeClientzAClient for the Metrics Scope service in the Cloud Monitoring API.Nc                     |xs
 t               | _        |xs t        |      | _        | j                  j                  | _        | j                  j                  | _        y r   )r   r   r   messageslocations_global_metricsScopes_ms_service'locations_global_metricsScopes_projects_mp_service)selfr   r   s      r   __init__zMetricsScopeClient.__init__$   sH    /-/DK9 1& 9DM{{AAD{{JJDr   c                 (    d|j                         z   S )Nzlocations/global/metricsScopes/)Name)r   metrics_scope_refs     r   MetricsScopeNamez#MetricsScopeClient.MetricsScopeName*   s    ,/@/E/E/GGGr   c                 L    | j                  |      dz   |j                         z   S )Nz
/projects/)r!   r   )r   r    monitored_project_refs      r   MonitoredProjectNamez'MetricsScopeClient.MonitoredProjectName-   s3      )*,A,F,F,HI Ir   c                     | j                   j                  |j                               }| j                  j	                  |      S )z9List the Metrics Scopes monitoring the specified project.)monitoredResourceContainer)r   PMonitoringLocationsGlobalMetricsScopesListMetricsScopesByMonitoredProjectRequestRelativeNamer   #ListMetricsScopesByMonitoredProject)r   project_refrequests      r   ListzMetricsScopeClient.List1   sG     	XX'2'?'?'A 	Y 	C  ??HHr   c                     | j                   j                         }| j                  ||      |_        | j                   j	                  || j                  |            }| j                  j                  |      S )z9Create a Monitored Project in a Monitoring Metrics Scope.)monitoredProjectparent)r   MonitoredProjectr$   name;MonitoringLocationsGlobalMetricsScopesProjectsCreateRequestr!   r   Create)r   r    r#   mpr+   s        r   r3   zMetricsScopeClient.Create9   sv    		'	'	)B''(9(=?BG 		D	D(():; 
E 
= 
 ""7++r   c                     | j                   j                  | j                  ||            }| j                  j	                  |      S )z;Delete a Monitored Project from a Monitoring Metrics Scope.)r1   )r   ;MonitoringLocationsGlobalMetricsScopesProjectsDeleteRequestr$   r   Delete)r   r    r#   r+   s       r   r7   zMetricsScopeClient.DeleteE   sP     		D	D**+<+@B 
E 
C 
 ""7++r   )NN)
__name__
__module____qualname____doc__r   r!   r$   r,   r3   r7    r   r   r   r   !   s'    IKHII
,,r   r   )Fr   )r;   
__future__r   r   r   googlecloudsdk.api_lib.utilr   r   r   objectr   r<   r   r   <module>r@      s-    9 &  ' ,E 
+, +,r   