o
    i                     @   s   d dl mZ d dl mZ erd dlmZ ddededefdd	Zd
ddedeeef ddfddZ	dedefddZ
dZdZdZdZdZdS )    )TYPE_CHECKING)Any)Span   valuemax_lenreturnc                 C   s   t | trt| |krdS | S )zTruncate values which are bytes and greater than `max_len`.
    Useful for parameters like 'Body' in `put_object` operations.
    s   ...)
isinstancebyteslen)r   r    r   C/home/ubuntu/.local/lib/python3.10/site-packages/ddtrace/ext/aws.pytruncate_arg_value	   s   r   spanr   endpoint_nameparamsNc                 C   s\  |dkr| d}|r| d| | d| d S d S |dkr6| d}|r4| d| | d| d S d S |d	krQ| d
}|rO| d| | d| d S d S |dkrl| d}|rj| d| | d| d S d S |dkr| d}|r| d| | d| d S d S |dkr| d}|r| d| |dd }	|dd }
| d|
 | d|	 d S d S |dkr| dd}| d }|r|d!s|d"r|d#d }|d#d }
| d|
 | d$| | d%| d S |d&kr| d'd}| d(| d S |d)kr| d*d}| d+| d S |d,kr,| d-d}| d.| d S d S )/N
cloudwatchlogGroupNamez"aws.cloudwatch.logs.log_group_nameloggroupnamedynamodb	TableNamezaws.dynamodb.table_name	tablenamekinesis
StreamNamezaws.kinesis.stream_name
streamnameredshiftClusterIdentifierzaws.redshift.cluster_identifierclusteridentifiers3Bucketzaws.s3.bucket_name
bucketnamesnsTopicArnzaws.sns.topic_arn:aws_account	topicnamesqs	QueueName QueueUrlzsqs:http/zaws.sqs.queue_name	queuenamelambdaFunctionNamefunctionnameeventsNamerulenamestatesstateMachineArnstatemachinearn)get_set_tag_strsplit
startswith)r   r   r   log_group_name
table_namestream_namecluster_identifierbucket_name	topic_arnr'   r&   
queue_name	queue_urlfunction_name	rule_namestate_machine_arnr   r   r   _add_api_param_span_tags   st   









rG   region_namec                 C   s    |  drdS |  drdS dS )z)Determine AWS partition from region name.zcn-zaws-cnzus-gov-z
aws-us-govaws)r;   )rH   r   r   r   get_aws_partitionR   s
   

rJ   z
aws.regionregionzaws.partitionz	aws.agentzaws.operation)r   )typingr   r   ddtrace.tracer   intr   strdictrG   rJ   	AWSREGIONREGION	PARTITIONAGENT	OPERATIONr   r   r   r   <module>   s    "
?
