func (c *ApiService) PageRoom(params *ListRoomParams, pageToken, pageNumber string) (*ListRoomResponse, error) {
	path := "/v1/Rooms"
	data := url.Values{}
	headers := make(map[string]interface{})
	if params != nil && params.Status != nil {
		data.Set("Status", *params.Status)
	}
	if params != nil && params.UniqueName != nil {
		data.Set("UniqueName", *params.UniqueName)
	}
	if params != nil && params.DateCreatedAfter != nil {
		data.Set("DateCreatedAfter", fmt.Sprint((*params.DateCreatedAfter).Format(time.RFC3339)))
	}
	if params != nil && params.DateCreatedBefore != nil {
		data.Set("DateCreatedBefore", fmt.Sprint((*params.DateCreatedBefore).Format(time.RFC3339)))
	}
	if params != nil && params.PageSize != nil {
		data.Set("PageSize", fmt.Sprint(*params.PageSize))
	}
	if pageToken != "" {
		data.Set("PageToken", pageToken)
	}
	if pageNumber != "" {
		data.Set("Page", pageNumber)
	}
	resp, err := c.requestHandler.Get(c.baseURL+path, data, headers)
	if err != nil {
		return nil, err
	}
	defer resp.Body.Close()
	ps := &ListRoomResponse{}
	if err := json.NewDecoder(resp.Body).Decode(ps); err != nil {
		return nil, err
	}
	return ps, err
}
Retrieve a single page of Room records from the API. Request is executed immediately.
package openapi
import (
	"encoding/json"
	"fmt"
	"net/url"
	"strings"
	"time"
	"github.com/twilio/twilio-go/client"
)
type CreateRoomParams struct {
	AudioOnly *bool `json:"AudioOnly,omitempty"`
	EnableTurn *bool `json:"EnableTurn,omitempty"`
	MaxParticipants *int `json:"MaxParticipants,omitempty"`
	MediaRegion *string `json:"MediaRegion,omitempty"`
	RecordParticipantsOnConnect *bool `json:"RecordParticipantsOnConnect,omitempty"`
	RecordingRules *map[string]interface{} `json:"RecordingRules,omitempty"`
	StatusCallback *string `json:"StatusCallback,omitempty"`
	StatusCallbackMethod *string `json:"StatusCallbackMethod,omitempty"`
	Type *string `json:"Type,omitempty"`
	UniqueName *string `json:"UniqueName,omitempty"`
	VideoCodecs *[]string `json:"VideoCodecs,omitempty"`
}
func (params *CreateRoomParams) SetAudioOnly(AudioOnly bool) *CreateRoomParams {
	params.AudioOnly = &AudioOnly
	return params
}
func (params *CreateRoomParams) SetEnableTurn(EnableTurn bool) *CreateRoomParams {
	params.EnableTurn = &EnableTurn
	return params
}
func (params *CreateRoomParams) SetMaxParticipants(MaxParticipants int) *CreateRoomParams {
	params.MaxParticipants = &MaxParticipants
	return params
}
func (params *CreateRoomParams) SetMediaRegion(MediaRegion string) *CreateRoomParams {
	params.MediaRegion = &MediaRegion
	return params
}
func (params *CreateRoomParams) SetRecordParticipantsOnConnect(RecordParticipantsOnConnect bool) *CreateRoomParams {
	params.RecordParticipantsOnConnect = &RecordParticipantsOnConnect
	return params
}
func (params *CreateRoomParams) SetRecordingRules(RecordingRules map[string]interface{}) *CreateRoomParams {
	params.RecordingRules = &RecordingRules
	return params
}
func (params *CreateRoomParams) SetStatusCallback(StatusCallback string) *CreateRoomParams {
	params.StatusCallback = &StatusCallback
	return params
}
func (params *CreateRoomParams) SetStatusCallbackMethod(StatusCallbackMethod string) *CreateRoomParams {
	params.StatusCallbackMethod = &StatusCallbackMethod
	return params
}
func (params *CreateRoomParams) SetType(Type string) *CreateRoomParams {
	params.Type = &Type
	return params
}
func (params *CreateRoomParams) SetUniqueName(UniqueName string) *CreateRoomParams {
	params.UniqueName = &UniqueName
	return params
}
func (params *CreateRoomParams) SetVideoCodecs(VideoCodecs []string) *CreateRoomParams {
	params.VideoCodecs = &VideoCodecs
	return params
}
func (c *ApiService) CreateRoom(params *CreateRoomParams) (*VideoV1Room, error) {
	path := "/v1/Rooms"
	data := url.Values{}
	headers := make(map[string]interface{})
	if params != nil && params.AudioOnly != nil {
		data.Set("AudioOnly", fmt.Sprint(*params.AudioOnly))
	}
	if params != nil && params.EnableTurn != nil {
		data.Set("EnableTurn", fmt.Sprint(*params.EnableTurn))
	}
	if params != nil && params.MaxParticipants != nil {
		data.Set("MaxParticipants", fmt.Sprint(*params.MaxParticipants))
	}
	if params != nil && params.MediaRegion != nil {
		data.Set("MediaRegion", *params.MediaRegion)
	}
	if params != nil && params.RecordParticipantsOnConnect != nil {
		data.Set("RecordParticipantsOnConnect", fmt.Sprint(*params.RecordParticipantsOnConnect))
	}
	if params != nil && params.RecordingRules != nil {
		v, err := json.Marshal(params.RecordingRules)
		if err != nil {
			return nil, err
		}
		data.Set("RecordingRules", string(v))
	}
	if params != nil && params.StatusCallback != nil {
		data.Set("StatusCallback", *params.StatusCallback)
	}
	if params != nil && params.StatusCallbackMethod != nil {
		data.Set("StatusCallbackMethod", *params.StatusCallbackMethod)
	}
	if params != nil && params.Type != nil {
		data.Set("Type", *params.Type)
	}
	if params != nil && params.UniqueName != nil {
		data.Set("UniqueName", *params.UniqueName)
	}
	if params != nil && params.VideoCodecs != nil {
		for _, item := range *params.VideoCodecs {
			data.Add("VideoCodecs", item)
		}
	}
	resp, err := c.requestHandler.Post(c.baseURL+path, data, headers)
	if err != nil {
		return nil, err
	}
	defer resp.Body.Close()
	ps := &VideoV1Room{}
	if err := json.NewDecoder(resp.Body).Decode(ps); err != nil {
		return nil, err
	}
	return ps, err
}
func (c *ApiService) FetchRoom(Sid string) (*VideoV1Room, error) {
	path := "/v1/Rooms/{Sid}"
	path = strings.Replace(path, "{"+"Sid"+"}", Sid, -1)
	data := url.Values{}
	headers := make(map[string]interface{})
	resp, err := c.requestHandler.Get(c.baseURL+path, data, headers)
	if err != nil {
		return nil, err
	}
	defer resp.Body.Close()
	ps := &VideoV1Room{}
	if err := json.NewDecoder(resp.Body).Decode(ps); err != nil {
		return nil, err
	}
	return ps, err
}
type ListRoomParams struct {
	Status *string `json:"Status,omitempty"`
	UniqueName *string `json:"UniqueName,omitempty"`
	DateCreatedAfter *time.Time `json:"DateCreatedAfter,omitempty"`
	DateCreatedBefore *time.Time `json:"DateCreatedBefore,omitempty"`
	PageSize *int `json:"PageSize,omitempty"`
	Limit *int `json:"limit,omitempty"`
}
func (params *ListRoomParams) SetStatus(Status string) *ListRoomParams {
	params.Status = &Status
	return params
}
func (params *ListRoomParams) SetUniqueName(UniqueName string) *ListRoomParams {
	params.UniqueName = &UniqueName
	return params
}
func (params *ListRoomParams) SetDateCreatedAfter(DateCreatedAfter time.Time) *ListRoomParams {
	params.DateCreatedAfter = &DateCreatedAfter
	return params
}
func (params *ListRoomParams) SetDateCreatedBefore(DateCreatedBefore time.Time) *ListRoomParams {
	params.DateCreatedBefore = &DateCreatedBefore
	return params
}
func (params *ListRoomParams) SetPageSize(PageSize int) *ListRoomParams {
	params.PageSize = &PageSize
	return params
}
func (params *ListRoomParams) SetLimit(Limit int) *ListRoomParams {
	params.Limit = &Limit
	return params
}