
    Pi*                       d Z ddlmZ ddlmZmZ ddlmZ  eh d          Z	dd
Z
dgZ eh d          Z eh d          Z eh d          Z eh d          Z edh          Z eh d          Zh dZddZddZdS )zL
AWS CLI handler for Dippy.

Handles aws, aws-vault, and similar AWS tools.
    )annotations)ClassificationHandlerContext)is_readonly_sql>   MSCKUNLOADVACUUMtokens	list[str]return
str | Nonec                    t          |           D ]\\  }}|dk    r#|dz   t          |           k     r| |dz            c S |                    d          r|t          d          d         c S ]dS )z8Extract --query-string value from Athena command tokens.z--query-string   z--query-string=N)	enumeratelen
startswith)r
   itokens      ./root/projects/gits/Dippy/src/dippy/cli/aws.py_extract_athena_query_stringr      s    f%% 3 35$$$QV)<)<!a%=   -.. 	3.//112222	34    aws>   get-head-list-show-test-detect-filter-lookup-	check-if-	describe-	download-	estimate-	generate-	simulate-	validate-
admin-get-admin-list->   
stop-querystart-querybatch-get-itembatch-get-imagereceive-messagetransact-get-itemslshelpscantailwaitquery>   assume-roleget-secret-valuestart-image-scanassume-role-with-samlassume-role-with-web-identity>!   cpmbmvrbrmputrunsetcopystopsyncstartattachcreatedeletedetachenableexportimportinvokemodifyrebootremoverevokeupdatedisableexecuteregister	associate	authorize	terminate
deregisterdisassociatepricing>   get-session-tokenget-access-key-infoget-caller-identityget-federation-tokendecode-authorization-message>J   s3r0   ec2zdescribe-vpcsre   zdescribe-subnetsre   zdescribe-instancesre   zdescribe-security-groupsecsz
list-tasksrj   zlist-clustersrj   zlist-servicesrj   zdescribe-tasksrj   zdescribe-clustersrj   zdescribe-servicesiamzget-rolerq   zget-userrq   z
list-rolesrq   z
list-usersrq   zlist-policiesrdszdescribe-db-clustersrw   zdescribe-db-instancessnszlist-topicsrz   zlist-subscriptionssqszlist-queuesr}   zget-queue-attributesssmzget-parameterr   zget-parametersr   zdescribe-parametersr   zget-parameters-by-pathlogszget-log-eventsr   zfilter-log-eventsr   zdescribe-log-groupsr   zdescribe-log-streamss3apizhead-bucketr   zhead-objectr   zlist-bucketsr   zlist-objectsr   zlist-objects-v2r   zget-bucket-taggingr   zget-object-taggingr   zget-bucket-locationathenazget-databaser   zget-work-groupr   zlist-databasesr   zget-named-queryr   zget-data-catalogr   zlist-work-groupsr   zget-query-resultsr   zget-table-metadatar   zlist-data-catalogsr   zlist-named-queriesr   zget-query-executionr   zlist-table-metadatar   zlist-engine-versionsr   zbatch-get-named-queryr   zlist-query-executionsr   zget-prepared-statementr   zlist-tags-for-resourcer   zlist-prepared-statementsr   zbatch-get-query-executionr   zbatch-get-prepared-statementr   zget-query-runtime-statisticslambdazget-functionr   zlist-functionsroute53zlist-hosted-zonesr   zlist-resource-record-setsdynamodbzlist-tablesr   zdescribe-table
cloudwatchzlist-metricsr   zdescribe-alarmsr   zget-metric-statisticscloudformationzlist-stacksr   zget-templater   zdescribe-stacksr   zdescribe-stack-resourcessecretsmanagerzlist-secretsr   zdescribe-secretstrc                L   t          |           dk     rdS d}d}h d}d}|t          |           k     r^| |         }|                    d          r||v r|dz  }:d|v r|dz  }D|dz  }J||}|dz  }T||}n|dz  }|t          |           k     ^|r
|rd| d	| S |rd| S dS )
z$Compute description for aws command.   r   N	   --color--query--output--region	--profile--ca-bundle--endpoint-url--cli-read-timeout--cli-connect-timeoutr   --=zaws  )r   r   )r
   serviceactionglobal_opts_with_valuer   r   s         r   get_descriptionr      s   
6{{QuGF
 
 
 	
A
c&kk//q	D!! 	...Qe||QFA?GFA>F	Q% c&kk//&  )6 )(g(((((  g5r   ctxr   r   c                   | j         }|r|d         nd}t          |          dk     rt          d|          S t          |          }d|v sd|v rt          d|          S d	}d	}h d
}d}|t          |          k     r^||         }|                    d          r||v r|dz  }:d|v r|dz  }D|dz  }J||}|dz  }T||}n|dz  }|t          |          k     ^|st          d|          S |dk    s|dk    rt          d|          S |t
          v rt          d|          S |dk    r+|t          v rt          d|          S t          d|          S |dk    r&|dv rt          d|          S t          d|          S |dk    rd|v rt          d|          S |dk    rn|dk    rht          |          }	|	Ft          |	t                    }
|
du rt          d| d          S |
du rt          d| d          S t          d|          S |r||ft          v rt          d|          S |r|t          v rt          d|          S |t          v rt          d|          S t          D ]*}|                    |          rt          d|          c S +t          D ]}||v rt          d|          c S t          d|          S )zClassify AWS CLI command.r   r   r   ask)descriptionz--helpz-hallowNr   r   r   r   r1   sts	configure>   list-profilesgetlistr   z--with-decryptionr   zstart-query-execution)extra_writeTz (read-only)Fz (write))r
   r   r   r   r   ALWAYS_SAFE_SERVICESSTS_SAFE_ACTIONSr   r   _ATHENA_WRITESAFE_COMMANDSUNSAFE_EXCEPTIONSSAFE_ACTIONS_EXACTSAFE_ACTION_PREFIXESUNSAFE_ACTION_KEYWORDS)r   r
   basedescr   r   r   r   r   query_stringreadonlyprefixkeywords                r   classifyr   
  s   ZF)6!99ED
6{{Qe66666""D 6TV^^g48888 GF
 
 
 	
A
c&kk//q	D!! 	...Qe||QFA?GFA>F	Q- c&kk//0  7e6666 &Ff,,g48888 &&&g48888 %%%%!'t<<<<e6666 +555!'t<<<<e6666 %/699e6666 (v)@@@3F;;#&|OOOH4%gd;P;P;PQQQQ5  %eD9J9J9JKKKKe6666  97F#}44g48888  ?&&&!%T:::: '''!'t<<<< + 	A 	AF  (( A%g4@@@@@@A . 	? 	?G&  %e>>>>>> ! %T2222r   N)r
   r   r   r   )r
   r   r   r   )r   r   r   r   )__doc__
__future__r   	dippy.clir   r   dippy.core.sqlr   	frozensetr   r   COMMANDSr   r   r   r   r   r   r   r   r    r   r   <module>r      s    # " " " " " 4 4 4 4 4 4 4 4 * * * * * * 	66677    7 !y    . Y    $ I     #" " "$ $ P !y   9    M M M`* * * *Zv3 v3 v3 v3 v3 v3r   