def create_linear(num_finite_buckets, width, offset):
    """Creates a new instance of distribution with linear buckets.

    Args:
       num_finite_buckets (int): initializes number of finite buckets
       width (float): initializes the width of each bucket
       offset (float): initializes the offset

    Return:
       :class:`endpoints_management.gen.servicecontrol_v1_messages.Distribution`

    Raises:
       ValueError: if the args are invalid for creating an instance
    """
    if num_finite_buckets <= 0:
        raise ValueError(_BAD_NUM_FINITE_BUCKETS)
    if width <= 0.0:
        raise ValueError(_BAD_FLOAT_ARG % (u'width', 0.0))
    return sc_messages.Distribution(
        bucketCounts=[0] * (num_finite_buckets + 2),
        linearBuckets=sc_messages.LinearBuckets(
            numFiniteBuckets=num_finite_buckets,
            width=width,
            offset=offset))
Creates a new instance of distribution with linear buckets.

    Args:
       num_finite_buckets (int): initializes number of finite buckets
       width (float): initializes the width of each bucket
       offset (float): initializes the offset

    Return:
       :class:`endpoints_management.gen.servicecontrol_v1_messages.Distribution`

    Raises:
       ValueError: if the args are invalid for creating an instance