// NewPaperDocRequestAccessType returns a new PaperDocRequestAccessType instance
540183
func NewPaperDocRequestAccessType(Description string) *PaperDocRequestAccessType {
	s := new(PaperDocRequestAccessType)
	s.Description = Description
	return s
}
108828
func NewPaperFolderTeamInviteType(Description string) *PaperFolderTeamInviteType {
	s := new(PaperFolderTeamInviteType)
	s.Description = Description
	return s
}
88884
func NewPaperDocOwnershipChangedType(Description string) *PaperDocOwnershipChangedType {
	s := new(PaperDocOwnershipChangedType)
	s.Description = Description
	return s
}
582059
func NewPaperContentArchiveType(Description string) *PaperContentArchiveType {
	s := new(PaperContentArchiveType)
	s.Description = Description
	return s
}
1081774
func NewPaperDocRevertDetails(EventUuid string) *PaperDocRevertDetails {
	s := new(PaperDocRevertDetails)
	s.EventUuid = EventUuid
	return s
}
648790
func (c *Client) NewRequest(method, requestPath string) *Request {
	c.modifyLock.RLock()
	addr := c.addr
	token := c.token
	mfaCreds := c.mfaCreds
	wrappingLookupFunc := c.wrappingLookupFunc
	headers := c.headers
	policyOverride := c.policyOverride
	c.modifyLock.RUnlock()

	// if SRV records exist (see https://tools.ietf.org/html/draft-andrews-http-srv-02), lookup the SRV
	// record and take the highest match; this is not designed for high-availability, just discovery
	var host string = addr.Host
	if addr.Port() == "" {
		// Internet Draft specifies that the SRV record is ignored if a port is given
		_, addrs, err := net.LookupSRV("http", "tcp", addr.Hostname())
		if err == nil && len(addrs) > 0 {
			host = fmt.Sprintf("%s:%d", addrs[0].Target, addrs[0].Port)
		}
	}

	req := &Request{
		Method: method,
		URL: &url.URL{
			User:   addr.User,
			Scheme: addr.Scheme,
			Host:   host,
			Path:   path.Join(addr.Path, requestPath),
		},
		ClientToken: token,
		Params:      make(map[string][]string),
	}

	var lookupPath string
	switch {
	case strings.HasPrefix(requestPath, "/v1/"):
		lookupPath = strings.TrimPrefix(requestPath, "/v1/")
	case strings.HasPrefix(requestPath, "v1/"):
		lookupPath = strings.TrimPrefix(requestPath, "v1/")
	default:
		lookupPath = requestPath
	}

	req.MFAHeaderVals = mfaCreds

	if wrappingLookupFunc != nil {
		req.WrapTTL = wrappingLookupFunc(method, lookupPath)
	} else {
		req.WrapTTL = DefaultWrappingLookupFunc(method, lookupPath)
	}

	if headers != nil {
		req.Headers = headers
	}

	req.PolicyOverride = policyOverride

	return req
}
928230
func NewPaperContentRemoveFromFolderType(Description string) *PaperContentRemoveFromFolderType {
	s := new(PaperContentRemoveFromFolderType)
	s.Description = Description
	return s
}
598454
func NewPaperDocExportResult(Owner string, Title string, Revision int64, MimeType string) *PaperDocExportResult {
	s := new(PaperDocExportResult)
	s.Owner = Owner
	s.Title = Title
	s.Revision = Revision
	s.MimeType = MimeType
	return s
}
1368215
func NewPaperFolderFollowedType(Description string) *PaperFolderFollowedType {
	s := new(PaperFolderFollowedType)
	s.Description = Description
	return s
}
1139578
func (c *Client) NewCreateAccountRequest(ctx context.Context, path string, payload *CreateAccountPayload, contentType string) (*http.Request, error) {
	var body bytes.Buffer
	if contentType == "" {
		contentType = "*/*" // Use default encoder
	}
	err := c.Encoder.Encode(payload, &body, contentType)
	if err != nil {
		return nil, fmt.Errorf("failed to encode body: %s", err)
	}
	scheme := c.Scheme
	if scheme == "" {
		scheme = "http"
	}
	u := url.URL{Host: c.Host, Scheme: scheme, Path: path}
	req, err := http.NewRequest("POST", u.String(), &body)
	if err != nil {
		return nil, err
	}
	header := req.Header
	if contentType == "*/*" {
		header.Set("Content-Type", "application/json")
	} else {
		header.Set("Content-Type", contentType)
	}
	return req, nil
}
598536
func NewPaperContentRemoveMemberType(Description string) *PaperContentRemoveMemberType {
	s := new(PaperContentRemoveMemberType)
	s.Description = Description
	return s
}
638379
func NewPaperContentAddMemberType(Description string) *PaperContentAddMemberType {
	s := new(PaperContentAddMemberType)
	s.Description = Description
	return s
}
492792
func NewListUsersOnPaperDocResponse(Invitees []*InviteeInfoWithPermissionLevel, Users []*UserInfoWithPermissionLevel, DocOwner *sharing.UserInfo, Cursor *Cursor, HasMore bool) *ListUsersOnPaperDocResponse {
	s := new(ListUsersOnPaperDocResponse)
	s.Invitees = Invitees
	s.Users = Users
	s.DocOwner = DocOwner
	s.Cursor = Cursor
	s.HasMore = HasMore
	return s
}
602872
func NewPaperDocUntrashedType(Description string) *PaperDocUntrashedType {
	s := new(PaperDocUntrashedType)
	s.Description = Description
	return s
}
1217400
func NewPaperDocEditCommentType(Description string) *PaperDocEditCommentType {
	s := new(PaperDocEditCommentType)
	s.Description = Description
	return s
}
690267
func NewPaperExternalViewForbidType(Description string) *PaperExternalViewForbidType {
	s := new(PaperExternalViewForbidType)
	s.Description = Description
	return s
}
162054
func NewPaperDocDeleteCommentDetails(EventUuid string) *PaperDocDeleteCommentDetails {
	s := new(PaperDocDeleteCommentDetails)
	s.EventUuid = EventUuid
	return s
}