HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/awscli/customizations/ec2/__pycache__/runinstances.cpython-310.pyc
o

.&�aO�@s�dZddlmZdZdZdZdd�Zdd	�Zd
d�Zdefd
efdefgZ	dd�Z
dd�ZGdd�de�ZGdd�de�Z
Gdd�de�ZGdd�de�ZdS)a=
This customization adds two new parameters to the ``ec2 run-instance``
command.  The first, ``--secondary-private-ip-addresses`` allows a list
of IP addresses within the specified subnet to be associated with the
new instance.  The second, ``--secondary-ip-address-count`` allows you
to specify how many additional IP addresses you want but the actual
address will be assigned for you.

This functionality (and much more) is also available using the
``--network-interfaces`` complex argument.  This just makes two of
the most commonly used features available more easily.
�)�CustomArgumenta$[EC2-VPC] A secondary private IP address for the network interface or instance. You can specify this multiple times to assign multiple secondary IP addresses.  If you want additional private IP addresses but do not need a specific address, use the --secondary-private-ip-address-count option.z^[EC2-VPC] The number of secondary IP addresses to assign to the network interface or instance.zY[EC2-VPC] If specified a public IP address will be assigned to the new instance in a VPC.cKs\tdtd�}||d<tdtd�}||d<tdtddd�}||d<tdtd	dd�}||d<dS)
Nzsecondary-private-ip-addresses)�name�	help_textz"secondary-private-ip-address-countzassociate-public-ip-address�
store_true�associate_public_ip)rr�action�
group_namezno-associate-public-ip-address�store_false)�#SecondaryPrivateIpAddressesArgument�#SECONDARY_PRIVATE_IP_ADDRESSES_DOCS�&SecondaryPrivateIpAddressCountArgument�'SECONDARY_PRIVATE_IP_ADDRESS_COUNT_DOCS� AssociatePublicIpAddressArgument� ASSOCIATE_PUBLIC_IP_ADDRESS_DOCS�"NoAssociatePublicIpAddressArgument)�argument_table�kwargs�arg�r�H/usr/lib/python3/dist-packages/awscli/customizations/ec2/runinstances.py�_add_params.s,����rcKs6t|�}|drdD]}||rd}t|��q
dSdS)N�network_interfaces)�secondary_private_ip_addresses�"secondary_private_ip_address_count�associate_public_ip_addresszXMixing the --network-interfaces option with the simple, scalar options is not supported.)�vars�
ValueError)�parsed_argsr�arg_dict�key�msgrrr�_check_argsCs��r!cs�gd�}d|vrb|dd�t�fdd�|D��rdd|vr&|d�d<|d=d|vr3|d�d<|d=d	|vrF|d	d
d�}|g�d<|d	=d
|vrS|d
�d
<|d
=d|vrf|d�d<|d=dSdSdSdS)N)�PrivateIpAddresses�SecondaryPrivateIpAddressCount�AssociatePublicIpAddress�NetworkInterfacesrc3s�|]}|�vVqdS�Nr)�.0�param��	interfacerr�	<genexpr>fs�z_fix_args.<locals>.<genexpr>�SubnetId�SecurityGroupIds�Groups�PrivateIpAddressT�r/�Primaryr"�Ipv6AddressCount�
Ipv6Addresses)�any)�paramsr�network_interface_params�ip_addrrr)r�	_fix_argsSs2�

�r8z)building-argument-table.ec2.run-instancesz'operation-args-parsed.ec2.run-instancesz'before-parameter-build.ec2.RunInstancescCstD]
\}}|�||�qdSr&)�EVENTS�register)�
event_handler�event�handlerrrr�register_runinstances�s�r>cCsZd|vrddig|d<|dkr#d|ddvr!||ddd<dSdS||dd|<dS)Nr%�DeviceIndexrr"r)r5r�valuerrr�_build_network_interfaces�s�rAc@�eZdZddd�Zdd�ZdS)r
NcCs|j|j|j|jdd�dS)N�*)�dest�default�nargs)�add_argument�cli_name�py_name�_default��self�parserrHrrr�
add_to_parser��
�z1SecondaryPrivateIpAddressesArgument.add_to_parsercCs&|rdd�|D�}t|d|�dSdS)NcSsg|]}|dd��qS)Fr0r)r'�vrrr�
<listcomp>�szESecondaryPrivateIpAddressesArgument.add_to_params.<locals>.<listcomp>r"�rA�rL�
parametersr@rrr�
add_to_params�s��z1SecondaryPrivateIpAddressesArgument.add_to_paramsr&��__name__�
__module__�__qualname__rNrUrrrrr
��
r
c@rB)rNcCs|j|j|j|jtd�dS)N)rDrE�type)rGrHrIrJ�intrKrrrrN�rOz4SecondaryPrivateIpAddressCountArgument.add_to_parsercCs|r
t|d|�dSdS)Nr#rRrSrrrrU�s
��z4SecondaryPrivateIpAddressCountArgument.add_to_paramsr&rVrrrrr�rZrc@�eZdZdd�ZdS)rcC�|durt|d|�dSdS)NTr$rRrSrrrrU��
��z.AssociatePublicIpAddressArgument.add_to_paramsN�rWrXrYrUrrrrr��rc@r])rcCr^)NFr$rRrSrrrrU�r_z0NoAssociatePublicIpAddressArgument.add_to_paramsNr`rrrrr�rarN)�__doc__�awscli.argumentsrrr
rrr!r8r9r>rAr
rrrrrrr�<module>s*�	��(�