
                         f    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
  G d d	e      Zy
)z&Public advertised prefixes api client.    )absolute_import)division)unicode_literals)poller)waiter)	arg_utilsc                   4    e Zd ZdZd Zd Zd Zd Zd Zd Z	y)	PublicAdvertisedPrefixesClientz=Client for public advertised prefixes service in the GCE API.c                 x    || _         || _        || _        | j                   j                  j                  | _        y )N)clientmessages	resourcesapitools_clientpublicAdvertisedPrefixes_service)selfr   r   r   s       @lib/googlecloudsdk/api_lib/compute/public_advertised_prefixes.py__init__z'PublicAdvertisedPrefixesClient.__init__   s.    DKDMDNKK//HHDM    c                    |r.| j                   j                  |j                         |||      }n,| j                   j                  |j                         ||      }|||_        |||_        | j                   j                  ||j                        }| j                  j                  | j                  d|fg      d   S )z#Creates a public advertised prefix.)nameipCidrRangedescriptionpdpScope)r   r   r   publicAdvertisedPrefixprojectInsertr   )
r   PublicAdvertisedPrefixNamednsVerificationIpipv6AccessType,ComputePublicAdvertisedPrefixesInsertRequestr   r   MakeRequestsr   )	r   pap_refip_cidr_rangedns_verification_ipr   	pdp_scopeipv6_access_typepublic_advertised_prefixrequests	            r   Createz%PublicAdvertisedPrefixesClient.Create#   s     !%!E!E||~#!	 "F " "&!E!E||~#! "F "#
 &3F0#0@-mmHH7 I !G ;;##dmmXw%G$HI!LLr   c                     | j                   j                  |j                         |j                        }| j                  j                  | j                  d|fg      S )z#Deletes a public advertised prefix.r   Delete)r   ,ComputePublicAdvertisedPrefixesDeleteRequestr    r   r   r$   r   r   r%   r+   s      r   r.   z%PublicAdvertisedPrefixesClient.DeleteD   sS     mmHH&||~w I HG ;;##dmmXw%G$HIIr   c                     | j                   j                  |j                         |j                        }| j                  j                  | j                  d|fg      S )z$Announce a public advertised prefix.r   Announce)r   .ComputePublicAdvertisedPrefixesAnnounceRequestr    r   r   r$   r   r0   s      r   r2   z'PublicAdvertisedPrefixesClient.AnnounceL   S     mmJJ&||~w K HG ;;##dmmZ%I$JKKr   c                     | j                   j                  |j                         |j                        }| j                  j                  | j                  d|fg      S )z$Withdraw a public advertised prefix.r   Withdraw)r   .ComputePublicAdvertisedPrefixesWithdrawRequestr    r   r   r$   r   r0   s      r   r6   z'PublicAdvertisedPrefixesClient.WithdrawT   r4   r   c                    t        j                  || j                  j                  j                        }| j
                  j                   | j                  j                  j                  di |j                               }| j                  j                  |j                  |j                         | j                  j                  ||j                              }| j
                  j                  |      }| j                  j!                  |j"                  d      }t%        j&                  | j
                        }t)        j*                  ||dj-                  |j                                     S )z!Updates public advertised prefix.)statusfingerprint)r   r   publicAdvertisedPrefixResourcezcompute.globalOperations)
collectionz'Updating public advertised prefix [{}]. )r   ChoiceToEnumr   r   StatusValueValuesEnumr   Getr   )ComputePublicAdvertisedPrefixesGetRequestAsDict+ComputePublicAdvertisedPrefixesPatchRequestr   r    r:   Patchr   ParseselfLinkr   Pollerr   WaitForformat)r   r%   r9   original_papr+   	operationoperation_refoperation_pollers           r   rD   z$PublicAdvertisedPrefixesClient.Patch\   s5    ##44JJLF==$$FFF 	 nn	 !L mmGG&||~'+}}'K'K|'?'? (L (A H BG ##G,INN(('A ) CM }}T]]3>>-188HJ Jr   N)
__name__
__module____qualname____doc__r   r,   r.   r2   r6   rD   r=   r   r   r
   r
      s*    EIMBJLLJr   r
   N)rQ   
__future__r   r   r   )googlecloudsdk.api_lib.compute.operationsr   googlecloudsdk.api_lib.utilr   $googlecloudsdk.command_lib.util.apisr   objectr
   r=   r   r   <module>rW      s,    - &  ' < . :XJV XJr   