code: def create_linear(num_finite_buckets, width, offset):
      
      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))
docs: 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