code: func (kinesis *Kinesis) PutRecord(args *RequestArgs) (resp *PutRecordResp, err error) {
  	params := makeParams("PutRecord")
  
  	if _, ok := args.params["Data"]; !ok && len(args.Records) == 0 {
  		return nil, errors.New("PutRecord requires its args param to contain a record added with either AddRecord or AddData.")
  	} else if ok && len(args.Records) > 0 {
  		return nil, errors.New("PutRecord requires its args param to contain a record added with either AddRecord or AddData but not both.")
  	} else if len(args.Records) > 1 {
  		return nil, errors.New("PutRecord does not support more than one record.")
  	}
  
  	if len(args.Records) > 0 {
  		args.AddData(args.Records[0].Data)
  		args.Add("PartitionKey", args.Records[0].PartitionKey)
  	}
  
  	resp = &PutRecordResp{}
  	err = kinesis.query(params, args.params, resp)
  	if err != nil {
  		return nil, err
  	}
  	return
  }
docs: // PutRecord puts a data record into an Amazon Kinesis stream from a producer.
  // args must contain a single record added with AddRecord.
  // More info: http://docs.aws.amazon.com/kinesis/latest/APIReference/API_PutRecord.html