<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def _get_full_stream(stream_name, region=None, key=None, keyid=None, profile=None):
    '''
    Get complete stream info from AWS, via describe_stream, including all shards.

    CLI example::

        salt myminion boto_kinesis._get_full_stream my_stream region=us-east-1
    '''
    conn = _get_conn(region=region, key=key, keyid=keyid, profile=profile)
    r = {}
    stream = _get_basic_stream(stream_name, conn)['result']
    full_stream = stream

    # iterate through if there are > 100 shards (max that AWS will return from describe_stream)
    while stream["StreamDescription"]["HasMoreShards"]:
        stream = _execute_with_retries(conn,
                                       "describe_stream",
                                       StreamName=stream_name,
                                       ExclusiveStartShardId=stream["StreamDescription"]["Shards"][-1]["ShardId"])
        stream = stream['result']
        full_stream["StreamDescription"]["Shards"] += stream["StreamDescription"]["Shards"]

    r['result'] = full_stream
    return r