'Assigns one or more secondary private IP addresses to a network
interface in Amazon VPC.
:type network_interface_id: string
:param network_interface_id: The network interface to which the IP
address will be assigned.
:type private_ip_addresses: list
:param private_ip_addresses: Assigns the specified IP addresses as
secondary IP addresses to the network interface.
:type secondary_private_ip_address_count: int
:param secondary_private_ip_address_count: The number of secondary IP
addresses to assign to the network interface. You cannot specify
this parameter when also specifying private_ip_addresses.
:type allow_reassignment: bool
:param allow_reassignment: Specifies whether to allow an IP address
that is already assigned to another network interface or instance
to be reassigned to the specified network interface.
:type dry_run: bool
:param dry_run: Set to True if the operation should not actually run.
:rtype: bool
:return: True if successful'

def assign_private_ip_addresses(self, network_interface_id=None, private_ip_addresses=None, secondary_private_ip_address_count=None, allow_reassignment=False, dry_run=False):

    params = {}
    if (network_interface_id is not None):
        params['NetworkInterfaceId'] = network_interface_id
    if (private_ip_addresses is not None):
        self.build_list_params(params, private_ip_addresses, 'PrivateIpAddress')
    elif (secondary_private_ip_address_count is not None):
        params['SecondaryPrivateIpAddressCount'] = secondary_private_ip_address_count
    if allow_reassignment:
        params['AllowReassignment'] = 'true'
    if dry_run:
        params['DryRun'] = 'true'
    return self.get_status('AssignPrivateIpAddresses', params, verb='POST')
