
    *                         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 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 SKJr  S SKJr  S SKJr  S SKJr   " S S\5      r " S S\5      rg)    )
xform_name)get_official_service_name)BaseDocumenter)ActionDocumenter)WaiterResourceDocumenter)CollectionDocumenter)SubResourceDocumenter)document_attribute)document_identifier)document_reference)!get_identifier_args_for_signature)!get_identifier_values_for_example)get_identifier_description)add_resource_type_overviewc                   |   ^  \ rS rSrU 4S jrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rSrU =r$ )ResourceDocumenter   c                 8   > [         [        U ]  U5        X l        g N)superr   __init___botocore_session)selfresourcebotocore_session	__class__s      &lib/third_party/boto3/docs/resource.pyr   ResourceDocumenter.__init__   s     $0:!1    c                 z   U R                  U5        U R                  U5        UR                  S5      nU R                  U5        U R	                  U5        U R                  U5        U R                  U5        U R                  U5        U R                  U5        U R                  U5        U R                  U5        g )Nzmember-overview)
_add_title
_add_introadd_new_section_add_identifiers_add_attributes_add_references_add_actions_add_sub_resources_add_collections_add_waiters_add_overview_of_members)r   sectionoverview_sections      r   document_resource$ResourceDocumenter.document_resource#   s      "223DEg&W%W%'"(g&'"%%&67r   c                 N    UR                   R                  U R                  5        g r   )styleh2_resource_namer   r,   s     r   r!   ResourceDocumenter._add_title0   s    ,,-r   c                    / nU R                   R                  (       a8  U R                   R                   H  nUR                  UR                  5        M      [	        U5      nUR
                  R                  U R                  < SU< S3S9  UR                  S5      nU R                  U5        UR                  S5      nU R                  Xb5        UR                  S5      nU R                  Xr5        g )N())
class_namedescriptionexampleparams)_resource_modelidentifiersappendnamer   r1   start_sphinx_py_classr9   r#   _add_description_add_example_add_params_description)r   r,   identifier_names
identifier
class_argsdescription_sectionexample_sectionparam_sections           r   r"   ResourceDocumenter._add_intro3   s    ++"22>>
 ''
8 ? 77GH
++#'??J? 	, 	A &55mD12 "11)</<  //9$$]Er   c                 t    [        U R                  5      nUR                  SU< SU R                  < 35        g )NzA resource representing an  )r   _service_modelwriter3   r   r,   official_service_names      r   rB   #ResourceDocumenter._add_descriptionK   s2     9!!%t':':<	=r   c           
      ^   UR                   R                  5         UR                   R                  5         UR                  S5        UR                   R                  5         UR                   R                  5         UR                  U R                  < SU R                  < S35        UR                   R                  5         [        U5      nUR                  [        U R                  5      < SU R                  < SU R                  < SU< S35        UR                   R                  5         g )Nimport boto3 = boto3.resource('')z = .r7   r8   )	r1   start_codeblocknew_linerO   _service_namer   r   r3   end_codeblock)r   r,   rE   example_valuess       r   rC   ResourceDocumenter._add_exampleR   s    %%' n%  ""D$6$68	
 	 :;KL4../1C1C##^5	6 	##%r   c                    U Hz  n[        U R                  U5      nUR                  SU-  5        UR                  R	                  5         UR                  SU< SU< 35        UR                  R	                  5         M|     g )Nz:type %s: stringz:param z: )r   r3   rO   r1   rY   )r   r,   rE   identifier_namer:   s        r   rD   *ResourceDocumenter._add_params_descriptiond   si    /O4##_6KMM,>?MM""$MM. /MM""$  0r   c                 n   U R                    H  nUR                  R                  5         UR                  SU-  5        UR                  R                  5         U R                   U    HG  nUS;   a   UR                  R	                  SU-  5        M)  UR                  R	                  SU-  5        MI     M     g )Nz&These are the resource's available %s:)r>   
attributes
referencescollectionsz:py:attr:`%s`z:py:meth:`%s()`)
member_mapr1   rY   rO   li)r   r,   resource_member_typemembers       r   r+   +ResourceDocumenter._add_overview_of_membersn   s    $(OO MM""$MMC$& 'MM""$//*>?' ,I IMM$$_v%=>MM$$%6%?@ @ %4r   c                 h   U R                   R                  R                  R                  nUR	                  S5      n/ nU(       a  X0R
                  S'   [        USSSS9  U HN  nUR	                  UR                  5      nUR                  UR                  5        [        UU R                  US9  MP     g )Nr>   IdentifierszXIdentifiers are properties of a resource that are set upon instantation of the resource.identifiers_attributes_intror,   resource_typer:   
intro_link)r,   resource_nameidentifier_model)	_resourcemetaresource_modelr>   r#   re   r   r@   r?   r   r3   )r   r,   r>   member_listrF   identifier_sections         r   r$   #ResourceDocumenter._add_identifiers{   s    nn))88DD))-8-8OOM*&+=9; &J!(!8!8!Iz/*"11!+ &r   c           
      "   U R                   R                  R                  R                  R                  n0 nU R                   R                  R                  R
                  (       ah  UR                  U R                   R                  R                  R
                  5      nU R                   R                  R                  R                  U5      nUR                  S5      n/ nU(       a  [        USSSS9  XPR                  S'   [        U5       H  nX6   u  pxUR                  U5      n	UR                  U5        [        U	U R                  U R                  UU R                   R                  R                  R                  R                   US9  M     g )Nrb   
AttributeszAttributes provide access to the properties of a resource. Attributes are lazy-loaded the first time one is accessed via the :py:meth:`load` method.rl   rm   )r,   service_namerp   	attr_nameevent_emitter
attr_model)rr   rs   clientservice_modelrt   shape	shape_forget_attributesr#   r   re   sortedr?   r
   rZ   r3   events)
r   r,   r   rb   r   attribute_listr{   _
attr_shapeattribute_sections
             r   r%   "ResourceDocumenter._add_attributes   sE   ++2277EE
>>--33!++##2288:E,,;;JJJ)),7&*/ :; -;OOL)
+I&1MA ' 7 7	 B!!),)!//"11#"nn1188==DD%	 ,r   c                 R   UR                  S5      nU R                  R                  R                  R                  n/ nU(       a  [        USSSS9  X0R                  S'   U HC  nUR                  UR                  5      nUR                  UR                  5        [        UUS9  ME     g )Nrc   
ReferenceszNReferences are related resource instances that have a belongs-to relationship.references_introrm   )r,   reference_model)
r#   rr   rs   rt   rc   r   re   r@   r?   r   )r   r,   rc   reference_list	referencereference_sections         r   r&   "ResourceDocumenter._add_references   s    )),7^^((77BB
&*1-/ -;OOL)#I ' 7 7	 G!!)..1) ) $r   c                     UR                  S5      nU R                  R                  R                  R                  nU(       a8  [        U R                  5      nU R                  Ul        UR                  U5        g g )Nactions)r#   rr   rs   rt   r   r   re   document_actions)r   r,   r   
documenters       r   r'   ResourceDocumenter._add_actions   s]    )))4..%%44<<)$..9J$(OOJ!''0 r   c                     UR                  S5      nU R                  R                  R                  R                  nU(       a8  [        U R                  5      nU R                  Ul        UR                  U5        g g )Nzsub-resources)r#   rr   rs   rt   subresourcesr	   re   document_sub_resources)r   r,   sub_resourcesr   s       r   r(   %ResourceDocumenter._add_sub_resources   s]    ))/:++::GG.t~~>J$(OOJ!--g6 r   c                     UR                  S5      nU R                  R                  R                  R                  nU(       a8  [        U R                  5      nU R                  Ul        UR                  U5        g g )Nrd   )r#   rr   rs   rt   rd   r   re   document_collections)r   r,   rd   r   s       r   r)   #ResourceDocumenter._add_collections   s]    ))-8nn))88DD-dnn=J$(OOJ!++G4 r   c                 D   UR                  S5      nU R                  R                  R                  R                  nU(       a^  U R
                  R                  U R                  5      n[        U R                  U5      nU R                  Ul	        UR                  U5        g g )Nwaiters)r#   rr   rs   rt   r   r   get_waiter_modelrZ   r   re   document_resource_waiters)r   r,   r   service_waiter_modelr   s        r   r*   ResourceDocumenter._add_waiters   s    )))4..%%44<<#'#9#9#J#J""$$ 1 46J$(OOJ!009 r   )r   )__name__
__module____qualname____firstlineno__r   r.   r!   r"   rB   rC   rD   r+   r$   r%   r&   r'   r(   r)   r*   __static_attributes____classcell__)r   s   @r   r   r      sV    28.F0=&$%A, D*175	: 	:r   r   c                   6    \ rS rSr\S 5       rS rS rS rSr	g)ServiceResourceDocumenter   c                      SU R                   -  $ )Nz%s.ServiceResource)_service_docs_name)r   s    r   r9   $ServiceResourceDocumenter.class_name   s    #d&=&===r   c                 :    UR                   R                  S5        g )NzService Resource)r1   r2   r4   s     r   r!   $ServiceResourceDocumenter._add_title   s    +,r   c                 V    [        U R                  5      nUR                  SU-  5        g )NzA resource representing %s)r   rN   rO   rP   s      r   rB   *ServiceResourceDocumenter._add_description   s,     9!!(+@@	Br   c                    UR                   R                  5         UR                   R                  5         UR                  S5        UR                   R                  5         UR                   R                  5         UR                  U R                  < SU R                  < S35        UR                   R                  5         g )NrT   rU   rV   )r1   rX   rY   rO   rZ   r[   )r   r,   rE   s      r   rC   &ServiceResourceDocumenter._add_example   s    %%' n%  ""D$6$68	9 	##%r    N)
r   r   r   r   propertyr9   r!   rB   rC   r   r   r   r   r   r      s$    > >-B	&r   r   N)botocorer   botocore.docs.utilsr   boto3.docs.baser   boto3.docs.actionr   boto3.docs.waiterr   boto3.docs.collectionr   boto3.docs.subresourcer	   boto3.docs.attrr
   r   r   boto3.docs.utilsr   r   r   r   r   r   r   r   r   <module>r      sM      9 * . 6 6 8 . / . > > 7 7K: K:\& 2 &r   