// Copyright 2024 Google LLC.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// Code generated file. DO NOT EDIT.

// Package identitytoolkit provides access to the Identity Toolkit API.
//
// For product documentation, see: https://cloud.google.com/identity-platform
//
// # Library status
//
// These client libraries are officially supported by Google. However, this
// library is considered complete and is in maintenance mode. This means
// that we will address critical bugs and security issues but will not add
// any new features.
//
// When possible, we recommend using our newer
// [Cloud Client Libraries for Go](https://pkg.go.dev/cloud.google.com/go)
// that are still actively being worked and iterated on.
//
// # Creating a client
//
// Usage example:
//
//	import "google.golang.org/api/identitytoolkit/v1"
//	...
//	ctx := context.Background()
//	identitytoolkitService, err := identitytoolkit.NewService(ctx)
//
// In this example, Google Application Default Credentials are used for
// authentication. For information on how to create and obtain Application
// Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
//
// # Other authentication options
//
// By default, all available scopes (see "Constants") are used to authenticate.
// To restrict scopes, use [google.golang.org/api/option.WithScopes]:
//
//	identitytoolkitService, err := identitytoolkit.NewService(ctx, option.WithScopes(identitytoolkit.FirebaseScope))
//
// To use an API key for authentication (note: some APIs do not support API
// keys), use [google.golang.org/api/option.WithAPIKey]:
//
//	identitytoolkitService, err := identitytoolkit.NewService(ctx, option.WithAPIKey("AIza..."))
//
// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth
// flow, use [google.golang.org/api/option.WithTokenSource]:
//
//	config := &oauth2.Config{...}
//	// ...
//	token, err := config.Exchange(ctx, ...)
//	identitytoolkitService, err := identitytoolkit.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
//
// See [google.golang.org/api/option.ClientOption] for details on options.
package identitytoolkit // import "google.golang.org/api/identitytoolkit/v1"

import (
	"bytes"
	"context"
	"encoding/json"
	"errors"
	"fmt"
	"io"
	"net/http"
	"net/url"
	"strconv"
	"strings"

	googleapi "google.golang.org/api/googleapi"
	internal "google.golang.org/api/internal"
	gensupport "google.golang.org/api/internal/gensupport"
	option "google.golang.org/api/option"
	internaloption "google.golang.org/api/option/internaloption"
	htransport "google.golang.org/api/transport/http"
)

// Always reference these packages, just in case the auto-generated code
// below doesn't.
var _ = bytes.NewBuffer
var _ = strconv.Itoa
var _ = fmt.Sprintf
var _ = json.NewDecoder
var _ = io.Copy
var _ = url.Parse
var _ = gensupport.MarshalJSON
var _ = googleapi.Version
var _ = errors.New
var _ = strings.Replace
var _ = context.Canceled
var _ = internaloption.WithDefaultEndpoint
var _ = internal.Version

const apiId = "identitytoolkit:v1"
const apiName = "identitytoolkit"
const apiVersion = "v1"
const basePath = "https://identitytoolkit.googleapis.com/"
const basePathTemplate = "https://identitytoolkit.UNIVERSE_DOMAIN/"
const mtlsBasePath = "https://identitytoolkit.mtls.googleapis.com/"
const defaultUniverseDomain = "googleapis.com"

// OAuth2 scopes used by this API.
const (
	// See, edit, configure, and delete your Google Cloud data and see the
	// email address for your Google Account.
	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"

	// View and administer all your Firebase data and settings
	FirebaseScope = "https://www.googleapis.com/auth/firebase"
)

// NewService creates a new Service.
func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
	scopesOption := internaloption.WithDefaultScopes(
		"https://www.googleapis.com/auth/cloud-platform",
		"https://www.googleapis.com/auth/firebase",
	)
	// NOTE: prepend, so we don't override user-specified scopes.
	opts = append([]option.ClientOption{scopesOption}, opts...)
	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
	opts = append(opts, internaloption.WithDefaultEndpointTemplate(basePathTemplate))
	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
	opts = append(opts, internaloption.WithDefaultUniverseDomain(defaultUniverseDomain))
	client, endpoint, err := htransport.NewClient(ctx, opts...)
	if err != nil {
		return nil, err
	}
	s, err := New(client)
	if err != nil {
		return nil, err
	}
	if endpoint != "" {
		s.BasePath = endpoint
	}
	return s, nil
}

// New creates a new Service. It uses the provided http.Client for requests.
//
// Deprecated: please use NewService instead.
// To provide a custom HTTP client, use option.WithHTTPClient.
// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
func New(client *http.Client) (*Service, error) {
	if client == nil {
		return nil, errors.New("client is nil")
	}
	s := &Service{client: client, BasePath: basePath}
	s.Accounts = NewAccountsService(s)
	s.Projects = NewProjectsService(s)
	s.V1 = NewV1Service(s)
	return s, nil
}

type Service struct {
	client    *http.Client
	BasePath  string // API endpoint base URL
	UserAgent string // optional additional User-Agent fragment

	Accounts *AccountsService

	Projects *ProjectsService

	V1 *V1Service
}

func (s *Service) userAgent() string {
	if s.UserAgent == "" {
		return googleapi.UserAgent
	}
	return googleapi.UserAgent + " " + s.UserAgent
}

func NewAccountsService(s *Service) *AccountsService {
	rs := &AccountsService{s: s}
	return rs
}

type AccountsService struct {
	s *Service
}

func NewProjectsService(s *Service) *ProjectsService {
	rs := &ProjectsService{s: s}
	rs.Accounts_ = NewProjectsAccountsService(s)
	rs.Tenants = NewProjectsTenantsService(s)
	return rs
}

type ProjectsService struct {
	s *Service

	Accounts_ *ProjectsAccountsService

	Tenants *ProjectsTenantsService
}

func NewProjectsAccountsService(s *Service) *ProjectsAccountsService {
	rs := &ProjectsAccountsService{s: s}
	return rs
}

type ProjectsAccountsService struct {
	s *Service
}

func NewProjectsTenantsService(s *Service) *ProjectsTenantsService {
	rs := &ProjectsTenantsService{s: s}
	rs.Accounts_ = NewProjectsTenantsAccountsService(s)
	return rs
}

type ProjectsTenantsService struct {
	s *Service

	Accounts_ *ProjectsTenantsAccountsService
}

func NewProjectsTenantsAccountsService(s *Service) *ProjectsTenantsAccountsService {
	rs := &ProjectsTenantsAccountsService{s: s}
	return rs
}

type ProjectsTenantsAccountsService struct {
	s *Service
}

func NewV1Service(s *Service) *V1Service {
	rs := &V1Service{s: s}
	return rs
}

type V1Service struct {
	s *Service
}

// GoogleCloudIdentitytoolkitV1Argon2Parameters: The parameters for
// Argon2 hashing algorithm.
type GoogleCloudIdentitytoolkitV1Argon2Parameters struct {
	// AssociatedData: The additional associated data, if provided, is
	// appended to the hash value to provide an additional layer of
	// security. A base64-encoded string if specified via JSON.
	AssociatedData string `json:"associatedData,omitempty"`

	// HashLengthBytes: Required. The desired hash length in bytes. Minimum
	// is 4 and maximum is 1024.
	HashLengthBytes int64 `json:"hashLengthBytes,omitempty"`

	// HashType: Required. Must not be HASH_TYPE_UNSPECIFIED.
	//
	// Possible values:
	//   "HASH_TYPE_UNSPECIFIED" - The hash type is not specified.
	//   "ARGON2_D" - An Argon2 variant, Argon2d.
	//   "ARGON2_ID" - An Argon2 variant, Argonid. Recommended.
	//   "ARGON2_I" - An Argon2 variant, Argon2i.
	HashType string `json:"hashType,omitempty"`

	// Iterations: Required. The number of iterations to perform. Minimum is
	// 1, maximum is 16.
	Iterations int64 `json:"iterations,omitempty"`

	// MemoryCostKib: Required. The memory cost in kibibytes. Maximum is
	// 32768.
	MemoryCostKib int64 `json:"memoryCostKib,omitempty"`

	// Parallelism: Required. The degree of parallelism, also called threads
	// or lanes. Minimum is 1, maximum is 16.
	Parallelism int64 `json:"parallelism,omitempty"`

	// Version: The version of the Argon2 algorithm. This defaults to
	// VERSION_13 if not specified.
	//
	// Possible values:
	//   "VERSION_UNSPECIFIED" - The version is not specified.
	//   "VERSION_10" - The previous version, 0x10.
	//   "VERSION_13" - The current version, 0x13. The default value for
	// version.
	Version string `json:"version,omitempty"`

	// ForceSendFields is a list of field names (e.g. "AssociatedData") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "AssociatedData") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1Argon2Parameters) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1Argon2Parameters
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1AutoRetrievalInfo: The information
// required to auto-retrieve an SMS.
type GoogleCloudIdentitytoolkitV1AutoRetrievalInfo struct {
	// AppSignatureHash: The Android app's signature hash for Google Play
	// Service's SMS Retriever API.
	AppSignatureHash string `json:"appSignatureHash,omitempty"`

	// ForceSendFields is a list of field names (e.g. "AppSignatureHash") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "AppSignatureHash") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1AutoRetrievalInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1AutoRetrievalInfo
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1BatchDeleteAccountsRequest: Request
// message for BatchDeleteAccounts.
type GoogleCloudIdentitytoolkitV1BatchDeleteAccountsRequest struct {
	// Force: Whether to force deleting accounts that are not in disabled
	// state. If false, only disabled accounts will be deleted, and accounts
	// that are not disabled will be added to the `errors`.
	Force bool `json:"force,omitempty"`

	// LocalIds: Required. List of user IDs to be deleted.
	LocalIds []string `json:"localIds,omitempty"`

	// TenantId: If the accounts belong to an Identity Platform tenant, the
	// ID of the tenant. If the accounts belong to a default Identity
	// Platform project, the field is not needed.
	TenantId string `json:"tenantId,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Force") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Force") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1BatchDeleteAccountsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1BatchDeleteAccountsRequest
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1BatchDeleteAccountsResponse: Response
// message to BatchDeleteAccounts.
type GoogleCloudIdentitytoolkitV1BatchDeleteAccountsResponse struct {
	// Errors: Detailed error info for accounts that cannot be deleted.
	Errors []*GoogleCloudIdentitytoolkitV1BatchDeleteErrorInfo `json:"errors,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "Errors") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Errors") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1BatchDeleteAccountsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1BatchDeleteAccountsResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1BatchDeleteErrorInfo: Error info for
// account failed to be deleted.
type GoogleCloudIdentitytoolkitV1BatchDeleteErrorInfo struct {
	// Index: The index of the errored item in the original local_ids field.
	Index int64 `json:"index,omitempty"`

	// LocalId: The corresponding user ID.
	LocalId string `json:"localId,omitempty"`

	// Message: Detailed error message.
	Message string `json:"message,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Index") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Index") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1BatchDeleteErrorInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1BatchDeleteErrorInfo
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1CreateAuthUriRequest: Request message for
// CreateAuthUri.
type GoogleCloudIdentitytoolkitV1CreateAuthUriRequest struct {
	AppId string `json:"appId,omitempty"`

	// AuthFlowType: Used for the Google provider. The type of the
	// authentication flow to be used. If present, this should be
	// `CODE_FLOW` to specify the authorization code flow. Otherwise, the
	// default ID Token flow will be used.
	AuthFlowType string `json:"authFlowType,omitempty"`

	// Context: An opaque string used to maintain contextual information
	// between the authentication request and the callback from the IdP.
	Context string `json:"context,omitempty"`

	// ContinueUri: A valid URL for the IdP to redirect the user back to.
	// The URL cannot contain fragments or the reserved `state` query
	// parameter.
	ContinueUri string `json:"continueUri,omitempty"`

	// CustomParameter: Additional customized query parameters to be added
	// to the authorization URI. The following parameters are reserved and
	// cannot be added: `client_id`, `response_type`, `scope`,
	// `redirect_uri`, `state`. For the Microsoft provider, the Azure AD
	// tenant to sign-in to can be specified in the `tenant` custom
	// parameter.
	CustomParameter map[string]string `json:"customParameter,omitempty"`

	// HostedDomain: Used for the Google provider. The G Suite hosted domain
	// of the user in order to restrict sign-in to users at that domain.
	HostedDomain string `json:"hostedDomain,omitempty"`

	// Identifier: The email identifier of the user account to fetch
	// associated providers for. At least one of the fields `identifier` and
	// `provider_id` must be set. The length of the email address should be
	// less than 256 characters and in the format of `name@domain.tld`. The
	// email address should also match the RFC 822
	// (https://tools.ietf.org/html/rfc822) addr-spec production.
	Identifier string `json:"identifier,omitempty"`

	OauthConsumerKey string `json:"oauthConsumerKey,omitempty"`

	// OauthScope: Additional space-delimited OAuth 2.0 scopes specifying
	// the scope of the authentication request with the IdP. Used for OAuth
	// 2.0 IdPs. For the Google provider, the authorization code flow will
	// be used if this field is set.
	OauthScope string `json:"oauthScope,omitempty"`

	OpenidRealm string `json:"openidRealm,omitempty"`

	OtaApp string `json:"otaApp,omitempty"`

	// ProviderId: The provider ID of the IdP for the user to sign in with.
	// This should be a provider ID enabled for sign-in, which is either
	// from the list of default supported IdPs
	// (https://cloud.google.com/identity-platform/docs/reference/rest/v2/defaultSupportedIdps/list),
	// or of the format `oidc.*` or `saml.*`. Some examples are
	// `google.com`, `facebook.com`, `oidc.testapp`, and `saml.testapp`. At
	// least one of the fields `identifier` and `provider_id` must be set.
	ProviderId string `json:"providerId,omitempty"`

	// SessionId: A session ID that can be verified against in SignInWithIdp
	// to prevent session fixation attacks. If absent, a random string will
	// be generated and returned as the session ID.
	SessionId string `json:"sessionId,omitempty"`

	// TenantId: The ID of the Identity Platform tenant to create an
	// authorization URI or lookup an email identifier for. If not set, the
	// operation will be performed in the default Identity Platform instance
	// in the project.
	TenantId string `json:"tenantId,omitempty"`

	// ForceSendFields is a list of field names (e.g. "AppId") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "AppId") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1CreateAuthUriRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1CreateAuthUriRequest
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1CreateAuthUriResponse: Response message
// for CreateAuthUri.
type GoogleCloudIdentitytoolkitV1CreateAuthUriResponse struct {
	AllProviders []string `json:"allProviders,omitempty"`

	// AuthUri: The authorization URI for the requested provider. Present
	// only when a provider ID is set in the request.
	AuthUri string `json:"authUri,omitempty"`

	// CaptchaRequired: Whether a CAPTCHA is needed because there have been
	// too many failed login attempts by the user. Present only when a
	// registered email identifier is set in the request.
	CaptchaRequired bool `json:"captchaRequired,omitempty"`

	// ForExistingProvider: Whether the user has previously signed in with
	// the provider ID in the request. Present only when a registered email
	// identifier is set in the request.
	ForExistingProvider bool `json:"forExistingProvider,omitempty"`

	Kind string `json:"kind,omitempty"`

	// ProviderId: The provider ID from the request, if provided.
	ProviderId string `json:"providerId,omitempty"`

	// Registered: Whether the email identifier represents an existing
	// account. Present only when an email identifier is set in the request.
	Registered bool `json:"registered,omitempty"`

	// SessionId: The session ID from the request, or a random string
	// generated by CreateAuthUri if absent. It is used to prevent session
	// fixation attacks.
	SessionId string `json:"sessionId,omitempty"`

	// SigninMethods: The list of sign-in methods that the user has
	// previously used. Each element is one of `password`, `emailLink`, or
	// the provider ID of an IdP. Present only when a registered email
	// identifier is set in the request. If email enumeration protection
	// (https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection)
	// is enabled, this method returns an empty list.
	SigninMethods []string `json:"signinMethods,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "AllProviders") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "AllProviders") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1CreateAuthUriResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1CreateAuthUriResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1CreateSessionCookieRequest: Request
// message for CreateSessionCookie.
type GoogleCloudIdentitytoolkitV1CreateSessionCookieRequest struct {
	// IdToken: Required. A valid Identity Platform ID token.
	IdToken string `json:"idToken,omitempty"`

	// TenantId: The tenant ID of the Identity Platform tenant the account
	// belongs to.
	TenantId string `json:"tenantId,omitempty"`

	// ValidDuration: The number of seconds until the session cookie
	// expires. Specify a duration in seconds, between five minutes and
	// fourteen days, inclusively.
	ValidDuration int64 `json:"validDuration,omitempty,string"`

	// ForceSendFields is a list of field names (e.g. "IdToken") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "IdToken") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1CreateSessionCookieRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1CreateSessionCookieRequest
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1CreateSessionCookieResponse: Response
// message for CreateSessionCookie.
type GoogleCloudIdentitytoolkitV1CreateSessionCookieResponse struct {
	// SessionCookie: The session cookie that has been created from the
	// Identity Platform ID token specified in the request. It is in the
	// form of a JSON Web Token (JWT). Always present.
	SessionCookie string `json:"sessionCookie,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "SessionCookie") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "SessionCookie") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1CreateSessionCookieResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1CreateSessionCookieResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1DeleteAccountRequest: Request message for
// DeleteAccount.
type GoogleCloudIdentitytoolkitV1DeleteAccountRequest struct {
	DelegatedProjectNumber int64 `json:"delegatedProjectNumber,omitempty,string"`

	// IdToken: The Identity Platform ID token of the account to delete.
	// Require to be specified for requests from end users that lack Google
	// OAuth 2.0 credential. Authenticated requests bearing a Google OAuth2
	// credential with proper permissions may pass local_id to specify the
	// account to delete alternatively.
	IdToken string `json:"idToken,omitempty"`

	// LocalId: The ID of user account to delete. Specifying this field
	// requires a Google OAuth 2.0 credential with proper permissions
	// (https://cloud.google.com/identity-platform/docs/access-control).
	// Requests from users lacking the credential should pass an ID token
	// instead.
	LocalId string `json:"localId,omitempty"`

	// TargetProjectId: The ID of the project which the account belongs to.
	// Should only be specified in authenticated requests that specify
	// local_id of an account.
	TargetProjectId string `json:"targetProjectId,omitempty"`

	// TenantId: The ID of the tenant that the account belongs to, if
	// applicable. Only require to be specified for authenticated requests
	// bearing a Google OAuth 2.0 credential that specify local_id of an
	// account that belongs to an Identity Platform tenant.
	TenantId string `json:"tenantId,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "DelegatedProjectNumber") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. However, any non-pointer, non-interface field appearing in
	// ForceSendFields will be sent to the server regardless of whether the
	// field is empty or not. This may be used to include empty fields in
	// Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "DelegatedProjectNumber")
	// to include in API requests with the JSON null value. By default,
	// fields with empty values are omitted from API requests. However, any
	// field with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1DeleteAccountRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1DeleteAccountRequest
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1DeleteAccountResponse: Response message
// for DeleteAccount.
type GoogleCloudIdentitytoolkitV1DeleteAccountResponse struct {
	Kind string `json:"kind,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "Kind") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Kind") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1DeleteAccountResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1DeleteAccountResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1DownloadAccountResponse: Response message
// for DownloadAccount.
type GoogleCloudIdentitytoolkitV1DownloadAccountResponse struct {
	Kind string `json:"kind,omitempty"`

	// NextPageToken: If there are more accounts to be downloaded, a token
	// that can be passed back to DownloadAccount to get more accounts.
	// Otherwise, this is blank.
	NextPageToken string `json:"nextPageToken,omitempty"`

	// Users: All accounts belonging to the project/tenant limited by
	// max_results in the request.
	Users []*GoogleCloudIdentitytoolkitV1UserInfo `json:"users,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "Kind") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Kind") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1DownloadAccountResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1DownloadAccountResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1EmailInfo: Information about email MFA.
type GoogleCloudIdentitytoolkitV1EmailInfo struct {
	// EmailAddress: Email address that a MFA verification should be sent
	// to.
	EmailAddress string `json:"emailAddress,omitempty"`

	// ForceSendFields is a list of field names (e.g. "EmailAddress") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "EmailAddress") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1EmailInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1EmailInfo
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1EmailTemplate: Email template
type GoogleCloudIdentitytoolkitV1EmailTemplate struct {
	// Body: Email body
	Body string `json:"body,omitempty"`

	// Customized: Whether the body or subject of the email is customized.
	Customized bool `json:"customized,omitempty"`

	// Disabled: Whether the template is disabled. If true, a default
	// template will be used.
	Disabled bool `json:"disabled,omitempty"`

	// Format: Email body format
	//
	// Possible values:
	//   "EMAIL_BODY_FORMAT_UNSPECIFIED" - Default value. Do not use.
	//   "PLAINTEXT" - Email body is in plain text format.
	//   "HTML" - Email body is in HTML format.
	Format string `json:"format,omitempty"`

	// From: From address of the email
	From string `json:"from,omitempty"`

	// FromDisplayName: From display name
	FromDisplayName string `json:"fromDisplayName,omitempty"`

	// FromLocalPart: Local part of From address
	FromLocalPart string `json:"fromLocalPart,omitempty"`

	// Locale: Value is in III language code format (e.g. "zh-CN", "es").
	// Both '-' and '_' separators are accepted.
	Locale string `json:"locale,omitempty"`

	// ReplyTo: Reply-to address
	ReplyTo string `json:"replyTo,omitempty"`

	// Subject: Subject of the email
	Subject string `json:"subject,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Body") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Body") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1EmailTemplate) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1EmailTemplate
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1ErrorInfo: Error information explaining
// why an account cannot be uploaded. batch upload.
type GoogleCloudIdentitytoolkitV1ErrorInfo struct {
	// Index: The index of the item, range is [0, request.size - 1]
	Index int64 `json:"index,omitempty"`

	// Message: Detailed error message
	Message string `json:"message,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Index") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Index") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1ErrorInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1ErrorInfo
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1FederatedUserIdentifier: Federated user
// identifier at an Identity Provider.
type GoogleCloudIdentitytoolkitV1FederatedUserIdentifier struct {
	// ProviderId: The ID of supported identity providers. This should be a
	// provider ID enabled for sign-in, which is either from the list of
	// default supported IdPs
	// (https://cloud.google.com/identity-platform/docs/reference/rest/v2/defaultSupportedIdps/list),
	// or of the format `oidc.*` or `saml.*`. Some examples are
	// `google.com`, `facebook.com`, `oidc.testapp`, and `saml.testapp`.
	ProviderId string `json:"providerId,omitempty"`

	// RawId: The user ID of the account at the third-party Identity
	// Provider specified by `provider_id`.
	RawId string `json:"rawId,omitempty"`

	// ForceSendFields is a list of field names (e.g. "ProviderId") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ProviderId") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1FederatedUserIdentifier) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1FederatedUserIdentifier
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1GetAccountInfoRequest: Request message
// for GetAccountInfo.
type GoogleCloudIdentitytoolkitV1GetAccountInfoRequest struct {
	DelegatedProjectNumber int64 `json:"delegatedProjectNumber,omitempty,string"`

	// Email: The email address of one or more accounts to fetch. The length
	// of email should be less than 256 characters and in the format of
	// `name@domain.tld`. The email should also match the RFC 822
	// (https://tools.ietf.org/html/rfc822) addr-spec production. Should
	// only be specified by authenticated requests from a developer.
	Email []string `json:"email,omitempty"`

	// FederatedUserId: The federated user identifier of one or more
	// accounts to fetch. Should only be specified by authenticated requests
	// bearing a Google OAuth 2.0 credential with proper permissions
	// (https://cloud.google.com/identity-platform/docs/access-control).
	FederatedUserId []*GoogleCloudIdentitytoolkitV1FederatedUserIdentifier `json:"federatedUserId,omitempty"`

	// IdToken: The Identity Platform ID token of the account to fetch.
	// Require to be specified for requests from end users.
	IdToken string `json:"idToken,omitempty"`

	// InitialEmail: The initial email of one or more accounts to fetch. The
	// length of email should be less than 256 characters and in the format
	// of `name@domain.tld`. The email should also match the RFC 822
	// (https://tools.ietf.org/html/rfc822) addr-spec production. Should
	// only be specified by authenticated requests from a developer.
	InitialEmail []string `json:"initialEmail,omitempty"`

	// LocalId: The ID of one or more accounts to fetch. Should only be
	// specified by authenticated requests bearing a Google OAuth 2.0
	// credential with proper permissions
	// (https://cloud.google.com/identity-platform/docs/access-control).
	LocalId []string `json:"localId,omitempty"`

	// PhoneNumber: The phone number of one or more accounts to fetch.
	// Should only be specified by authenticated requests from a developer
	// and should be in E.164 format, for example, +15555555555.
	PhoneNumber []string `json:"phoneNumber,omitempty"`

	// TargetProjectId: The ID of the Google Cloud project that the account
	// or the Identity Platform tenant specified by `tenant_id` belongs to.
	// Should only be specified by authenticated requests bearing a Google
	// OAuth 2.0 credential with proper permissions
	// (https://cloud.google.com/identity-platform/docs/access-control).
	TargetProjectId string `json:"targetProjectId,omitempty"`

	// TenantId: The ID of the tenant that the account belongs to. Should
	// only be specified by authenticated requests from a developer.
	TenantId string `json:"tenantId,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "DelegatedProjectNumber") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. However, any non-pointer, non-interface field appearing in
	// ForceSendFields will be sent to the server regardless of whether the
	// field is empty or not. This may be used to include empty fields in
	// Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "DelegatedProjectNumber")
	// to include in API requests with the JSON null value. By default,
	// fields with empty values are omitted from API requests. However, any
	// field with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1GetAccountInfoRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1GetAccountInfoRequest
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1GetAccountInfoResponse: Response message
// for GetAccountInfo.
type GoogleCloudIdentitytoolkitV1GetAccountInfoResponse struct {
	Kind string `json:"kind,omitempty"`

	// Users: The information of specific user account(s) matching the
	// parameters in the request.
	Users []*GoogleCloudIdentitytoolkitV1UserInfo `json:"users,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "Kind") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Kind") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1GetAccountInfoResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1GetAccountInfoResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1GetOobCodeRequest: Request message for
// GetOobCode.
type GoogleCloudIdentitytoolkitV1GetOobCodeRequest struct {
	// AndroidInstallApp: If an associated android app can handle the OOB
	// code, whether or not to install the android app on the device where
	// the link is opened if the app is not already installed.
	AndroidInstallApp bool `json:"androidInstallApp,omitempty"`

	// AndroidMinimumVersion: If an associated android app can handle the
	// OOB code, the minimum version of the app. If the version on the
	// device is lower than this version then the user is taken to Google
	// Play Store to upgrade the app.
	AndroidMinimumVersion string `json:"androidMinimumVersion,omitempty"`

	// AndroidPackageName: If an associated android app can handle the OOB
	// code, the Android package name of the android app that will handle
	// the callback when this OOB code is used. This will allow the correct
	// app to open if it is already installed, or allow Google Play Store to
	// open to the correct app if it is not yet installed.
	AndroidPackageName string `json:"androidPackageName,omitempty"`

	// CanHandleCodeInApp: When set to true, the OOB code link will be be
	// sent as a Universal Link or an Android App Link and will be opened by
	// the corresponding app if installed. If not set, or set to false, the
	// OOB code will be sent to the web widget first and then on continue
	// will redirect to the app if installed.
	CanHandleCodeInApp bool `json:"canHandleCodeInApp,omitempty"`

	// CaptchaResp: For a PASSWORD_RESET request, a reCaptcha response is
	// required when the system detects possible abuse activity. In those
	// cases, this is the response from the reCaptcha challenge used to
	// verify the caller.
	CaptchaResp string `json:"captchaResp,omitempty"`

	Challenge string `json:"challenge,omitempty"`

	// ClientType: The client type: web, Android or iOS. Required when
	// reCAPTCHA Enterprise protection is enabled.
	//
	// Possible values:
	//   "CLIENT_TYPE_UNSPECIFIED" - Client type is not specified.
	//   "CLIENT_TYPE_WEB" - Client type is web.
	//   "CLIENT_TYPE_ANDROID" - Client type is android.
	//   "CLIENT_TYPE_IOS" - Client type is ios.
	ClientType string `json:"clientType,omitempty"`

	// ContinueUrl: The Url to continue after user clicks the link sent in
	// email. This is the url that will allow the web widget to handle the
	// OOB code.
	ContinueUrl string `json:"continueUrl,omitempty"`

	// DynamicLinkDomain: In order to ensure that the url used can be easily
	// opened up in iOS or android, we create a Firebase Dynamic Link
	// (https://firebase.google.com/docs/dynamic-links). Most Identity
	// Platform projects will only have one Dynamic Link domain enabled, and
	// can leave this field blank. This field contains a specified Dynamic
	// Link domain for projects that have multiple enabled.
	DynamicLinkDomain string `json:"dynamicLinkDomain,omitempty"`

	// Email: The account's email address to send the OOB code to, and
	// generally the email address of the account that needs to be updated.
	// Required for PASSWORD_RESET, EMAIL_SIGNIN, and VERIFY_EMAIL. Only
	// required for VERIFY_AND_CHANGE_EMAIL requests when return_oob_link is
	// set to true. In this case, it is the original email of the user.
	Email string `json:"email,omitempty"`

	// IOSAppStoreId: If an associated iOS app can handle the OOB code, the
	// App Store id of this app. This will allow App Store to open to the
	// correct app if the app is not yet installed.
	IOSAppStoreId string `json:"iOSAppStoreId,omitempty"`

	// IOSBundleId: If an associated iOS app can handle the OOB code, the
	// iOS bundle id of this app. This will allow the correct app to open if
	// it is already installed.
	IOSBundleId string `json:"iOSBundleId,omitempty"`

	// IdToken: An ID token for the account. It is required for
	// VERIFY_AND_CHANGE_EMAIL and VERIFY_EMAIL requests unless
	// return_oob_link is set to true.
	IdToken string `json:"idToken,omitempty"`

	// NewEmail: The email address the account is being updated to. Required
	// only for VERIFY_AND_CHANGE_EMAIL requests.
	NewEmail string `json:"newEmail,omitempty"`

	// RecaptchaVersion: The reCAPTCHA version of the reCAPTCHA token in the
	// captcha_response.
	//
	// Possible values:
	//   "RECAPTCHA_VERSION_UNSPECIFIED" - The reCAPTCHA version is not
	// specified.
	//   "RECAPTCHA_ENTERPRISE" - The reCAPTCHA enterprise.
	RecaptchaVersion string `json:"recaptchaVersion,omitempty"`

	// RequestType: Required. The type of out-of-band (OOB) code to send.
	// Depending on this value, other fields in this request will be
	// required and/or have different meanings. There are 4 different OOB
	// codes that can be sent: * PASSWORD_RESET * EMAIL_SIGNIN *
	// VERIFY_EMAIL * VERIFY_AND_CHANGE_EMAIL
	//
	// Possible values:
	//   "OOB_REQ_TYPE_UNSPECIFIED" - Oob code type is not specified.
	//   "PASSWORD_RESET" - reset password
	//   "OLD_EMAIL_AGREE"
	//   "NEW_EMAIL_ACCEPT"
	//   "VERIFY_EMAIL" - verify the account's email address by sending an
	// email
	//   "RECOVER_EMAIL"
	//   "EMAIL_SIGNIN" - sign in with email only
	//   "VERIFY_AND_CHANGE_EMAIL" - This flow sends an email to the
	// specified new email, and when applied by clicking the link in the
	// email changes the account's email to the new email. Used when the
	// account must have verified email at all times, such as MFA accounts.
	//   "REVERT_SECOND_FACTOR_ADDITION"
	RequestType string `json:"requestType,omitempty"`

	// ReturnOobLink: Whether the confirmation link containing the OOB code
	// should be returned in the response (no email is sent). Used when a
	// developer wants to construct the email template and send it on their
	// own. By default this is false; to specify this field, and to set it
	// to true, it requires a Google OAuth 2.0 credential with proper
	// permissions
	// (https://cloud.google.com/identity-platform/docs/access-control)
	ReturnOobLink bool `json:"returnOobLink,omitempty"`

	// TargetProjectId: The Project ID of the Identity Platform project
	// which the account belongs to. To specify this field, it requires a
	// Google OAuth 2.0 credential with proper permissions
	// (https://cloud.google.com/identity-platform/docs/access-control).
	TargetProjectId string `json:"targetProjectId,omitempty"`

	// TenantId: The tenant ID of the Identity Platform tenant the account
	// belongs to.
	TenantId string `json:"tenantId,omitempty"`

	// UserIp: The IP address of the caller. Required only for
	// PASSWORD_RESET requests.
	UserIp string `json:"userIp,omitempty"`

	// ForceSendFields is a list of field names (e.g. "AndroidInstallApp")
	// to unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "AndroidInstallApp") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1GetOobCodeRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1GetOobCodeRequest
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1GetOobCodeResponse: Response message for
// GetOobCode.
type GoogleCloudIdentitytoolkitV1GetOobCodeResponse struct {
	// Email: If return_oob_link is false in the request, the email address
	// the verification was sent to.
	Email string `json:"email,omitempty"`

	Kind string `json:"kind,omitempty"`

	// OobCode: If return_oob_link is true in the request, the OOB code to
	// send.
	OobCode string `json:"oobCode,omitempty"`

	// OobLink: If return_oob_link is true in the request, the OOB link to
	// be sent to the user. This returns the constructed link including
	// Firebase Dynamic Link
	// (https://firebase.google.com/docs/dynamic-links) related parameters.
	OobLink string `json:"oobLink,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "Email") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Email") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1GetOobCodeResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1GetOobCodeResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1GetProjectConfigResponse: Response
// message for GetProjectConfig.
type GoogleCloudIdentitytoolkitV1GetProjectConfigResponse struct {
	// AllowPasswordUser: Whether to allow password account sign up. This
	// field is only returned for authenticated calls from a developer.
	AllowPasswordUser bool `json:"allowPasswordUser,omitempty"`

	// ApiKey: Google Cloud API key. This field is only returned for
	// authenticated calls from a developer.
	ApiKey string `json:"apiKey,omitempty"`

	// AuthorizedDomains: Authorized domains for widget redirect.
	AuthorizedDomains []string `json:"authorizedDomains,omitempty"`

	// ChangeEmailTemplate: Email template for change email. This field is
	// only returned for authenticated calls from a developer.
	ChangeEmailTemplate *GoogleCloudIdentitytoolkitV1EmailTemplate `json:"changeEmailTemplate,omitempty"`

	// DynamicLinksDomain: The Firebase Dynamic Links domain used to
	// construct links for redirects to native apps.
	DynamicLinksDomain string `json:"dynamicLinksDomain,omitempty"`

	// EnableAnonymousUser: Whether anonymous user is enabled. This field is
	// only returned for authenticated calls from a developer.
	EnableAnonymousUser bool `json:"enableAnonymousUser,omitempty"`

	// IdpConfig: OAuth2 provider config. This field is only returned for
	// authenticated calls from a developer.
	IdpConfig []*GoogleCloudIdentitytoolkitV1IdpConfig `json:"idpConfig,omitempty"`

	// LegacyResetPasswordTemplate: Reset password email template for legacy
	// Firebase V1 app. This field is only returned for authenticated calls
	// from a developer.
	LegacyResetPasswordTemplate *GoogleCloudIdentitytoolkitV1EmailTemplate `json:"legacyResetPasswordTemplate,omitempty"`

	// ProjectId: The project id of the retrieved configuration.
	ProjectId string `json:"projectId,omitempty"`

	// ResetPasswordTemplate: Email template for reset password. This field
	// is only returned for authenticated calls from a developer.
	ResetPasswordTemplate *GoogleCloudIdentitytoolkitV1EmailTemplate `json:"resetPasswordTemplate,omitempty"`

	// RevertSecondFactorAdditionTemplate: Email template for reverting
	// second factor additions. This field is only returned for
	// authenticated calls from a developer.
	RevertSecondFactorAdditionTemplate *GoogleCloudIdentitytoolkitV1EmailTemplate `json:"revertSecondFactorAdditionTemplate,omitempty"`

	// UseEmailSending: Whether to use email sending. This field is only
	// returned for authenticated calls from a developer.
	UseEmailSending bool `json:"useEmailSending,omitempty"`

	// VerifyEmailTemplate: Email template for verify email. This field is
	// only returned for authenticated calls from a developer.
	VerifyEmailTemplate *GoogleCloudIdentitytoolkitV1EmailTemplate `json:"verifyEmailTemplate,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "AllowPasswordUser")
	// to unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "AllowPasswordUser") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1GetProjectConfigResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1GetProjectConfigResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1GetRecaptchaParamResponse: Response
// message for GetRecaptchaParam.
type GoogleCloudIdentitytoolkitV1GetRecaptchaParamResponse struct {
	Kind string `json:"kind,omitempty"`

	// ProducerProjectNumber: The producer project number used to generate
	// PIA tokens
	ProducerProjectNumber string `json:"producerProjectNumber,omitempty"`

	// RecaptchaSiteKey: The reCAPTCHA v2 site key used to invoke the
	// reCAPTCHA service. Always present.
	RecaptchaSiteKey string `json:"recaptchaSiteKey,omitempty"`

	RecaptchaStoken string `json:"recaptchaStoken,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "Kind") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Kind") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1GetRecaptchaParamResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1GetRecaptchaParamResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1GetSessionCookiePublicKeysResponse:
// Response message for GetSessionCookiePublicKeys.
type GoogleCloudIdentitytoolkitV1GetSessionCookiePublicKeysResponse struct {
	// Keys: Public keys of the session cookie signer, formatted as JSON Web
	// Keys (JWK) (https://tools.ietf.org/html/rfc7517).
	Keys []*GoogleCloudIdentitytoolkitV1OpenIdConnectKey `json:"keys,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "Keys") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Keys") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1GetSessionCookiePublicKeysResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1GetSessionCookiePublicKeysResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1IdpConfig: Config of an identity
// provider.
type GoogleCloudIdentitytoolkitV1IdpConfig struct {
	// ClientId: OAuth2 client ID.
	ClientId string `json:"clientId,omitempty"`

	// Enabled: True if allows the user to sign in with the provider.
	Enabled bool `json:"enabled,omitempty"`

	// ExperimentPercent: Percent of users who will be prompted/redirected
	// federated login for this IdP
	ExperimentPercent int64 `json:"experimentPercent,omitempty"`

	// Provider: Name of the identity provider.
	//
	// Possible values:
	//   "PROVIDER_UNSPECIFIED"
	//   "MSLIVE" - Microsoft Live as identity provider.
	//   "GOOGLE" - Google as identity provider.
	//   "FACEBOOK" - Facebook as identity provider.
	//   "PAYPAL" - PayPal as identity provider.
	//   "TWITTER" - Twitter as identity provider.
	//   "YAHOO" - Yahoo as identity provider.
	//   "AOL" - AOL as identity provider.
	//   "GITHUB" - GitHub as identity provider.
	//   "GOOGLE_PLAY_GAMES" - Google Play Games as identity provider.
	//   "LINKEDIN" - LinkedIn as identity provider.
	//   "IOS_GAME_CENTER" - iOS Game Center as identity provider.
	Provider string `json:"provider,omitempty"`

	// Secret: OAuth2 client secret.
	Secret string `json:"secret,omitempty"`

	// WhitelistedAudiences: Whitelisted client IDs for audience check.
	WhitelistedAudiences []string `json:"whitelistedAudiences,omitempty"`

	// ForceSendFields is a list of field names (e.g. "ClientId") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ClientId") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1IdpConfig) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1IdpConfig
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1IssueSamlResponseRequest: Request message
// for IssueSamlResponse.
type GoogleCloudIdentitytoolkitV1IssueSamlResponseRequest struct {
	// IdToken: The Identity Platform ID token. It will be verified and then
	// converted to a new SAMLResponse.
	IdToken string `json:"idToken,omitempty"`

	// RpId: Relying Party identifier, which is the audience of issued
	// SAMLResponse.
	RpId string `json:"rpId,omitempty"`

	// SamlAppEntityId: SAML app entity id specified in Google Admin Console
	// for each app. If developers want to redirect to a third-party app
	// rather than a G Suite app, they'll probably they need this. When it's
	// used, we'll return a RelayState. This includes a SAMLRequest, which
	// can be used to trigger a SP-initiated SAML flow to redirect to the
	// real app.
	SamlAppEntityId string `json:"samlAppEntityId,omitempty"`

	// ForceSendFields is a list of field names (e.g. "IdToken") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "IdToken") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1IssueSamlResponseRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1IssueSamlResponseRequest
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1IssueSamlResponseResponse: Response for
// IssueSamlResponse request.
type GoogleCloudIdentitytoolkitV1IssueSamlResponseResponse struct {
	// AcsEndpoint: The ACS endpoint which consumes the returned
	// SAMLResponse.
	AcsEndpoint string `json:"acsEndpoint,omitempty"`

	// Email: Email of the user.
	Email string `json:"email,omitempty"`

	// FirstName: First name of the user.
	FirstName string `json:"firstName,omitempty"`

	// IsNewUser: Whether the logged in user was created by this request.
	IsNewUser bool `json:"isNewUser,omitempty"`

	// LastName: Last name of the user.
	LastName string `json:"lastName,omitempty"`

	// RelayState: Generated RelayState.
	RelayState string `json:"relayState,omitempty"`

	// SamlResponse: Signed SAMLResponse created for the Relying Party.
	SamlResponse string `json:"samlResponse,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "AcsEndpoint") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "AcsEndpoint") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1IssueSamlResponseResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1IssueSamlResponseResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1MfaEnrollment: Information on which
// multi-factor authentication (MFA) providers are enabled for an
// account.
type GoogleCloudIdentitytoolkitV1MfaEnrollment struct {
	// DisplayName: Display name for this mfa option e.g. "corp cell phone".
	DisplayName string `json:"displayName,omitempty"`

	// EmailInfo: Contains information specific to email MFA.
	EmailInfo *GoogleCloudIdentitytoolkitV1EmailInfo `json:"emailInfo,omitempty"`

	// EnrolledAt: Timestamp when the account enrolled this second factor.
	EnrolledAt string `json:"enrolledAt,omitempty"`

	// MfaEnrollmentId: ID of this MFA option.
	MfaEnrollmentId string `json:"mfaEnrollmentId,omitempty"`

	// PhoneInfo: Normally this will show the phone number associated with
	// this enrollment. In some situations, such as after a first factor
	// sign in, it will only show the obfuscated version of the associated
	// phone number.
	PhoneInfo string `json:"phoneInfo,omitempty"`

	// TotpInfo: Contains information specific to TOTP MFA.
	TotpInfo *GoogleCloudIdentitytoolkitV1TotpInfo `json:"totpInfo,omitempty"`

	// UnobfuscatedPhoneInfo: Output only. Unobfuscated phone_info.
	UnobfuscatedPhoneInfo string `json:"unobfuscatedPhoneInfo,omitempty"`

	// ForceSendFields is a list of field names (e.g. "DisplayName") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "DisplayName") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1MfaEnrollment) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1MfaEnrollment
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

type GoogleCloudIdentitytoolkitV1MfaFactor struct {
	// DisplayName: Display name for this mfa option e.g. "corp cell phone".
	DisplayName string `json:"displayName,omitempty"`

	// PhoneInfo: Phone number to receive OTP for MFA.
	PhoneInfo string `json:"phoneInfo,omitempty"`

	// ForceSendFields is a list of field names (e.g. "DisplayName") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "DisplayName") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1MfaFactor) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1MfaFactor
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1MfaInfo: Multi-factor authentication
// related information.
type GoogleCloudIdentitytoolkitV1MfaInfo struct {
	// Enrollments: The second factors the user has enrolled.
	Enrollments []*GoogleCloudIdentitytoolkitV1MfaEnrollment `json:"enrollments,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Enrollments") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Enrollments") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1MfaInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1MfaInfo
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1OpenIdConnectKey: Represents a public key
// of the session cookie signer, formatted as a JSON Web Key (JWK)
// (https://tools.ietf.org/html/rfc7517).
type GoogleCloudIdentitytoolkitV1OpenIdConnectKey struct {
	// Alg: Signature algorithm.
	Alg string `json:"alg,omitempty"`

	// E: Exponent for the RSA public key, it is represented as the
	// base64url encoding of the value's big endian representation.
	E string `json:"e,omitempty"`

	// Kid: Unique string to identify this key.
	Kid string `json:"kid,omitempty"`

	// Kty: Key type.
	Kty string `json:"kty,omitempty"`

	// N: Modulus for the RSA public key, it is represented as the base64url
	// encoding of the value's big endian representation.
	N string `json:"n,omitempty"`

	// Use: Key use.
	Use string `json:"use,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Alg") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Alg") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1OpenIdConnectKey) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1OpenIdConnectKey
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1ProviderUserInfo: Information about the
// user as provided by various Identity Providers.
type GoogleCloudIdentitytoolkitV1ProviderUserInfo struct {
	// DisplayName: The user's display name at the Identity Provider.
	DisplayName string `json:"displayName,omitempty"`

	// Email: The user's email address at the Identity Provider.
	Email string `json:"email,omitempty"`

	// FederatedId: The user's identifier at the Identity Provider.
	FederatedId string `json:"federatedId,omitempty"`

	// PhoneNumber: The user's phone number at the Identity Provider.
	PhoneNumber string `json:"phoneNumber,omitempty"`

	// PhotoUrl: The user's profile photo URL at the Identity Provider.
	PhotoUrl string `json:"photoUrl,omitempty"`

	// ProviderId: The ID of the Identity Provider.
	ProviderId string `json:"providerId,omitempty"`

	// RawId: The user's raw identifier directly returned from Identity
	// Provider.
	RawId string `json:"rawId,omitempty"`

	// ScreenName: The user's screen_name at Twitter or login name at
	// GitHub.
	ScreenName string `json:"screenName,omitempty"`

	// ForceSendFields is a list of field names (e.g. "DisplayName") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "DisplayName") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1ProviderUserInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1ProviderUserInfo
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1QueryUserInfoRequest: Request message for
// QueryUserInfo.
type GoogleCloudIdentitytoolkitV1QueryUserInfoRequest struct {
	// Expression: Query conditions used to filter results. If more than one
	// is passed, only the first SqlExpression is evaluated.
	Expression []*GoogleCloudIdentitytoolkitV1SqlExpression `json:"expression,omitempty"`

	// Limit: The maximum number of accounts to return with an upper limit
	// of __500__. Defaults to _500_. Only valid when `return_user_info` is
	// set to `true`.
	Limit int64 `json:"limit,omitempty,string"`

	// Offset: The number of accounts to skip from the beginning of matching
	// records. Only valid when `return_user_info` is set to `true`.
	Offset int64 `json:"offset,omitempty,string"`

	// Order: The order for sorting query result. Defaults to __ascending__
	// order. Only valid when `return_user_info` is set to `true`.
	//
	// Possible values:
	//   "ORDER_UNSPECIFIED" - Order is not specified.
	//   "ASC" - Sort on ascending order.
	//   "DESC" - Sort on descending order.
	Order string `json:"order,omitempty"`

	// ReturnUserInfo: If `true`, this request will return the accounts
	// matching the query. If `false`, only the __count__ of accounts
	// matching the query will be returned. Defaults to `true`.
	ReturnUserInfo bool `json:"returnUserInfo,omitempty"`

	// SortBy: The field to use for sorting user accounts. Defaults to
	// `USER_ID`. Note: when `phone_number` is specified in `expression`,
	// the result ignores the sorting. Only valid when `return_user_info` is
	// set to `true`.
	//
	// Possible values:
	//   "SORT_BY_FIELD_UNSPECIFIED" - Sort field is not specified.
	//   "USER_ID" - Sort result by userId.
	//   "NAME" - Sort result by name.
	//   "CREATED_AT" - Sort result by createdAt.
	//   "LAST_LOGIN_AT" - Sort result by lastLoginAt.
	//   "USER_EMAIL" - Sort result by userEmail.
	SortBy string `json:"sortBy,omitempty"`

	// TenantId: The ID of the tenant to which the result is scoped.
	TenantId string `json:"tenantId,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Expression") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Expression") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1QueryUserInfoRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1QueryUserInfoRequest
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1QueryUserInfoResponse: Response message
// for QueryUserInfo.
type GoogleCloudIdentitytoolkitV1QueryUserInfoResponse struct {
	// RecordsCount: If `return_user_info` in the request is true, this is
	// the number of returned accounts in this message. Otherwise, this is
	// the total number of accounts matching the query.
	RecordsCount int64 `json:"recordsCount,omitempty,string"`

	// UserInfo: If `return_user_info` in the request is true, this is the
	// accounts matching the query.
	UserInfo []*GoogleCloudIdentitytoolkitV1UserInfo `json:"userInfo,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "RecordsCount") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "RecordsCount") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1QueryUserInfoResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1QueryUserInfoResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1ResetPasswordRequest: Request message for
// ResetPassword.
type GoogleCloudIdentitytoolkitV1ResetPasswordRequest struct {
	// Email: The email of the account to be modified. Specify this and the
	// old password in order to change an account's password without using
	// an out-of-band code.
	Email string `json:"email,omitempty"`

	// NewPassword: The new password to be set for this account. Specifying
	// this field will result in a change to the account and consume the
	// out-of-band code if one was specified and it was of type
	// PASSWORD_RESET.
	NewPassword string `json:"newPassword,omitempty"`

	// OldPassword: The current password of the account to be modified.
	// Specify this and email to change an account's password without using
	// an out-of-band code.
	OldPassword string `json:"oldPassword,omitempty"`

	// OobCode: An out-of-band (OOB) code generated by GetOobCode request.
	// Specify only this parameter (or only this parameter and a tenant ID)
	// to get the out-of-band code's type in the response without mutating
	// the account's state. Only a PASSWORD_RESET out-of-band code can be
	// consumed via this method.
	OobCode string `json:"oobCode,omitempty"`

	// TenantId: The tenant ID of the Identity Platform tenant the account
	// belongs to.
	TenantId string `json:"tenantId,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Email") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Email") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1ResetPasswordRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1ResetPasswordRequest
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1ResetPasswordResponse: Response message
// for ResetPassword.
type GoogleCloudIdentitytoolkitV1ResetPasswordResponse struct {
	// Email: The email associated with the out-of-band code that was used.
	Email string `json:"email,omitempty"`

	Kind string `json:"kind,omitempty"`

	MfaInfo *GoogleCloudIdentitytoolkitV1MfaEnrollment `json:"mfaInfo,omitempty"`

	NewEmail string `json:"newEmail,omitempty"`

	// Possible values:
	//   "OOB_REQ_TYPE_UNSPECIFIED" - Oob code type is not specified.
	//   "PASSWORD_RESET" - reset password
	//   "OLD_EMAIL_AGREE"
	//   "NEW_EMAIL_ACCEPT"
	//   "VERIFY_EMAIL" - verify the account's email address by sending an
	// email
	//   "RECOVER_EMAIL"
	//   "EMAIL_SIGNIN" - sign in with email only
	//   "VERIFY_AND_CHANGE_EMAIL" - This flow sends an email to the
	// specified new email, and when applied by clicking the link in the
	// email changes the account's email to the new email. Used when the
	// account must have verified email at all times, such as MFA accounts.
	//   "REVERT_SECOND_FACTOR_ADDITION"
	RequestType string `json:"requestType,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "Email") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Email") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1ResetPasswordResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1ResetPasswordResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1SendVerificationCodeRequest: Request
// message for SendVerificationCode. At least one of (`ios_receipt` and
// `ios_secret`), `recaptcha_token`, or `safety_net_token` must be
// specified to verify the verification code is being sent on behalf of
// a real app and not an emulator.
type GoogleCloudIdentitytoolkitV1SendVerificationCodeRequest struct {
	// AutoRetrievalInfo: Android only. Used by Google Play Services to
	// identify the app for auto-retrieval.
	AutoRetrievalInfo *GoogleCloudIdentitytoolkitV1AutoRetrievalInfo `json:"autoRetrievalInfo,omitempty"`

	// IosReceipt: Receipt of successful iOS app token validation. At least
	// one of (`ios_receipt` and `ios_secret`), `recaptcha_token`, or
	// `safety_net_token` must be specified to verify the verification code
	// is being sent on behalf of a real app and not an emulator. This
	// should come from the response of verifyIosClient. If present, the
	// caller should also provide the `ios_secret`, as well as a bundle ID
	// in the `x-ios-bundle-identifier` header, which must match the bundle
	// ID from the verifyIosClient request.
	IosReceipt string `json:"iosReceipt,omitempty"`

	// IosSecret: Secret delivered to iOS app as a push notification. Should
	// be passed with an `ios_receipt` as well as the
	// `x-ios-bundle-identifier` header.
	IosSecret string `json:"iosSecret,omitempty"`

	// PhoneNumber: The phone number to send the verification code to in
	// E.164 format.
	PhoneNumber string `json:"phoneNumber,omitempty"`

	// PlayIntegrityToken: Android only. Used to assert application identity
	// in place of a recaptcha token (and safety_net_token). At least one of
	// (`ios_receipt` and `ios_secret`), `recaptcha_token`, , or
	// `play_integrity_token` must be specified to verify the verification
	// code is being sent on behalf of a real app and not an emulator. A
	// Play Integrity Token can be generated via the PlayIntegrity API
	// (https://developer.android.com/google/play/integrity) with applying
	// SHA256 to the `phone_number` field as the nonce.
	PlayIntegrityToken string `json:"playIntegrityToken,omitempty"`

	// RecaptchaToken: Recaptcha token for app verification. At least one of
	// (`ios_receipt` and `ios_secret`), `recaptcha_token`, or
	// `safety_net_token` must be specified to verify the verification code
	// is being sent on behalf of a real app and not an emulator. The
	// recaptcha should be generated by calling getRecaptchaParams and the
	// recaptcha token will be generated on user completion of the recaptcha
	// challenge.
	RecaptchaToken string `json:"recaptchaToken,omitempty"`

	// SafetyNetToken: Android only. Used to assert application identity in
	// place of a recaptcha token. At least one of (`ios_receipt` and
	// `ios_secret`), `recaptcha_token`, or `safety_net_token` must be
	// specified to verify the verification code is being sent on behalf of
	// a real app and not an emulator. A SafetyNet Token can be generated
	// via the SafetyNet Android Attestation API
	// (https://developer.android.com/training/safetynet/attestation.html),
	// with the Base64 encoding of the `phone_number` field as the nonce.
	SafetyNetToken string `json:"safetyNetToken,omitempty"`

	// TenantId: Tenant ID of the Identity Platform tenant the user is
	// signing in to.
	TenantId string `json:"tenantId,omitempty"`

	// ForceSendFields is a list of field names (e.g. "AutoRetrievalInfo")
	// to unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "AutoRetrievalInfo") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1SendVerificationCodeRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1SendVerificationCodeRequest
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1SendVerificationCodeResponse: Response
// message for SendVerificationCode.
type GoogleCloudIdentitytoolkitV1SendVerificationCodeResponse struct {
	// SessionInfo: Encrypted session information. This can be used in
	// signInWithPhoneNumber to authenticate the phone number.
	SessionInfo string `json:"sessionInfo,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "SessionInfo") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "SessionInfo") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1SendVerificationCodeResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1SendVerificationCodeResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1SetAccountInfoRequest: Request message
// for SetAccountInfo.
type GoogleCloudIdentitytoolkitV1SetAccountInfoRequest struct {
	CaptchaChallenge string `json:"captchaChallenge,omitempty"`

	// CaptchaResponse: The response from reCaptcha challenge. This is
	// required when the system detects possible abuse activities.
	CaptchaResponse string `json:"captchaResponse,omitempty"`

	// CreatedAt: The timestamp in milliseconds when the account was
	// created.
	CreatedAt int64 `json:"createdAt,omitempty,string"`

	// CustomAttributes: JSON formatted custom attributes to be stored in
	// the Identity Platform ID token. Specifying this field requires a
	// Google OAuth 2.0 credential with proper [permissions]
	// (https://cloud.google.com/identity-platform/docs/access-control).
	CustomAttributes string `json:"customAttributes,omitempty"`

	DelegatedProjectNumber int64 `json:"delegatedProjectNumber,omitempty,string"`

	// DeleteAttribute: The account's attributes to be deleted.
	//
	// Possible values:
	//   "USER_ATTRIBUTE_NAME_UNSPECIFIED" - User attribute name is not
	// specified.
	//   "EMAIL" - User attribute key name is email.
	//   "DISPLAY_NAME" - User attribute key name is displayName.
	//   "PROVIDER" - User attribute key name is provider.
	//   "PHOTO_URL" - User attribute key name is photoURL.
	//   "PASSWORD" - User attribute key name is password.
	//   "RAW_USER_INFO" - User attribute key name is rawUserInfo.
	DeleteAttribute []string `json:"deleteAttribute,omitempty"`

	// DeleteProvider: The Identity Providers to unlink from the user's
	// account.
	DeleteProvider []string `json:"deleteProvider,omitempty"`

	// DisableUser: If true, marks the account as disabled, meaning the user
	// will no longer be able to sign-in.
	DisableUser bool `json:"disableUser,omitempty"`

	// DisplayName: The user's new display name to be updated in the
	// account's attributes. The length of the display name must be less
	// than or equal to 256 characters.
	DisplayName string `json:"displayName,omitempty"`

	// Email: The user's new email to be updated in the account's
	// attributes. The length of email should be less than 256 characters
	// and in the format of `name@domain.tld`. The email should also match
	// the RFC 822 (https://tools.ietf.org/html/rfc822) addr-spec
	// production. If email enumeration protection
	// (https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection)
	// is enabled, the email cannot be changed by the user without verifying
	// the email first, but it can be changed by an administrator.
	Email string `json:"email,omitempty"`

	// EmailVerified: Whether the user's email has been verified. Specifying
	// this field requires a Google OAuth 2.0 credential with proper
	// [permissions]
	// (https://cloud.google.com/identity-platform/docs/access-control).
	EmailVerified bool `json:"emailVerified,omitempty"`

	// IdToken: A valid Identity Platform ID token. Required when attempting
	// to change user-related information.
	IdToken string `json:"idToken,omitempty"`

	InstanceId string `json:"instanceId,omitempty"`

	// LastLoginAt: The timestamp in milliseconds when the account last
	// logged in.
	LastLoginAt int64 `json:"lastLoginAt,omitempty,string"`

	// LinkProviderUserInfo: The provider to be linked to the user's
	// account. Specifying this field requires a Google OAuth 2.0 credential
	// with proper [permissions]
	// (https://cloud.google.com/identity-platform/docs/access-control).
	LinkProviderUserInfo *GoogleCloudIdentitytoolkitV1ProviderUserInfo `json:"linkProviderUserInfo,omitempty"`

	// LocalId: The ID of the user. Specifying this field requires a Google
	// OAuth 2.0 credential with proper [permissions]
	// (https://cloud.google.com/identity-platform/docs/access-control). For
	// requests from end-users, an ID token should be passed instead.
	LocalId string `json:"localId,omitempty"`

	// Mfa: The multi-factor authentication related information to be set on
	// the user's account. This will overwrite any previous multi-factor
	// related information on the account. Specifying this field requires a
	// Google OAuth 2.0 credential with proper [permissions]
	// (https://cloud.google.com/identity-platform/docs/access-control).
	Mfa *GoogleCloudIdentitytoolkitV1MfaInfo `json:"mfa,omitempty"`

	// OobCode: The out-of-band code to be applied on the user's account.
	// The following out-of-band code types are supported: * VERIFY_EMAIL *
	// RECOVER_EMAIL * REVERT_SECOND_FACTOR_ADDITION *
	// VERIFY_AND_CHANGE_EMAIL
	OobCode string `json:"oobCode,omitempty"`

	// Password: The user's new password to be updated in the account's
	// attributes. The password must be at least 6 characters long.
	Password string `json:"password,omitempty"`

	// PhoneNumber: The phone number to be updated in the account's
	// attributes.
	PhoneNumber string `json:"phoneNumber,omitempty"`

	// PhotoUrl: The user's new photo URL for the account's profile photo to
	// be updated in the account's attributes. The length of the URL must be
	// less than or equal to 2048 characters.
	PhotoUrl string `json:"photoUrl,omitempty"`

	// Provider: The Identity Providers that the account should be
	// associated with.
	Provider []string `json:"provider,omitempty"`

	// ReturnSecureToken: Whether or not to return an ID and refresh token.
	// Should always be true.
	ReturnSecureToken bool `json:"returnSecureToken,omitempty"`

	// TargetProjectId: The project ID for the project that the account
	// belongs to. Specifying this field requires Google OAuth 2.0
	// credential with proper [permissions]
	// (https://cloud.google.com/identity-platform/docs/access-control).
	// Requests from end users should pass an Identity Platform ID token
	// instead.
	TargetProjectId string `json:"targetProjectId,omitempty"`

	// TenantId: The tenant ID of the Identity Platform tenant that the
	// account belongs to. Requests from end users should pass an Identity
	// Platform ID token rather than setting this field.
	TenantId string `json:"tenantId,omitempty"`

	// UpgradeToFederatedLogin: Whether the account should be restricted to
	// only using federated login.
	UpgradeToFederatedLogin bool `json:"upgradeToFederatedLogin,omitempty"`

	// ValidSince: Specifies the minimum timestamp in seconds for an
	// Identity Platform ID token to be considered valid.
	ValidSince int64 `json:"validSince,omitempty,string"`

	// ForceSendFields is a list of field names (e.g. "CaptchaChallenge") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "CaptchaChallenge") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1SetAccountInfoRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1SetAccountInfoRequest
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1SetAccountInfoResponse: Response message
// for SetAccountInfo
type GoogleCloudIdentitytoolkitV1SetAccountInfoResponse struct {
	// DisplayName: The account's display name.
	DisplayName string `json:"displayName,omitempty"`

	// Email: The account's email address.
	Email string `json:"email,omitempty"`

	// EmailVerified: Whether the account's email has been verified.
	EmailVerified bool `json:"emailVerified,omitempty"`

	// ExpiresIn: The number of seconds until the Identity Platform ID token
	// expires.
	ExpiresIn int64 `json:"expiresIn,omitempty,string"`

	// IdToken: An Identity Platform ID token for the account. This is used
	// for legacy user sign up.
	IdToken string `json:"idToken,omitempty"`

	Kind string `json:"kind,omitempty"`

	// LocalId: The ID of the authenticated user.
	LocalId string `json:"localId,omitempty"`

	// NewEmail: The new email that has been set on the user's account
	// attributes.
	NewEmail string `json:"newEmail,omitempty"`

	// PasswordHash: Deprecated. No actual password hash is currently
	// returned.
	PasswordHash string `json:"passwordHash,omitempty"`

	// PhotoUrl: The user's photo URL for the account's profile photo.
	PhotoUrl string `json:"photoUrl,omitempty"`

	// ProviderUserInfo: The linked Identity Providers on the account.
	ProviderUserInfo []*GoogleCloudIdentitytoolkitV1ProviderUserInfo `json:"providerUserInfo,omitempty"`

	// RefreshToken: A refresh token for the account. This is used for
	// legacy user sign up.
	RefreshToken string `json:"refreshToken,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "DisplayName") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "DisplayName") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1SetAccountInfoResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1SetAccountInfoResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1SignInWithCustomTokenRequest: Request
// message for SignInWithCustomToken.
type GoogleCloudIdentitytoolkitV1SignInWithCustomTokenRequest struct {
	DelegatedProjectNumber int64 `json:"delegatedProjectNumber,omitempty,string"`

	InstanceId string `json:"instanceId,omitempty"`

	// ReturnSecureToken: Should always be true.
	ReturnSecureToken bool `json:"returnSecureToken,omitempty"`

	// TenantId: The ID of the Identity Platform tenant the user is signing
	// in to. If present, the ID should match the tenant_id in the token.
	TenantId string `json:"tenantId,omitempty"`

	// Token: Required. The custom Auth token asserted by the developer. The
	// token should be a JSON Web Token (JWT)
	// (https://tools.ietf.org/html/rfc7519) that includes the claims listed
	// in the API reference
	// (https://cloud.google.com/identity-platform/docs/reference/rest/client/)
	// under the "Custom Token Claims" section.
	Token string `json:"token,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "DelegatedProjectNumber") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. However, any non-pointer, non-interface field appearing in
	// ForceSendFields will be sent to the server regardless of whether the
	// field is empty or not. This may be used to include empty fields in
	// Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "DelegatedProjectNumber")
	// to include in API requests with the JSON null value. By default,
	// fields with empty values are omitted from API requests. However, any
	// field with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1SignInWithCustomTokenRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1SignInWithCustomTokenRequest
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1SignInWithCustomTokenResponse: Response
// message for SignInWithCustomToken.
type GoogleCloudIdentitytoolkitV1SignInWithCustomTokenResponse struct {
	// ExpiresIn: The number of seconds until the ID token expires.
	ExpiresIn int64 `json:"expiresIn,omitempty,string"`

	// IdToken: An Identity Platform ID token for the authenticated user.
	IdToken string `json:"idToken,omitempty"`

	// IsNewUser: Whether the authenticated user was created by this
	// request.
	IsNewUser bool `json:"isNewUser,omitempty"`

	Kind string `json:"kind,omitempty"`

	// RefreshToken: An Identity Platform refresh token for the
	// authenticated user.
	RefreshToken string `json:"refreshToken,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "ExpiresIn") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ExpiresIn") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1SignInWithCustomTokenResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1SignInWithCustomTokenResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1SignInWithEmailLinkRequest: Request
// message for SignInWithEmailLink
type GoogleCloudIdentitytoolkitV1SignInWithEmailLinkRequest struct {
	// Email: Required. The email address the sign-in link was sent to. The
	// length of email should be less than 256 characters and in the format
	// of `name@domain.tld`. The email should also match the RFC 822
	// (https://tools.ietf.org/html/rfc822) addr-spec production.
	Email string `json:"email,omitempty"`

	// IdToken: A valid ID token for an Identity Platform account. If
	// passed, this request will link the email address to the user
	// represented by this ID token and enable sign-in with email link on
	// the account for the future.
	IdToken string `json:"idToken,omitempty"`

	// OobCode: Required. The out-of-band code from the email link.
	OobCode string `json:"oobCode,omitempty"`

	// TenantId: The ID of the Identity Platform tenant the user is signing
	// in to. If not set, the user will sign in to the default Identity
	// Platform project.
	TenantId string `json:"tenantId,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Email") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Email") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1SignInWithEmailLinkRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1SignInWithEmailLinkRequest
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1SignInWithEmailLinkResponse: Response
// message for SignInWithEmailLink.
type GoogleCloudIdentitytoolkitV1SignInWithEmailLinkResponse struct {
	// Email: The email the user signed in with. Always present in the
	// response.
	Email string `json:"email,omitempty"`

	// ExpiresIn: The number of seconds until the ID token expires.
	ExpiresIn int64 `json:"expiresIn,omitempty,string"`

	// IdToken: An Identity Platform ID token for the authenticated user.
	IdToken string `json:"idToken,omitempty"`

	// IsNewUser: Whether the authenticated user was created by this
	// request.
	IsNewUser bool `json:"isNewUser,omitempty"`

	Kind string `json:"kind,omitempty"`

	// LocalId: The ID of the authenticated user. Always present in the
	// response.
	LocalId string `json:"localId,omitempty"`

	// MfaInfo: Info on which multi-factor authentication providers are
	// enabled. Present if the user needs to complete the sign-in using
	// multi-factor authentication.
	MfaInfo []*GoogleCloudIdentitytoolkitV1MfaEnrollment `json:"mfaInfo,omitempty"`

	// MfaPendingCredential: An opaque string that functions as proof that
	// the user has successfully passed the first factor check.
	MfaPendingCredential string `json:"mfaPendingCredential,omitempty"`

	// RefreshToken: Refresh token for the authenticated user.
	RefreshToken string `json:"refreshToken,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "Email") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Email") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1SignInWithEmailLinkResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1SignInWithEmailLinkResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1SignInWithGameCenterRequest: Request
// message for SignInWithGameCenter
type GoogleCloudIdentitytoolkitV1SignInWithGameCenterRequest struct {
	// DisplayName: The user's Game Center display name.
	DisplayName string `json:"displayName,omitempty"`

	// GamePlayerId: The user's Game Center game player ID. A unique
	// identifier for a player of the game.
	// https://developer.apple.com/documentation/gamekit/gkplayer/3113960-gameplayerid
	GamePlayerId string `json:"gamePlayerId,omitempty"`

	// IdToken: A valid ID token for an Identity Platform account. If
	// present, this request will link the Game Center player ID to the
	// account represented by this ID token.
	IdToken string `json:"idToken,omitempty"`

	// PlayerId: Required. The user's Game Center player ID. Deprecated by
	// Apple. Pass `playerID` along with `gamePlayerID` and `teamPlayerID`
	// to initiate the migration of a user's Game Center player ID to
	// `gamePlayerID`.
	PlayerId string `json:"playerId,omitempty"`

	// PublicKeyUrl: Required. The URL to fetch the Apple public key in
	// order to verify the given signature is signed by Apple.
	PublicKeyUrl string `json:"publicKeyUrl,omitempty"`

	// Salt: Required. A random string used to generate the given signature.
	Salt string `json:"salt,omitempty"`

	// Signature: Required. The verification signature data generated by
	// Apple.
	Signature string `json:"signature,omitempty"`

	// TeamPlayerId: The user's Game Center team player ID. A unique
	// identifier for a player of all the games that you distribute using
	// your developer account.
	// https://developer.apple.com/documentation/gamekit/gkplayer/3174857-teamplayerid
	TeamPlayerId string `json:"teamPlayerId,omitempty"`

	// TenantId: The ID of the Identity Platform tenant the user is signing
	// in to.
	TenantId string `json:"tenantId,omitempty"`

	// Timestamp: Required. The time when the signature was created by
	// Apple, in milliseconds since the epoch.
	Timestamp int64 `json:"timestamp,omitempty,string"`

	// ForceSendFields is a list of field names (e.g. "DisplayName") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "DisplayName") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1SignInWithGameCenterRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1SignInWithGameCenterRequest
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1SignInWithGameCenterResponse: Response
// message for SignInWithGameCenter
type GoogleCloudIdentitytoolkitV1SignInWithGameCenterResponse struct {
	// DisplayName: Display name of the authenticated user.
	DisplayName string `json:"displayName,omitempty"`

	// ExpiresIn: The number of seconds until the ID token expires.
	ExpiresIn int64 `json:"expiresIn,omitempty,string"`

	// GamePlayerId: The user's Game Center game player ID. A unique
	// identifier for a player of the game.
	// https://developer.apple.com/documentation/gamekit/gkplayer/3113960-gameplayerid
	GamePlayerId string `json:"gamePlayerId,omitempty"`

	// IdToken: An Identity Platform ID token for the authenticated user.
	IdToken string `json:"idToken,omitempty"`

	// IsNewUser: Whether the logged in user was created by this request.
	IsNewUser bool `json:"isNewUser,omitempty"`

	// LocalId: The ID of the authenticated user. Always present in the
	// response.
	LocalId string `json:"localId,omitempty"`

	// PlayerId: The user's Game Center player ID. Pass `playerID` along
	// with `gamePlayerID` and `teamPlayerID` to initiate the migration of a
	// user's Game Center player ID to `gamePlayerID`.
	PlayerId string `json:"playerId,omitempty"`

	// RefreshToken: An Identity Platform refresh token for the
	// authenticated user.
	RefreshToken string `json:"refreshToken,omitempty"`

	// TeamPlayerId: The user's Game Center team player ID. A unique
	// identifier for a player of all the games that you distribute using
	// your developer account.
	// https://developer.apple.com/documentation/gamekit/gkplayer/3174857-teamplayerid
	TeamPlayerId string `json:"teamPlayerId,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "DisplayName") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "DisplayName") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1SignInWithGameCenterResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1SignInWithGameCenterResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1SignInWithIdpRequest: Request message for
// SignInWithIdp.
type GoogleCloudIdentitytoolkitV1SignInWithIdpRequest struct {
	AutoCreate bool `json:"autoCreate,omitempty"`

	DelegatedProjectNumber int64 `json:"delegatedProjectNumber,omitempty,string"`

	// IdToken: A valid Identity Platform ID token. If passed, the user's
	// account at the IdP will be linked to the account represented by this
	// ID token.
	IdToken string `json:"idToken,omitempty"`

	PendingIdToken string `json:"pendingIdToken,omitempty"`

	// PendingToken: An opaque string from a previous SignInWithIdp
	// response. If set, it can be used to repeat the sign-in operation from
	// the previous SignInWithIdp operation. This may be present if the user
	// needs to confirm their account information as part of a previous
	// federated login attempt, or perform account linking.
	PendingToken string `json:"pendingToken,omitempty"`

	// PostBody: If the user is signing in with an authorization response
	// obtained via a previous CreateAuthUri authorization request, this is
	// the body of the HTTP POST callback from the IdP, if present.
	// Otherwise, if the user is signing in with a manually provided IdP
	// credential, this should be a URL-encoded form that contains the
	// credential (e.g. an ID token or access token for OAuth 2.0 IdPs) and
	// the provider ID of the IdP that issued the credential. For example,
	// if the user is signing in to the Google provider using a Google ID
	// token, this should be set to
	// id_token`=[GOOGLE_ID_TOKEN]&providerId=google.com`, where
	// `[GOOGLE_ID_TOKEN]` should be replaced with the Google ID token. If
	// the user is signing in to the Facebook provider using a Facebook
	// authentication token, this should be set to
	// id_token`=[FACEBOOK_AUTHENTICATION_TOKEN]&providerId=facebook.
	// com&nonce= [NONCE]`, where `[FACEBOOK_AUTHENTICATION_TOKEN]` should
	// be replaced with the Facebook authentication token. Nonce is required
	// for validating the token. The request will fail if no nonce is
	// provided. If the user is signing in to the Facebook provider using a
	// Facebook access token, this should be set to
	// access_token`=[FACEBOOK_ACCESS_TOKEN]&providerId=facebook. com`,
	// where `[FACEBOOK_ACCESS_TOKEN]` should be replaced with the Facebook
	// access token. If the user is signing in to the Twitter provider using
	// a Twitter OAuth 1.0 credential, this should be set to
	// access_token`=[TWITTER_ACCESS_TOKEN]&oauth_token_secret=
	// [TWITTER_TOKEN_SECRET]&providerId=twitter.com`, where
	// `[TWITTER_ACCESS_TOKEN]` and `[TWITTER_TOKEN_SECRET]` should be
	// replaced with the Twitter OAuth access token and Twitter OAuth token
	// secret respectively.
	PostBody string `json:"postBody,omitempty"`

	// RequestUri: Required. The URL to which the IdP redirects the user
	// back. This can be set to `http://localhost` if the user is signing in
	// with a manually provided IdP credential.
	RequestUri string `json:"requestUri,omitempty"`

	// ReturnIdpCredential: Whether or not to return OAuth credentials from
	// the IdP on the following errors: `FEDERATED_USER_ID_ALREADY_LINKED`
	// and `EMAIL_EXISTS`.
	ReturnIdpCredential bool `json:"returnIdpCredential,omitempty"`

	// ReturnRefreshToken: Whether or not to return the OAuth refresh token
	// from the IdP, if available.
	ReturnRefreshToken bool `json:"returnRefreshToken,omitempty"`

	// ReturnSecureToken: Should always be true.
	ReturnSecureToken bool `json:"returnSecureToken,omitempty"`

	// SessionId: The session ID returned from a previous CreateAuthUri
	// call. This field is verified against that session ID to prevent
	// session fixation attacks. Required if the user is signing in with an
	// authorization response from a previous CreateAuthUri authorization
	// request.
	SessionId string `json:"sessionId,omitempty"`

	// TenantId: The ID of the Identity Platform tenant the user is signing
	// in to. If not set, the user will sign in to the default Identity
	// Platform project.
	TenantId string `json:"tenantId,omitempty"`

	// ForceSendFields is a list of field names (e.g. "AutoCreate") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "AutoCreate") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1SignInWithIdpRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1SignInWithIdpRequest
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1SignInWithIdpResponse: Response message
// for SignInWithIdp.
type GoogleCloudIdentitytoolkitV1SignInWithIdpResponse struct {
	// Context: The opaque string set in CreateAuthUri that is used to
	// maintain contextual information between the authentication request
	// and the callback from the IdP.
	Context string `json:"context,omitempty"`

	// DateOfBirth: The date of birth for the user's account at the IdP.
	DateOfBirth string `json:"dateOfBirth,omitempty"`

	// DisplayName: The display name for the user's account at the IdP.
	DisplayName string `json:"displayName,omitempty"`

	// Email: The email address of the user's account at the IdP.
	Email string `json:"email,omitempty"`

	// EmailRecycled: Whether or not there is an existing Identity Platform
	// user account with the same email address but linked to a different
	// account at the same IdP. Only present if the "One account per email
	// address" setting is enabled and the email address at the IdP is
	// verified.
	EmailRecycled bool `json:"emailRecycled,omitempty"`

	// EmailVerified: Whether the user account's email address is verified.
	EmailVerified bool `json:"emailVerified,omitempty"`

	// ErrorMessage: The error message returned if `return_idp_credential`
	// is set to `true` and either the `FEDERATED_USER_ID_ALREADY_LINKED` or
	// `EMAIL_EXISTS` error is encountered. This field's value is either
	// `FEDERATED_USER_ID_ALREADY_LINKED` or `EMAIL_EXISTS`.
	ErrorMessage string `json:"errorMessage,omitempty"`

	// ExpiresIn: The number of seconds until the Identity Platform ID token
	// expires.
	ExpiresIn int64 `json:"expiresIn,omitempty,string"`

	// FederatedId: The user's account ID at the IdP. Always present in the
	// response.
	FederatedId string `json:"federatedId,omitempty"`

	// FirstName: The first name for the user's account at the IdP.
	FirstName string `json:"firstName,omitempty"`

	// FullName: The full name for the user's account at the IdP.
	FullName string `json:"fullName,omitempty"`

	// IdToken: An Identity Platform ID token for the authenticated user.
	IdToken string `json:"idToken,omitempty"`

	InputEmail string `json:"inputEmail,omitempty"`

	// IsNewUser: Whether or not a new Identity Platform account was created
	// for the authenticated user.
	IsNewUser bool `json:"isNewUser,omitempty"`

	Kind string `json:"kind,omitempty"`

	// Language: The language preference for the user's account at the IdP.
	Language string `json:"language,omitempty"`

	// LastName: The last name for the user's account at the IdP.
	LastName string `json:"lastName,omitempty"`

	// LocalId: The ID of the authenticated Identity Platform user. Always
	// present in the response.
	LocalId string `json:"localId,omitempty"`

	// MfaInfo: Info on which multi-factor authentication providers are
	// enabled for the account. Present if the user needs to complete the
	// sign-in using multi-factor authentication.
	MfaInfo []*GoogleCloudIdentitytoolkitV1MfaEnrollment `json:"mfaInfo,omitempty"`

	// MfaPendingCredential: An opaque string that functions as proof that
	// the user has successfully passed the first factor authentication.
	MfaPendingCredential string `json:"mfaPendingCredential,omitempty"`

	// NeedConfirmation: Whether or not there is an existing Identity
	// Platform user account with the same email address as the current
	// account signed in at the IdP, and the account's email addresss is not
	// verified at the IdP. The user will need to sign in to the existing
	// Identity Platform account and then link the current credential from
	// the IdP to it. Only present if the "One account per email address"
	// setting is enabled.
	NeedConfirmation bool `json:"needConfirmation,omitempty"`

	NeedEmail bool `json:"needEmail,omitempty"`

	// NickName: The nickname for the user's account at the IdP.
	NickName string `json:"nickName,omitempty"`

	// OauthAccessToken: The OAuth access token from the IdP, if available.
	OauthAccessToken string `json:"oauthAccessToken,omitempty"`

	// OauthAuthorizationCode: The OAuth 2.0 authorization code, if
	// available. Only present for the Google provider.
	OauthAuthorizationCode string `json:"oauthAuthorizationCode,omitempty"`

	// OauthExpireIn: The number of seconds until the OAuth access token
	// from the IdP expires.
	OauthExpireIn int64 `json:"oauthExpireIn,omitempty"`

	// OauthIdToken: The OpenID Connect ID token from the IdP, if available.
	OauthIdToken string `json:"oauthIdToken,omitempty"`

	// OauthRefreshToken: The OAuth 2.0 refresh token from the IdP, if
	// available and `return_refresh_token` is set to `true`.
	OauthRefreshToken string `json:"oauthRefreshToken,omitempty"`

	// OauthTokenSecret: The OAuth 1.0 token secret from the IdP, if
	// available. Only present for the Twitter provider.
	OauthTokenSecret string `json:"oauthTokenSecret,omitempty"`

	// OriginalEmail: The main (top-level) email address of the user's
	// Identity Platform account, if different from the email address at the
	// IdP. Only present if the "One account per email address" setting is
	// enabled.
	OriginalEmail string `json:"originalEmail,omitempty"`

	// PendingToken: An opaque string that can be used as a credential from
	// the IdP the user is signing into. The pending token obtained here can
	// be set in a future SignInWithIdp request to sign the same user in
	// with the IdP again.
	PendingToken string `json:"pendingToken,omitempty"`

	// PhotoUrl: The URL of the user's profile picture at the IdP.
	PhotoUrl string `json:"photoUrl,omitempty"`

	// ProviderId: The provider ID of the IdP that the user is signing in
	// to. Always present in the response.
	ProviderId string `json:"providerId,omitempty"`

	// RawUserInfo: The stringified JSON response containing all the data
	// corresponding to the user's account at the IdP.
	RawUserInfo string `json:"rawUserInfo,omitempty"`

	// RefreshToken: An Identity Platform refresh token for the
	// authenticated user.
	RefreshToken string `json:"refreshToken,omitempty"`

	// ScreenName: The screen name for the user's account at the Twitter IdP
	// or the login name for the user's account at the GitHub IdP.
	ScreenName string `json:"screenName,omitempty"`

	// TenantId: The value of the `tenant_id` field in the request.
	TenantId string `json:"tenantId,omitempty"`

	// TimeZone: The time zone for the user's account at the IdP.
	TimeZone string `json:"timeZone,omitempty"`

	// VerifiedProvider: A list of provider IDs that the user can sign in to
	// in order to resolve a `need_confirmation` error. Only present if
	// `need_confirmation` is set to `true`.
	VerifiedProvider []string `json:"verifiedProvider,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "Context") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Context") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1SignInWithIdpResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1SignInWithIdpResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1SignInWithPasswordRequest: Request
// message for SignInWithPassword.
type GoogleCloudIdentitytoolkitV1SignInWithPasswordRequest struct {
	CaptchaChallenge string `json:"captchaChallenge,omitempty"`

	// CaptchaResponse: The reCAPTCHA token provided by the reCAPTCHA
	// client-side integration. reCAPTCHA Enterprise uses it for risk
	// assessment. Required when reCAPTCHA Enterprise is enabled.
	CaptchaResponse string `json:"captchaResponse,omitempty"`

	// ClientType: The client type, web, android or ios. Required when
	// reCAPTCHA Enterprise is enabled.
	//
	// Possible values:
	//   "CLIENT_TYPE_UNSPECIFIED" - Client type is not specified.
	//   "CLIENT_TYPE_WEB" - Client type is web.
	//   "CLIENT_TYPE_ANDROID" - Client type is android.
	//   "CLIENT_TYPE_IOS" - Client type is ios.
	ClientType string `json:"clientType,omitempty"`

	DelegatedProjectNumber int64 `json:"delegatedProjectNumber,omitempty,string"`

	// Email: Required. The email the user is signing in with. The length of
	// email should be less than 256 characters and in the format of
	// `name@domain.tld`. The email should also match the RFC 822
	// (https://tools.ietf.org/html/rfc822) addr-spec production.
	Email string `json:"email,omitempty"`

	IdToken string `json:"idToken,omitempty"`

	InstanceId string `json:"instanceId,omitempty"`

	// Password: Required. The password the user provides to sign in to the
	// account.
	Password string `json:"password,omitempty"`

	PendingIdToken string `json:"pendingIdToken,omitempty"`

	// RecaptchaVersion: The reCAPTCHA version of the reCAPTCHA token in the
	// captcha_response.
	//
	// Possible values:
	//   "RECAPTCHA_VERSION_UNSPECIFIED" - The reCAPTCHA version is not
	// specified.
	//   "RECAPTCHA_ENTERPRISE" - The reCAPTCHA enterprise.
	RecaptchaVersion string `json:"recaptchaVersion,omitempty"`

	// ReturnSecureToken: Should always be true.
	ReturnSecureToken bool `json:"returnSecureToken,omitempty"`

	// TenantId: The ID of the Identity Platform tenant the user is signing
	// in to. If not set, the user will sign in to the default Identity
	// Platform instance in the project.
	TenantId string `json:"tenantId,omitempty"`

	// ForceSendFields is a list of field names (e.g. "CaptchaChallenge") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "CaptchaChallenge") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1SignInWithPasswordRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1SignInWithPasswordRequest
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1SignInWithPasswordResponse: Response
// message for SignInWithPassword.
type GoogleCloudIdentitytoolkitV1SignInWithPasswordResponse struct {
	// DisplayName: The user's display name stored in the account's
	// attributes.
	DisplayName string `json:"displayName,omitempty"`

	// Email: The email of the authenticated user. Always present in the
	// response.
	Email string `json:"email,omitempty"`

	// ExpiresIn: The number of seconds until the Identity Platform ID token
	// expires.
	ExpiresIn int64 `json:"expiresIn,omitempty,string"`

	// IdToken: An Identity Platform ID token for the authenticated user.
	IdToken string `json:"idToken,omitempty"`

	Kind string `json:"kind,omitempty"`

	// LocalId: The ID of the authenticated user. Always present in the
	// response.
	LocalId string `json:"localId,omitempty"`

	// MfaInfo: Info on which multi-factor authentication providers are
	// enabled for the account. Present if the user needs to complete the
	// sign-in using multi-factor authentication.
	MfaInfo []*GoogleCloudIdentitytoolkitV1MfaEnrollment `json:"mfaInfo,omitempty"`

	// MfaPendingCredential: An opaque string that functions as proof that
	// the user has successfully passed the first factor authentication.
	MfaPendingCredential string `json:"mfaPendingCredential,omitempty"`

	// OauthAccessToken: The OAuth2 access token.
	OauthAccessToken string `json:"oauthAccessToken,omitempty"`

	OauthAuthorizationCode string `json:"oauthAuthorizationCode,omitempty"`

	// OauthExpireIn: The access token expiration time in seconds.
	OauthExpireIn int64 `json:"oauthExpireIn,omitempty"`

	// ProfilePicture: The user's profile picture stored in the account's
	// attributes.
	ProfilePicture string `json:"profilePicture,omitempty"`

	// RefreshToken: An Identity Platform refresh token for the
	// authenticated user.
	RefreshToken string `json:"refreshToken,omitempty"`

	// Registered: Whether the email is for an existing account. Always
	// true.
	Registered bool `json:"registered,omitempty"`

	// UserNotifications: Warning notifications for the user.
	UserNotifications []*GoogleCloudIdentitytoolkitV1UserNotification `json:"userNotifications,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "DisplayName") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "DisplayName") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1SignInWithPasswordResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1SignInWithPasswordResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1SignInWithPhoneNumberRequest: Request
// message for SignInWithPhoneNumber.
type GoogleCloudIdentitytoolkitV1SignInWithPhoneNumberRequest struct {
	// Code: User-entered verification code from an SMS sent to the user's
	// phone.
	Code string `json:"code,omitempty"`

	// IdToken: A valid ID token for an Identity Platform account. If
	// passed, this request will link the phone number to the user
	// represented by this ID token if the phone number is not in use, or
	// will reauthenticate the user if the phone number is already linked to
	// the user.
	IdToken string `json:"idToken,omitempty"`

	// Possible values:
	//   "VERIFY_OP_UNSPECIFIED" - Operation is not specified.
	//   "SIGN_UP_OR_IN" - Verify operation is to sign up/sign in.
	//   "REAUTH" - Verify operation is to reauth.
	//   "UPDATE" - Verify operation is to update.
	//   "LINK" - Verify operation is to link.
	Operation string `json:"operation,omitempty"`

	// PhoneNumber: The user's phone number to sign in with. This is
	// necessary in the case of uing a temporary proof, in which case it
	// must match the phone number that was authenticated in the request
	// that generated the temporary proof. This field is ignored if a
	// session info is passed.
	PhoneNumber string `json:"phoneNumber,omitempty"`

	// SessionInfo: Encrypted session information from the response of
	// sendVerificationCode. In the case of authenticating with an SMS code
	// this must be specified, but in the case of using a temporary proof it
	// can be unspecified.
	SessionInfo string `json:"sessionInfo,omitempty"`

	// TemporaryProof: A proof of the phone number verification, provided
	// from a previous signInWithPhoneNumber request. If this is passed, the
	// caller must also pass in the phone_number field the phone number that
	// was verified in the previous request.
	TemporaryProof string `json:"temporaryProof,omitempty"`

	// TenantId: The ID of the Identity Platform tenant the user is signing
	// in to. If not set, the user will sign in to the default Identity
	// Platform project.
	TenantId string `json:"tenantId,omitempty"`

	// VerificationProof: Do not use.
	VerificationProof string `json:"verificationProof,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Code") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Code") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1SignInWithPhoneNumberRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1SignInWithPhoneNumberRequest
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1SignInWithPhoneNumberResponse: Response
// message for SignInWithPhoneNumber.
type GoogleCloudIdentitytoolkitV1SignInWithPhoneNumberResponse struct {
	// ExpiresIn: The number of seconds until the ID token expires.
	ExpiresIn int64 `json:"expiresIn,omitempty,string"`

	// IdToken: Identity Platform ID token for the authenticated user.
	IdToken string `json:"idToken,omitempty"`

	// IsNewUser: Whether the authenticated user was created by this
	// request.
	IsNewUser bool `json:"isNewUser,omitempty"`

	// LocalId: The id of the authenticated user. Present in the case of a
	// successful authentication. In the case when the phone could be
	// verified but the account operation could not be performed, a
	// temporary proof will be returned instead.
	LocalId string `json:"localId,omitempty"`

	// PhoneNumber: Phone number of the authenticated user. Always present
	// in the response.
	PhoneNumber string `json:"phoneNumber,omitempty"`

	// RefreshToken: Refresh token for the authenticated user.
	RefreshToken string `json:"refreshToken,omitempty"`

	// TemporaryProof: A proof of the phone number verification, provided if
	// a phone authentication is successful but the user operation fails.
	// This happens when the request tries to link a phone number to a user
	// with an ID token or reauthenticate with an ID token but the phone
	// number is linked to a different user.
	TemporaryProof string `json:"temporaryProof,omitempty"`

	// TemporaryProofExpiresIn: The number of seconds until the temporary
	// proof expires.
	TemporaryProofExpiresIn int64 `json:"temporaryProofExpiresIn,omitempty,string"`

	// VerificationProof: Do not use.
	VerificationProof string `json:"verificationProof,omitempty"`

	// VerificationProofExpiresIn: Do not use.
	VerificationProofExpiresIn int64 `json:"verificationProofExpiresIn,omitempty,string"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "ExpiresIn") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "ExpiresIn") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1SignInWithPhoneNumberResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1SignInWithPhoneNumberResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1SignUpRequest: Request message for
// SignUp.
type GoogleCloudIdentitytoolkitV1SignUpRequest struct {
	CaptchaChallenge string `json:"captchaChallenge,omitempty"`

	// CaptchaResponse: The reCAPTCHA token provided by the reCAPTCHA
	// client-side integration. reCAPTCHA Enterprise uses it for assessment.
	// Required when reCAPTCHA enterprise is enabled.
	CaptchaResponse string `json:"captchaResponse,omitempty"`

	// ClientType: The client type: web, Android or iOS. Required when
	// enabling reCAPTCHA enterprise protection.
	//
	// Possible values:
	//   "CLIENT_TYPE_UNSPECIFIED" - Client type is not specified.
	//   "CLIENT_TYPE_WEB" - Client type is web.
	//   "CLIENT_TYPE_ANDROID" - Client type is android.
	//   "CLIENT_TYPE_IOS" - Client type is ios.
	ClientType string `json:"clientType,omitempty"`

	// Disabled: Whether the user will be disabled upon creation. Disabled
	// accounts are inaccessible except for requests bearing a Google OAuth2
	// credential with proper permissions
	// (https://cloud.google.com/identity-platform/docs/access-control).
	Disabled bool `json:"disabled,omitempty"`

	// DisplayName: The display name of the user to be created.
	DisplayName string `json:"displayName,omitempty"`

	// Email: The email to assign to the created user. The length of the
	// email should be less than 256 characters and in the format of
	// `name@domain.tld`. The email should also match the RFC 822
	// (https://tools.ietf.org/html/rfc822) addr-spec production. An
	// anonymous user will be created if not provided.
	Email string `json:"email,omitempty"`

	// EmailVerified: Whether the user's email is verified. Specifying this
	// field requires a Google OAuth 2.0 credential with the proper
	// permissions
	// (https://cloud.google.com/identity-platform/docs/access-control).
	EmailVerified bool `json:"emailVerified,omitempty"`

	// IdToken: A valid ID token for an Identity Platform user. If set, this
	// request will link the authentication credential to the user
	// represented by this ID token. For a non-admin request, both the
	// `email` and `password` fields must be set. For an admin request,
	// `local_id` must not be set.
	IdToken string `json:"idToken,omitempty"`

	InstanceId string `json:"instanceId,omitempty"`

	// LocalId: The ID of the user to create. The ID must be unique within
	// the project that the user is being created under. Specifying this
	// field requires a Google OAuth 2.0 credential with the proper
	// permissions
	// (https://cloud.google.com/identity-platform/docs/access-control).
	LocalId string `json:"localId,omitempty"`

	// MfaInfo: The multi-factor authentication providers for the user to
	// create.
	MfaInfo []*GoogleCloudIdentitytoolkitV1MfaFactor `json:"mfaInfo,omitempty"`

	// Password: The password to assign to the created user. The password
	// must be be at least 6 characters long. If set, the `email` field must
	// also be set.
	Password string `json:"password,omitempty"`

	// PhoneNumber: The phone number of the user to create. Specifying this
	// field requires a Google OAuth 2.0 credential with the proper
	// permissions
	// (https://cloud.google.com/identity-platform/docs/access-control).
	PhoneNumber string `json:"phoneNumber,omitempty"`

	// PhotoUrl: The profile photo url of the user to create.
	PhotoUrl string `json:"photoUrl,omitempty"`

	// RecaptchaVersion: The reCAPTCHA version of the reCAPTCHA token in the
	// captcha_response.
	//
	// Possible values:
	//   "RECAPTCHA_VERSION_UNSPECIFIED" - The reCAPTCHA version is not
	// specified.
	//   "RECAPTCHA_ENTERPRISE" - The reCAPTCHA enterprise.
	RecaptchaVersion string `json:"recaptchaVersion,omitempty"`

	// TargetProjectId: The project ID of the project which the user should
	// belong to. Specifying this field requires a Google OAuth 2.0
	// credential with the proper permissions
	// (https://cloud.google.com/identity-platform/docs/access-control). If
	// this is not set, the target project is inferred from the scope
	// associated to the Bearer access token.
	TargetProjectId string `json:"targetProjectId,omitempty"`

	// TenantId: The ID of the Identity Platform tenant to create a user
	// under. If not set, the user will be created under the default
	// Identity Platform project.
	TenantId string `json:"tenantId,omitempty"`

	// ForceSendFields is a list of field names (e.g. "CaptchaChallenge") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "CaptchaChallenge") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1SignUpRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1SignUpRequest
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1SignUpResponse: Response message for
// SignUp.
type GoogleCloudIdentitytoolkitV1SignUpResponse struct {
	// DisplayName: The created user's display name.
	DisplayName string `json:"displayName,omitempty"`

	// Email: The created user's email.
	Email string `json:"email,omitempty"`

	// ExpiresIn: The number of seconds until the ID token expires.
	ExpiresIn int64 `json:"expiresIn,omitempty,string"`

	// IdToken: An Identity Platform ID token for the created user. This
	// field is only set for non-admin requests.
	IdToken string `json:"idToken,omitempty"`

	Kind string `json:"kind,omitempty"`

	// LocalId: The ID of the created user. Always present in the response.
	LocalId string `json:"localId,omitempty"`

	// RefreshToken: An Identity Platform refresh token for the created
	// user. This field is only set for non-admin requests.
	RefreshToken string `json:"refreshToken,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "DisplayName") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "DisplayName") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1SignUpResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1SignUpResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1SqlExpression: Query conditions used to
// filter results.
type GoogleCloudIdentitytoolkitV1SqlExpression struct {
	// Email: A case insensitive string that the account's email should
	// match. Only one of `email`, `phone_number`, or `user_id` should be
	// specified in a SqlExpression. If more than one is specified, only the
	// first (in that order) will be applied.
	Email string `json:"email,omitempty"`

	// PhoneNumber: A string that the account's phone number should match.
	// Only one of `email`, `phone_number`, or `user_id` should be specified
	// in a SqlExpression. If more than one is specified, only the first (in
	// that order) will be applied.
	PhoneNumber string `json:"phoneNumber,omitempty"`

	// UserId: A string that the account's local ID should match. Only one
	// of `email`, `phone_number`, or `user_id` should be specified in a
	// SqlExpression If more than one is specified, only the first (in that
	// order) will be applied.
	UserId string `json:"userId,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Email") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Email") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1SqlExpression) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1SqlExpression
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1TotpInfo: Information about TOTP MFA.
type GoogleCloudIdentitytoolkitV1TotpInfo struct {
}

// GoogleCloudIdentitytoolkitV1UploadAccountRequest: Request message for
// UploadAccount.
type GoogleCloudIdentitytoolkitV1UploadAccountRequest struct {
	// AllowOverwrite: Whether to overwrite an existing account in Identity
	// Platform with a matching `local_id` in the request. If true, the
	// existing account will be overwritten. If false, an error will be
	// returned.
	AllowOverwrite bool `json:"allowOverwrite,omitempty"`

	// Argon2Parameters: The parameters for Argon2 hashing algorithm.
	Argon2Parameters *GoogleCloudIdentitytoolkitV1Argon2Parameters `json:"argon2Parameters,omitempty"`

	// BlockSize: The block size parameter used by the STANDARD_SCRYPT
	// hashing function. This parameter, along with parallelization and
	// cpu_mem_cost help tune the resources needed to hash a password, and
	// should be tuned as processor speeds and memory technologies advance.
	BlockSize int64 `json:"blockSize,omitempty"`

	// CpuMemCost: The CPU memory cost parameter to be used by the
	// STANDARD_SCRYPT hashing function. This parameter, along with
	// block_size and cpu_mem_cost help tune the resources needed to hash a
	// password, and should be tuned as processor speeds and memory
	// technologies advance.
	CpuMemCost int64 `json:"cpuMemCost,omitempty"`

	DelegatedProjectNumber int64 `json:"delegatedProjectNumber,omitempty,string"`

	// DkLen: The desired key length for the STANDARD_SCRYPT hashing
	// function. Must be at least 1.
	DkLen int64 `json:"dkLen,omitempty"`

	// HashAlgorithm: Required. The hashing function used to hash the
	// account passwords. Must be one of the following: * HMAC_SHA256 *
	// HMAC_SHA1 * HMAC_MD5 * SCRYPT * PBKDF_SHA1 * MD5 * HMAC_SHA512 * SHA1
	// * BCRYPT * PBKDF2_SHA256 * SHA256 * SHA512 * STANDARD_SCRYPT * ARGON2
	HashAlgorithm string `json:"hashAlgorithm,omitempty"`

	// MemoryCost: Memory cost for hash calculation. Only required when the
	// hashing function is SCRYPT.
	MemoryCost int64 `json:"memoryCost,omitempty"`

	// Parallelization: The parallelization cost parameter to be used by the
	// STANDARD_SCRYPT hashing function. This parameter, along with
	// block_size and cpu_mem_cost help tune the resources needed to hash a
	// password, and should be tuned as processor speeds and memory
	// technologies advance.
	Parallelization int64 `json:"parallelization,omitempty"`

	// PasswordHashOrder: Password and salt order when verify password.
	//
	// Possible values:
	//   "UNSPECIFIED_ORDER" - The order is not specified.
	//   "SALT_AND_PASSWORD" - The order is salt first, and then password.
	//   "PASSWORD_AND_SALT" - The order is password first, and then salt.
	PasswordHashOrder string `json:"passwordHashOrder,omitempty"`

	// Rounds: The number of rounds used for hash calculation. Only required
	// for the following hashing functions: * MD5 * SHA1 * SHA256 * SHA512 *
	// PBKDF_SHA1 * PBKDF2_SHA256 * SCRYPT
	Rounds int64 `json:"rounds,omitempty"`

	// SaltSeparator: One or more bytes to be inserted between the salt and
	// plain text password. For stronger security, this should be a single
	// non-printable character.
	SaltSeparator string `json:"saltSeparator,omitempty"`

	// SanityCheck: If true, the service will do the following list of
	// checks before an account is uploaded: * Duplicate emails * Duplicate
	// federated IDs * Federated ID provider validation If the duplication
	// exists within the list of accounts to be uploaded, it will prevent
	// the entire list from being uploaded. If the email or federated ID is
	// a duplicate of a user already within the project/tenant, the account
	// will not be uploaded, but the rest of the accounts will be
	// unaffected. If false, these checks will be skipped.
	SanityCheck bool `json:"sanityCheck,omitempty"`

	// SignerKey: The signer key used to hash the password. Required for the
	// following hashing functions: * SCRYPT, * HMAC_MD5, * HMAC_SHA1, *
	// HMAC_SHA256, * HMAC_SHA512
	SignerKey string `json:"signerKey,omitempty"`

	// TenantId: The ID of the Identity Platform tenant the account belongs
	// to.
	TenantId string `json:"tenantId,omitempty"`

	// Users: A list of accounts to upload. `local_id` is required for each
	// user; everything else is optional.
	Users []*GoogleCloudIdentitytoolkitV1UserInfo `json:"users,omitempty"`

	// ForceSendFields is a list of field names (e.g. "AllowOverwrite") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "AllowOverwrite") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1UploadAccountRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1UploadAccountRequest
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1UploadAccountResponse: Response message
// for UploadAccount.
type GoogleCloudIdentitytoolkitV1UploadAccountResponse struct {
	// Error: Detailed error info for accounts that cannot be uploaded.
	Error []*GoogleCloudIdentitytoolkitV1ErrorInfo `json:"error,omitempty"`

	Kind string `json:"kind,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "Error") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Error") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1UploadAccountResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1UploadAccountResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1UserInfo: An Identity Platform account's
// information.
type GoogleCloudIdentitytoolkitV1UserInfo struct {
	// CreatedAt: The time, in milliseconds from epoch, when the account was
	// created.
	CreatedAt int64 `json:"createdAt,omitempty,string"`

	// CustomAttributes: Custom claims to be added to any ID tokens minted
	// for the account. Should be at most 1,000 characters in length and in
	// valid JSON format.
	CustomAttributes string `json:"customAttributes,omitempty"`

	// CustomAuth: Output only. Whether this account has been authenticated
	// using SignInWithCustomToken.
	CustomAuth bool `json:"customAuth,omitempty"`

	// DateOfBirth: Output only. The date of birth set for the account. This
	// account attribute is not used by Identity Platform. It is available
	// for informational purposes only.
	DateOfBirth string `json:"dateOfBirth,omitempty"`

	// Disabled: Whether the account is disabled. Disabled accounts are
	// inaccessible except for requests bearing a Google OAuth2 credential
	// with proper permissions.
	Disabled bool `json:"disabled,omitempty"`

	// DisplayName: The display name of the account. This account attribute
	// is not used by Identity Platform. It is available for informational
	// purposes only.
	DisplayName string `json:"displayName,omitempty"`

	// Email: The account's email address. The length of the email should be
	// less than 256 characters and in the format of `name@domain.tld`. The
	// email should also match the RFC 822
	// (https://tools.ietf.org/html/rfc822) addr-spec.
	Email string `json:"email,omitempty"`

	// EmailLinkSignin: Output only. Whether the account can authenticate
	// with email link.
	EmailLinkSignin bool `json:"emailLinkSignin,omitempty"`

	// EmailVerified: Whether the account's email address has been verified.
	EmailVerified bool `json:"emailVerified,omitempty"`

	// InitialEmail: The first email address associated with this account.
	// The account's initial email cannot be changed once set and is used to
	// recover access to this account if lost via the RECOVER_EMAIL flow in
	// GetOobCode. Should match the RFC 822
	// (https://tools.ietf.org/html/rfc822) addr-spec.
	InitialEmail string `json:"initialEmail,omitempty"`

	// Language: Output only. The language preference of the account. This
	// account attribute is not used by Identity Platform. It is available
	// for informational purposes only.
	Language string `json:"language,omitempty"`

	// LastLoginAt: The last time, in milliseconds from epoch, this account
	// was logged into.
	LastLoginAt int64 `json:"lastLoginAt,omitempty,string"`

	// LastRefreshAt: Timestamp when an ID token was last minted for this
	// account.
	LastRefreshAt string `json:"lastRefreshAt,omitempty"`

	// LocalId: Immutable. The unique ID of the account.
	LocalId string `json:"localId,omitempty"`

	// MfaInfo: Information on which multi-factor authentication providers
	// are enabled for this account.
	MfaInfo []*GoogleCloudIdentitytoolkitV1MfaEnrollment `json:"mfaInfo,omitempty"`

	// PasswordHash: The account's hashed password. Only accessible by
	// requests bearing a Google OAuth2 credential with proper permissions
	// (https://cloud.google.com/identity-platform/docs/access-control).
	PasswordHash string `json:"passwordHash,omitempty"`

	// PasswordUpdatedAt: The timestamp, in milliseconds from the epoch of
	// 1970-01-01T00:00:00Z, when the account's password was last updated.
	PasswordUpdatedAt float64 `json:"passwordUpdatedAt,omitempty"`

	// PhoneNumber: The account's phone number.
	PhoneNumber string `json:"phoneNumber,omitempty"`

	// PhotoUrl: The URL of the account's profile photo. This account
	// attribute is not used by Identity Platform. It is available for
	// informational purposes only.
	PhotoUrl string `json:"photoUrl,omitempty"`

	// ProviderUserInfo: Information about the user as provided by various
	// Identity Providers.
	ProviderUserInfo []*GoogleCloudIdentitytoolkitV1ProviderUserInfo `json:"providerUserInfo,omitempty"`

	// RawPassword: Input only. Plain text password used to update a
	// account's password. This field is only ever used as input in a
	// request. Identity Platform uses cryptographically secure hashing when
	// managing passwords and will never store or transmit a user's password
	// in plain text.
	RawPassword string `json:"rawPassword,omitempty"`

	// Salt: The account's password salt. Only accessible by requests
	// bearing a Google OAuth2 credential with proper permissions.
	Salt string `json:"salt,omitempty"`

	// ScreenName: Output only. This account's screen name at Twitter or
	// login name at GitHub.
	ScreenName string `json:"screenName,omitempty"`

	// TenantId: ID of the tenant this account belongs to. Only set if this
	// account belongs to a tenant.
	TenantId string `json:"tenantId,omitempty"`

	// TimeZone: Output only. The time zone preference of the account. This
	// account attribute is not used by Identity Platform. It is available
	// for informational purposes only.
	TimeZone string `json:"timeZone,omitempty"`

	// ValidSince: Oldest timestamp, in seconds since epoch, that an ID
	// token should be considered valid. All ID tokens issued before this
	// time are considered invalid.
	ValidSince int64 `json:"validSince,omitempty,string"`

	// Version: The version of the account's password. Only accessible by
	// requests bearing a Google OAuth2 credential with proper permissions.
	Version int64 `json:"version,omitempty"`

	// ForceSendFields is a list of field names (e.g. "CreatedAt") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "CreatedAt") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1UserInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1UserInfo
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

func (s *GoogleCloudIdentitytoolkitV1UserInfo) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleCloudIdentitytoolkitV1UserInfo
	var s1 struct {
		PasswordUpdatedAt gensupport.JSONFloat64 `json:"passwordUpdatedAt"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.PasswordUpdatedAt = float64(s1.PasswordUpdatedAt)
	return nil
}

// GoogleCloudIdentitytoolkitV1UserNotification: Warning notifications
// for the user.
type GoogleCloudIdentitytoolkitV1UserNotification struct {
	// NotificationCode: Warning notification enum. Can be used for
	// localization.
	//
	// Possible values:
	//   "NOTIFICATION_CODE_UNSPECIFIED" - No notification specified.
	//   "MISSING_LOWERCASE_CHARACTER" - Password missing lowercase
	// character.
	//   "MISSING_UPPERCASE_CHARACTER" - Password missing uppercase
	// character.
	//   "MISSING_NUMERIC_CHARACTER" - Password missing numeric character.
	//   "MISSING_NON_ALPHANUMERIC_CHARACTER" - Password missing non
	// alphanumeric character.
	//   "MINIMUM_PASSWORD_LENGTH" - Password less than minimum required
	// length.
	//   "MAXIMUM_PASSWORD_LENGTH" - Password greater than maximum required
	// length.
	NotificationCode string `json:"notificationCode,omitempty"`

	// NotificationMessage: Warning notification string. Can be used as
	// fallback.
	NotificationMessage string `json:"notificationMessage,omitempty"`

	// ForceSendFields is a list of field names (e.g. "NotificationCode") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "NotificationCode") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1UserNotification) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1UserNotification
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1VerifyIosClientRequest: Request message
// for VerifyIosClient
type GoogleCloudIdentitytoolkitV1VerifyIosClientRequest struct {
	// AppToken: A device token that the iOS client gets after registering
	// to APNs (Apple Push Notification service).
	AppToken string `json:"appToken,omitempty"`

	// IsSandbox: Whether the app token is in the iOS sandbox. If false, the
	// app token is in the production environment.
	IsSandbox bool `json:"isSandbox,omitempty"`

	// ForceSendFields is a list of field names (e.g. "AppToken") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "AppToken") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1VerifyIosClientRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1VerifyIosClientRequest
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// GoogleCloudIdentitytoolkitV1VerifyIosClientResponse: Response message
// for VerifyIosClient.
type GoogleCloudIdentitytoolkitV1VerifyIosClientResponse struct {
	// Receipt: Receipt of successful app token validation.
	Receipt string `json:"receipt,omitempty"`

	// SuggestedTimeout: Suggested time that the client should wait in
	// seconds for delivery of the push notification.
	SuggestedTimeout int64 `json:"suggestedTimeout,omitempty,string"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "Receipt") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Receipt") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

func (s *GoogleCloudIdentitytoolkitV1VerifyIosClientResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudIdentitytoolkitV1VerifyIosClientResponse
	raw := NoMethod(*s)
	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}

// method id "identitytoolkit.accounts.createAuthUri":

type AccountsCreateAuthUriCall struct {
	s                                                *Service
	googlecloudidentitytoolkitv1createauthurirequest *GoogleCloudIdentitytoolkitV1CreateAuthUriRequest
	urlParams_                                       gensupport.URLParams
	ctx_                                             context.Context
	header_                                          http.Header
}

// CreateAuthUri: If an email identifier is specified, checks and
// returns if any user account is registered with the email. If there is
// a registered account, fetches all providers associated with the
// account's email. If the provider ID of an Identity Provider (IdP) is
// specified, creates an authorization URI for the IdP. The user can be
// directed to this URI to sign in with the IdP. An API key
// (https://cloud.google.com/docs/authentication/api-keys) is required
// in the request in order to identify the Google Cloud project.
func (r *AccountsService) CreateAuthUri(googlecloudidentitytoolkitv1createauthurirequest *GoogleCloudIdentitytoolkitV1CreateAuthUriRequest) *AccountsCreateAuthUriCall {
	c := &AccountsCreateAuthUriCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.googlecloudidentitytoolkitv1createauthurirequest = googlecloudidentitytoolkitv1createauthurirequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *AccountsCreateAuthUriCall) Fields(s ...googleapi.Field) *AccountsCreateAuthUriCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *AccountsCreateAuthUriCall) Context(ctx context.Context) *AccountsCreateAuthUriCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *AccountsCreateAuthUriCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *AccountsCreateAuthUriCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudidentitytoolkitv1createauthurirequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/accounts:createAuthUri")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.accounts.createAuthUri" call.
// Exactly one of *GoogleCloudIdentitytoolkitV1CreateAuthUriResponse or
// error will be non-nil. Any non-2xx status code is an error. Response
// headers are in either
// *GoogleCloudIdentitytoolkitV1CreateAuthUriResponse.ServerResponse.Head
// er or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *AccountsCreateAuthUriCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1CreateAuthUriResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1CreateAuthUriResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "If an email identifier is specified, checks and returns if any user account is registered with the email. If there is a registered account, fetches all providers associated with the account's email. If the provider ID of an Identity Provider (IdP) is specified, creates an authorization URI for the IdP. The user can be directed to this URI to sign in with the IdP. An [API key](https://cloud.google.com/docs/authentication/api-keys) is required in the request in order to identify the Google Cloud project.",
	//   "flatPath": "v1/accounts:createAuthUri",
	//   "httpMethod": "POST",
	//   "id": "identitytoolkit.accounts.createAuthUri",
	//   "parameterOrder": [],
	//   "parameters": {},
	//   "path": "v1/accounts:createAuthUri",
	//   "request": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1CreateAuthUriRequest"
	//   },
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1CreateAuthUriResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}

// method id "identitytoolkit.accounts.delete":

type AccountsDeleteCall struct {
	s                                                *Service
	googlecloudidentitytoolkitv1deleteaccountrequest *GoogleCloudIdentitytoolkitV1DeleteAccountRequest
	urlParams_                                       gensupport.URLParams
	ctx_                                             context.Context
	header_                                          http.Header
}

// Delete: Deletes a user's account.
func (r *AccountsService) Delete(googlecloudidentitytoolkitv1deleteaccountrequest *GoogleCloudIdentitytoolkitV1DeleteAccountRequest) *AccountsDeleteCall {
	c := &AccountsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.googlecloudidentitytoolkitv1deleteaccountrequest = googlecloudidentitytoolkitv1deleteaccountrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *AccountsDeleteCall) Fields(s ...googleapi.Field) *AccountsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *AccountsDeleteCall) Context(ctx context.Context) *AccountsDeleteCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *AccountsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *AccountsDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudidentitytoolkitv1deleteaccountrequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/accounts:delete")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.accounts.delete" call.
// Exactly one of *GoogleCloudIdentitytoolkitV1DeleteAccountResponse or
// error will be non-nil. Any non-2xx status code is an error. Response
// headers are in either
// *GoogleCloudIdentitytoolkitV1DeleteAccountResponse.ServerResponse.Head
// er or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *AccountsDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1DeleteAccountResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1DeleteAccountResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Deletes a user's account.",
	//   "flatPath": "v1/accounts:delete",
	//   "httpMethod": "POST",
	//   "id": "identitytoolkit.accounts.delete",
	//   "parameterOrder": [],
	//   "parameters": {},
	//   "path": "v1/accounts:delete",
	//   "request": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1DeleteAccountRequest"
	//   },
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1DeleteAccountResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}

// method id "identitytoolkit.accounts.issueSamlResponse":

type AccountsIssueSamlResponseCall struct {
	s                                                    *Service
	googlecloudidentitytoolkitv1issuesamlresponserequest *GoogleCloudIdentitytoolkitV1IssueSamlResponseRequest
	urlParams_                                           gensupport.URLParams
	ctx_                                                 context.Context
	header_                                              http.Header
}

// IssueSamlResponse: Experimental
func (r *AccountsService) IssueSamlResponse(googlecloudidentitytoolkitv1issuesamlresponserequest *GoogleCloudIdentitytoolkitV1IssueSamlResponseRequest) *AccountsIssueSamlResponseCall {
	c := &AccountsIssueSamlResponseCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.googlecloudidentitytoolkitv1issuesamlresponserequest = googlecloudidentitytoolkitv1issuesamlresponserequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *AccountsIssueSamlResponseCall) Fields(s ...googleapi.Field) *AccountsIssueSamlResponseCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *AccountsIssueSamlResponseCall) Context(ctx context.Context) *AccountsIssueSamlResponseCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *AccountsIssueSamlResponseCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *AccountsIssueSamlResponseCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudidentitytoolkitv1issuesamlresponserequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/accounts:issueSamlResponse")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.accounts.issueSamlResponse" call.
// Exactly one of *GoogleCloudIdentitytoolkitV1IssueSamlResponseResponse
// or error will be non-nil. Any non-2xx status code is an error.
// Response headers are in either
// *GoogleCloudIdentitytoolkitV1IssueSamlResponseResponse.ServerResponse.
// Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *AccountsIssueSamlResponseCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1IssueSamlResponseResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1IssueSamlResponseResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Experimental",
	//   "flatPath": "v1/accounts:issueSamlResponse",
	//   "httpMethod": "POST",
	//   "id": "identitytoolkit.accounts.issueSamlResponse",
	//   "parameterOrder": [],
	//   "parameters": {},
	//   "path": "v1/accounts:issueSamlResponse",
	//   "request": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1IssueSamlResponseRequest"
	//   },
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1IssueSamlResponseResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}

// method id "identitytoolkit.accounts.lookup":

type AccountsLookupCall struct {
	s                                                 *Service
	googlecloudidentitytoolkitv1getaccountinforequest *GoogleCloudIdentitytoolkitV1GetAccountInfoRequest
	urlParams_                                        gensupport.URLParams
	ctx_                                              context.Context
	header_                                           http.Header
}

// Lookup: Gets account information for all matched accounts. For an end
// user request, retrieves the account of the end user. For an admin
// request with Google OAuth 2.0 credential, retrieves one or multiple
// account(s) with matching criteria.
func (r *AccountsService) Lookup(googlecloudidentitytoolkitv1getaccountinforequest *GoogleCloudIdentitytoolkitV1GetAccountInfoRequest) *AccountsLookupCall {
	c := &AccountsLookupCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.googlecloudidentitytoolkitv1getaccountinforequest = googlecloudidentitytoolkitv1getaccountinforequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *AccountsLookupCall) Fields(s ...googleapi.Field) *AccountsLookupCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *AccountsLookupCall) Context(ctx context.Context) *AccountsLookupCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *AccountsLookupCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *AccountsLookupCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudidentitytoolkitv1getaccountinforequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/accounts:lookup")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.accounts.lookup" call.
// Exactly one of *GoogleCloudIdentitytoolkitV1GetAccountInfoResponse or
// error will be non-nil. Any non-2xx status code is an error. Response
// headers are in either
// *GoogleCloudIdentitytoolkitV1GetAccountInfoResponse.ServerResponse.Hea
// der or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *AccountsLookupCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1GetAccountInfoResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1GetAccountInfoResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Gets account information for all matched accounts. For an end user request, retrieves the account of the end user. For an admin request with Google OAuth 2.0 credential, retrieves one or multiple account(s) with matching criteria.",
	//   "flatPath": "v1/accounts:lookup",
	//   "httpMethod": "POST",
	//   "id": "identitytoolkit.accounts.lookup",
	//   "parameterOrder": [],
	//   "parameters": {},
	//   "path": "v1/accounts:lookup",
	//   "request": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1GetAccountInfoRequest"
	//   },
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1GetAccountInfoResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}

// method id "identitytoolkit.accounts.resetPassword":

type AccountsResetPasswordCall struct {
	s                                                *Service
	googlecloudidentitytoolkitv1resetpasswordrequest *GoogleCloudIdentitytoolkitV1ResetPasswordRequest
	urlParams_                                       gensupport.URLParams
	ctx_                                             context.Context
	header_                                          http.Header
}

// ResetPassword: Resets the password of an account either using an
// out-of-band code generated by sendOobCode or by specifying the email
// and password of the account to be modified. Can also check the
// purpose of an out-of-band code without consuming it.
func (r *AccountsService) ResetPassword(googlecloudidentitytoolkitv1resetpasswordrequest *GoogleCloudIdentitytoolkitV1ResetPasswordRequest) *AccountsResetPasswordCall {
	c := &AccountsResetPasswordCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.googlecloudidentitytoolkitv1resetpasswordrequest = googlecloudidentitytoolkitv1resetpasswordrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *AccountsResetPasswordCall) Fields(s ...googleapi.Field) *AccountsResetPasswordCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *AccountsResetPasswordCall) Context(ctx context.Context) *AccountsResetPasswordCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *AccountsResetPasswordCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *AccountsResetPasswordCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudidentitytoolkitv1resetpasswordrequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/accounts:resetPassword")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.accounts.resetPassword" call.
// Exactly one of *GoogleCloudIdentitytoolkitV1ResetPasswordResponse or
// error will be non-nil. Any non-2xx status code is an error. Response
// headers are in either
// *GoogleCloudIdentitytoolkitV1ResetPasswordResponse.ServerResponse.Head
// er or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *AccountsResetPasswordCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1ResetPasswordResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1ResetPasswordResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Resets the password of an account either using an out-of-band code generated by sendOobCode or by specifying the email and password of the account to be modified. Can also check the purpose of an out-of-band code without consuming it.",
	//   "flatPath": "v1/accounts:resetPassword",
	//   "httpMethod": "POST",
	//   "id": "identitytoolkit.accounts.resetPassword",
	//   "parameterOrder": [],
	//   "parameters": {},
	//   "path": "v1/accounts:resetPassword",
	//   "request": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1ResetPasswordRequest"
	//   },
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1ResetPasswordResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}

// method id "identitytoolkit.accounts.sendOobCode":

type AccountsSendOobCodeCall struct {
	s                                             *Service
	googlecloudidentitytoolkitv1getoobcoderequest *GoogleCloudIdentitytoolkitV1GetOobCodeRequest
	urlParams_                                    gensupport.URLParams
	ctx_                                          context.Context
	header_                                       http.Header
}

// SendOobCode: Sends an out-of-band confirmation code for an account.
// Requests from a authenticated request can optionally return a link
// including the OOB code instead of sending it.
func (r *AccountsService) SendOobCode(googlecloudidentitytoolkitv1getoobcoderequest *GoogleCloudIdentitytoolkitV1GetOobCodeRequest) *AccountsSendOobCodeCall {
	c := &AccountsSendOobCodeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.googlecloudidentitytoolkitv1getoobcoderequest = googlecloudidentitytoolkitv1getoobcoderequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *AccountsSendOobCodeCall) Fields(s ...googleapi.Field) *AccountsSendOobCodeCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *AccountsSendOobCodeCall) Context(ctx context.Context) *AccountsSendOobCodeCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *AccountsSendOobCodeCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *AccountsSendOobCodeCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudidentitytoolkitv1getoobcoderequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/accounts:sendOobCode")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.accounts.sendOobCode" call.
// Exactly one of *GoogleCloudIdentitytoolkitV1GetOobCodeResponse or
// error will be non-nil. Any non-2xx status code is an error. Response
// headers are in either
// *GoogleCloudIdentitytoolkitV1GetOobCodeResponse.ServerResponse.Header
// or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *AccountsSendOobCodeCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1GetOobCodeResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1GetOobCodeResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Sends an out-of-band confirmation code for an account. Requests from a authenticated request can optionally return a link including the OOB code instead of sending it.",
	//   "flatPath": "v1/accounts:sendOobCode",
	//   "httpMethod": "POST",
	//   "id": "identitytoolkit.accounts.sendOobCode",
	//   "parameterOrder": [],
	//   "parameters": {},
	//   "path": "v1/accounts:sendOobCode",
	//   "request": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1GetOobCodeRequest"
	//   },
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1GetOobCodeResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}

// method id "identitytoolkit.accounts.sendVerificationCode":

type AccountsSendVerificationCodeCall struct {
	s                                                       *Service
	googlecloudidentitytoolkitv1sendverificationcoderequest *GoogleCloudIdentitytoolkitV1SendVerificationCodeRequest
	urlParams_                                              gensupport.URLParams
	ctx_                                                    context.Context
	header_                                                 http.Header
}

// SendVerificationCode: Sends a SMS verification code for phone number
// sign-in. An API key
// (https://cloud.google.com/docs/authentication/api-keys) is required
// in the request in order to identify the Google Cloud project.
func (r *AccountsService) SendVerificationCode(googlecloudidentitytoolkitv1sendverificationcoderequest *GoogleCloudIdentitytoolkitV1SendVerificationCodeRequest) *AccountsSendVerificationCodeCall {
	c := &AccountsSendVerificationCodeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.googlecloudidentitytoolkitv1sendverificationcoderequest = googlecloudidentitytoolkitv1sendverificationcoderequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *AccountsSendVerificationCodeCall) Fields(s ...googleapi.Field) *AccountsSendVerificationCodeCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *AccountsSendVerificationCodeCall) Context(ctx context.Context) *AccountsSendVerificationCodeCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *AccountsSendVerificationCodeCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *AccountsSendVerificationCodeCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudidentitytoolkitv1sendverificationcoderequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/accounts:sendVerificationCode")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.accounts.sendVerificationCode" call.
// Exactly one of
// *GoogleCloudIdentitytoolkitV1SendVerificationCodeResponse or error
// will be non-nil. Any non-2xx status code is an error. Response
// headers are in either
// *GoogleCloudIdentitytoolkitV1SendVerificationCodeResponse.ServerRespon
// se.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *AccountsSendVerificationCodeCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1SendVerificationCodeResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1SendVerificationCodeResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Sends a SMS verification code for phone number sign-in. An [API key](https://cloud.google.com/docs/authentication/api-keys) is required in the request in order to identify the Google Cloud project.",
	//   "flatPath": "v1/accounts:sendVerificationCode",
	//   "httpMethod": "POST",
	//   "id": "identitytoolkit.accounts.sendVerificationCode",
	//   "parameterOrder": [],
	//   "parameters": {},
	//   "path": "v1/accounts:sendVerificationCode",
	//   "request": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1SendVerificationCodeRequest"
	//   },
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1SendVerificationCodeResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}

// method id "identitytoolkit.accounts.signInWithCustomToken":

type AccountsSignInWithCustomTokenCall struct {
	s                                                        *Service
	googlecloudidentitytoolkitv1signinwithcustomtokenrequest *GoogleCloudIdentitytoolkitV1SignInWithCustomTokenRequest
	urlParams_                                               gensupport.URLParams
	ctx_                                                     context.Context
	header_                                                  http.Header
}

// SignInWithCustomToken: Signs in or signs up a user by exchanging a
// custom Auth token. Upon a successful sign-in or sign-up, a new
// Identity Platform ID token and refresh token are issued for the user.
// An API key (https://cloud.google.com/docs/authentication/api-keys) is
// required in the request in order to identify the Google Cloud
// project.
func (r *AccountsService) SignInWithCustomToken(googlecloudidentitytoolkitv1signinwithcustomtokenrequest *GoogleCloudIdentitytoolkitV1SignInWithCustomTokenRequest) *AccountsSignInWithCustomTokenCall {
	c := &AccountsSignInWithCustomTokenCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.googlecloudidentitytoolkitv1signinwithcustomtokenrequest = googlecloudidentitytoolkitv1signinwithcustomtokenrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *AccountsSignInWithCustomTokenCall) Fields(s ...googleapi.Field) *AccountsSignInWithCustomTokenCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *AccountsSignInWithCustomTokenCall) Context(ctx context.Context) *AccountsSignInWithCustomTokenCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *AccountsSignInWithCustomTokenCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *AccountsSignInWithCustomTokenCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudidentitytoolkitv1signinwithcustomtokenrequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/accounts:signInWithCustomToken")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.accounts.signInWithCustomToken" call.
// Exactly one of
// *GoogleCloudIdentitytoolkitV1SignInWithCustomTokenResponse or error
// will be non-nil. Any non-2xx status code is an error. Response
// headers are in either
// *GoogleCloudIdentitytoolkitV1SignInWithCustomTokenResponse.ServerRespo
// nse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *AccountsSignInWithCustomTokenCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1SignInWithCustomTokenResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1SignInWithCustomTokenResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Signs in or signs up a user by exchanging a custom Auth token. Upon a successful sign-in or sign-up, a new Identity Platform ID token and refresh token are issued for the user. An [API key](https://cloud.google.com/docs/authentication/api-keys) is required in the request in order to identify the Google Cloud project.",
	//   "flatPath": "v1/accounts:signInWithCustomToken",
	//   "httpMethod": "POST",
	//   "id": "identitytoolkit.accounts.signInWithCustomToken",
	//   "parameterOrder": [],
	//   "parameters": {},
	//   "path": "v1/accounts:signInWithCustomToken",
	//   "request": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1SignInWithCustomTokenRequest"
	//   },
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1SignInWithCustomTokenResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}

// method id "identitytoolkit.accounts.signInWithEmailLink":

type AccountsSignInWithEmailLinkCall struct {
	s                                                      *Service
	googlecloudidentitytoolkitv1signinwithemaillinkrequest *GoogleCloudIdentitytoolkitV1SignInWithEmailLinkRequest
	urlParams_                                             gensupport.URLParams
	ctx_                                                   context.Context
	header_                                                http.Header
}

// SignInWithEmailLink: Signs in or signs up a user with a out-of-band
// code from an email link. If a user does not exist with the given
// email address, a user record will be created. If the sign-in
// succeeds, an Identity Platform ID and refresh token are issued for
// the authenticated user. An API key
// (https://cloud.google.com/docs/authentication/api-keys) is required
// in the request in order to identify the Google Cloud project.
func (r *AccountsService) SignInWithEmailLink(googlecloudidentitytoolkitv1signinwithemaillinkrequest *GoogleCloudIdentitytoolkitV1SignInWithEmailLinkRequest) *AccountsSignInWithEmailLinkCall {
	c := &AccountsSignInWithEmailLinkCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.googlecloudidentitytoolkitv1signinwithemaillinkrequest = googlecloudidentitytoolkitv1signinwithemaillinkrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *AccountsSignInWithEmailLinkCall) Fields(s ...googleapi.Field) *AccountsSignInWithEmailLinkCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *AccountsSignInWithEmailLinkCall) Context(ctx context.Context) *AccountsSignInWithEmailLinkCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *AccountsSignInWithEmailLinkCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *AccountsSignInWithEmailLinkCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudidentitytoolkitv1signinwithemaillinkrequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/accounts:signInWithEmailLink")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.accounts.signInWithEmailLink" call.
// Exactly one of
// *GoogleCloudIdentitytoolkitV1SignInWithEmailLinkResponse or error
// will be non-nil. Any non-2xx status code is an error. Response
// headers are in either
// *GoogleCloudIdentitytoolkitV1SignInWithEmailLinkResponse.ServerRespons
// e.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *AccountsSignInWithEmailLinkCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1SignInWithEmailLinkResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1SignInWithEmailLinkResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Signs in or signs up a user with a out-of-band code from an email link. If a user does not exist with the given email address, a user record will be created. If the sign-in succeeds, an Identity Platform ID and refresh token are issued for the authenticated user. An [API key](https://cloud.google.com/docs/authentication/api-keys) is required in the request in order to identify the Google Cloud project.",
	//   "flatPath": "v1/accounts:signInWithEmailLink",
	//   "httpMethod": "POST",
	//   "id": "identitytoolkit.accounts.signInWithEmailLink",
	//   "parameterOrder": [],
	//   "parameters": {},
	//   "path": "v1/accounts:signInWithEmailLink",
	//   "request": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1SignInWithEmailLinkRequest"
	//   },
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1SignInWithEmailLinkResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}

// method id "identitytoolkit.accounts.signInWithGameCenter":

type AccountsSignInWithGameCenterCall struct {
	s                                                       *Service
	googlecloudidentitytoolkitv1signinwithgamecenterrequest *GoogleCloudIdentitytoolkitV1SignInWithGameCenterRequest
	urlParams_                                              gensupport.URLParams
	ctx_                                                    context.Context
	header_                                                 http.Header
}

// SignInWithGameCenter: Signs in or signs up a user with iOS Game
// Center credentials. If the sign-in succeeds, a new Identity Platform
// ID token and refresh token are issued for the authenticated user. The
// bundle ID is required in the request header as
// `x-ios-bundle-identifier`. An API key
// (https://cloud.google.com/docs/authentication/api-keys) is required
// in the request in order to identify the Google Cloud project. Apple
// has deprecated the `playerID` field
// (https://developer.apple.com/documentation/gamekit/gkplayer/1521127-playerid/).
// The Apple platform Firebase SDK will use `gamePlayerID` and
// `teamPlayerID` from version 10.5.0 and onwards. Upgrading to SDK
// version 10.5.0 or later updates existing integrations that use
// `playerID` to instead use `gamePlayerID` and `teamPlayerID`. When
// making calls to `signInWithGameCenter`, you must include `playerID`
// along with the new fields `gamePlayerID` and `teamPlayerID` to
// successfully identify all existing users. Upgrading existing Game
// Center sign in integrations to SDK version 10.5.0 or later is
// irreversible.
func (r *AccountsService) SignInWithGameCenter(googlecloudidentitytoolkitv1signinwithgamecenterrequest *GoogleCloudIdentitytoolkitV1SignInWithGameCenterRequest) *AccountsSignInWithGameCenterCall {
	c := &AccountsSignInWithGameCenterCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.googlecloudidentitytoolkitv1signinwithgamecenterrequest = googlecloudidentitytoolkitv1signinwithgamecenterrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *AccountsSignInWithGameCenterCall) Fields(s ...googleapi.Field) *AccountsSignInWithGameCenterCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *AccountsSignInWithGameCenterCall) Context(ctx context.Context) *AccountsSignInWithGameCenterCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *AccountsSignInWithGameCenterCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *AccountsSignInWithGameCenterCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudidentitytoolkitv1signinwithgamecenterrequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/accounts:signInWithGameCenter")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.accounts.signInWithGameCenter" call.
// Exactly one of
// *GoogleCloudIdentitytoolkitV1SignInWithGameCenterResponse or error
// will be non-nil. Any non-2xx status code is an error. Response
// headers are in either
// *GoogleCloudIdentitytoolkitV1SignInWithGameCenterResponse.ServerRespon
// se.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *AccountsSignInWithGameCenterCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1SignInWithGameCenterResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1SignInWithGameCenterResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Signs in or signs up a user with iOS Game Center credentials. If the sign-in succeeds, a new Identity Platform ID token and refresh token are issued for the authenticated user. The bundle ID is required in the request header as `x-ios-bundle-identifier`. An [API key](https://cloud.google.com/docs/authentication/api-keys) is required in the request in order to identify the Google Cloud project. Apple has [deprecated the `playerID` field](https://developer.apple.com/documentation/gamekit/gkplayer/1521127-playerid/). The Apple platform Firebase SDK will use `gamePlayerID` and `teamPlayerID` from version 10.5.0 and onwards. Upgrading to SDK version 10.5.0 or later updates existing integrations that use `playerID` to instead use `gamePlayerID` and `teamPlayerID`. When making calls to `signInWithGameCenter`, you must include `playerID` along with the new fields `gamePlayerID` and `teamPlayerID` to successfully identify all existing users. Upgrading existing Game Center sign in integrations to SDK version 10.5.0 or later is irreversible.",
	//   "flatPath": "v1/accounts:signInWithGameCenter",
	//   "httpMethod": "POST",
	//   "id": "identitytoolkit.accounts.signInWithGameCenter",
	//   "parameterOrder": [],
	//   "parameters": {},
	//   "path": "v1/accounts:signInWithGameCenter",
	//   "request": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1SignInWithGameCenterRequest"
	//   },
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1SignInWithGameCenterResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}

// method id "identitytoolkit.accounts.signInWithIdp":

type AccountsSignInWithIdpCall struct {
	s                                                *Service
	googlecloudidentitytoolkitv1signinwithidprequest *GoogleCloudIdentitytoolkitV1SignInWithIdpRequest
	urlParams_                                       gensupport.URLParams
	ctx_                                             context.Context
	header_                                          http.Header
}

// SignInWithIdp: Signs in or signs up a user using credentials from an
// Identity Provider (IdP). This is done by manually providing an IdP
// credential, or by providing the authorization response obtained via
// the authorization request from CreateAuthUri. If the sign-in
// succeeds, a new Identity Platform ID token and refresh token are
// issued for the authenticated user. A new Identity Platform user
// account will be created if the user has not previously signed in to
// the IdP with the same account. In addition, when the "One account per
// email address" setting is enabled, there should not be an existing
// Identity Platform user account with the same email address for a new
// user account to be created. An API key
// (https://cloud.google.com/docs/authentication/api-keys) is required
// in the request in order to identify the Google Cloud project.
func (r *AccountsService) SignInWithIdp(googlecloudidentitytoolkitv1signinwithidprequest *GoogleCloudIdentitytoolkitV1SignInWithIdpRequest) *AccountsSignInWithIdpCall {
	c := &AccountsSignInWithIdpCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.googlecloudidentitytoolkitv1signinwithidprequest = googlecloudidentitytoolkitv1signinwithidprequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *AccountsSignInWithIdpCall) Fields(s ...googleapi.Field) *AccountsSignInWithIdpCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *AccountsSignInWithIdpCall) Context(ctx context.Context) *AccountsSignInWithIdpCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *AccountsSignInWithIdpCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *AccountsSignInWithIdpCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudidentitytoolkitv1signinwithidprequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/accounts:signInWithIdp")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.accounts.signInWithIdp" call.
// Exactly one of *GoogleCloudIdentitytoolkitV1SignInWithIdpResponse or
// error will be non-nil. Any non-2xx status code is an error. Response
// headers are in either
// *GoogleCloudIdentitytoolkitV1SignInWithIdpResponse.ServerResponse.Head
// er or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *AccountsSignInWithIdpCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1SignInWithIdpResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1SignInWithIdpResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Signs in or signs up a user using credentials from an Identity Provider (IdP). This is done by manually providing an IdP credential, or by providing the authorization response obtained via the authorization request from CreateAuthUri. If the sign-in succeeds, a new Identity Platform ID token and refresh token are issued for the authenticated user. A new Identity Platform user account will be created if the user has not previously signed in to the IdP with the same account. In addition, when the \"One account per email address\" setting is enabled, there should not be an existing Identity Platform user account with the same email address for a new user account to be created. An [API key](https://cloud.google.com/docs/authentication/api-keys) is required in the request in order to identify the Google Cloud project.",
	//   "flatPath": "v1/accounts:signInWithIdp",
	//   "httpMethod": "POST",
	//   "id": "identitytoolkit.accounts.signInWithIdp",
	//   "parameterOrder": [],
	//   "parameters": {},
	//   "path": "v1/accounts:signInWithIdp",
	//   "request": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1SignInWithIdpRequest"
	//   },
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1SignInWithIdpResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}

// method id "identitytoolkit.accounts.signInWithPassword":

type AccountsSignInWithPasswordCall struct {
	s                                                     *Service
	googlecloudidentitytoolkitv1signinwithpasswordrequest *GoogleCloudIdentitytoolkitV1SignInWithPasswordRequest
	urlParams_                                            gensupport.URLParams
	ctx_                                                  context.Context
	header_                                               http.Header
}

// SignInWithPassword: Signs in a user with email and password. If the
// sign-in succeeds, a new Identity Platform ID token and refresh token
// are issued for the authenticated user. An API key
// (https://cloud.google.com/docs/authentication/api-keys) is required
// in the request in order to identify the Google Cloud project.
func (r *AccountsService) SignInWithPassword(googlecloudidentitytoolkitv1signinwithpasswordrequest *GoogleCloudIdentitytoolkitV1SignInWithPasswordRequest) *AccountsSignInWithPasswordCall {
	c := &AccountsSignInWithPasswordCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.googlecloudidentitytoolkitv1signinwithpasswordrequest = googlecloudidentitytoolkitv1signinwithpasswordrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *AccountsSignInWithPasswordCall) Fields(s ...googleapi.Field) *AccountsSignInWithPasswordCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *AccountsSignInWithPasswordCall) Context(ctx context.Context) *AccountsSignInWithPasswordCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *AccountsSignInWithPasswordCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *AccountsSignInWithPasswordCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudidentitytoolkitv1signinwithpasswordrequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/accounts:signInWithPassword")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.accounts.signInWithPassword" call.
// Exactly one of
// *GoogleCloudIdentitytoolkitV1SignInWithPasswordResponse or error will
// be non-nil. Any non-2xx status code is an error. Response headers are
// in either
// *GoogleCloudIdentitytoolkitV1SignInWithPasswordResponse.ServerResponse
// .Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *AccountsSignInWithPasswordCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1SignInWithPasswordResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1SignInWithPasswordResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Signs in a user with email and password. If the sign-in succeeds, a new Identity Platform ID token and refresh token are issued for the authenticated user. An [API key](https://cloud.google.com/docs/authentication/api-keys) is required in the request in order to identify the Google Cloud project.",
	//   "flatPath": "v1/accounts:signInWithPassword",
	//   "httpMethod": "POST",
	//   "id": "identitytoolkit.accounts.signInWithPassword",
	//   "parameterOrder": [],
	//   "parameters": {},
	//   "path": "v1/accounts:signInWithPassword",
	//   "request": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1SignInWithPasswordRequest"
	//   },
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1SignInWithPasswordResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}

// method id "identitytoolkit.accounts.signInWithPhoneNumber":

type AccountsSignInWithPhoneNumberCall struct {
	s                                                        *Service
	googlecloudidentitytoolkitv1signinwithphonenumberrequest *GoogleCloudIdentitytoolkitV1SignInWithPhoneNumberRequest
	urlParams_                                               gensupport.URLParams
	ctx_                                                     context.Context
	header_                                                  http.Header
}

// SignInWithPhoneNumber: Completes a phone number authentication
// attempt. If a user already exists with the given phone number, an ID
// token is minted for that user. Otherwise, a new user is created and
// associated with the phone number. This method may also be used to
// link a phone number to an existing user. An API key
// (https://cloud.google.com/docs/authentication/api-keys) is required
// in the request in order to identify the Google Cloud project.
func (r *AccountsService) SignInWithPhoneNumber(googlecloudidentitytoolkitv1signinwithphonenumberrequest *GoogleCloudIdentitytoolkitV1SignInWithPhoneNumberRequest) *AccountsSignInWithPhoneNumberCall {
	c := &AccountsSignInWithPhoneNumberCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.googlecloudidentitytoolkitv1signinwithphonenumberrequest = googlecloudidentitytoolkitv1signinwithphonenumberrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *AccountsSignInWithPhoneNumberCall) Fields(s ...googleapi.Field) *AccountsSignInWithPhoneNumberCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *AccountsSignInWithPhoneNumberCall) Context(ctx context.Context) *AccountsSignInWithPhoneNumberCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *AccountsSignInWithPhoneNumberCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *AccountsSignInWithPhoneNumberCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudidentitytoolkitv1signinwithphonenumberrequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/accounts:signInWithPhoneNumber")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.accounts.signInWithPhoneNumber" call.
// Exactly one of
// *GoogleCloudIdentitytoolkitV1SignInWithPhoneNumberResponse or error
// will be non-nil. Any non-2xx status code is an error. Response
// headers are in either
// *GoogleCloudIdentitytoolkitV1SignInWithPhoneNumberResponse.ServerRespo
// nse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *AccountsSignInWithPhoneNumberCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1SignInWithPhoneNumberResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1SignInWithPhoneNumberResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Completes a phone number authentication attempt. If a user already exists with the given phone number, an ID token is minted for that user. Otherwise, a new user is created and associated with the phone number. This method may also be used to link a phone number to an existing user. An [API key](https://cloud.google.com/docs/authentication/api-keys) is required in the request in order to identify the Google Cloud project.",
	//   "flatPath": "v1/accounts:signInWithPhoneNumber",
	//   "httpMethod": "POST",
	//   "id": "identitytoolkit.accounts.signInWithPhoneNumber",
	//   "parameterOrder": [],
	//   "parameters": {},
	//   "path": "v1/accounts:signInWithPhoneNumber",
	//   "request": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1SignInWithPhoneNumberRequest"
	//   },
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1SignInWithPhoneNumberResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}

// method id "identitytoolkit.accounts.signUp":

type AccountsSignUpCall struct {
	s                                         *Service
	googlecloudidentitytoolkitv1signuprequest *GoogleCloudIdentitytoolkitV1SignUpRequest
	urlParams_                                gensupport.URLParams
	ctx_                                      context.Context
	header_                                   http.Header
}

// SignUp: Signs up a new email and password user or anonymous user, or
// upgrades an anonymous user to email and password. For an admin
// request with a Google OAuth 2.0 credential with the proper
// permissions
// (https://cloud.google.com/identity-platform/docs/access-control),
// creates a new anonymous, email and password, or phone number user. An
// API key (https://cloud.google.com/docs/authentication/api-keys) is
// required in the request in order to identify the Google Cloud
// project.
func (r *AccountsService) SignUp(googlecloudidentitytoolkitv1signuprequest *GoogleCloudIdentitytoolkitV1SignUpRequest) *AccountsSignUpCall {
	c := &AccountsSignUpCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.googlecloudidentitytoolkitv1signuprequest = googlecloudidentitytoolkitv1signuprequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *AccountsSignUpCall) Fields(s ...googleapi.Field) *AccountsSignUpCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *AccountsSignUpCall) Context(ctx context.Context) *AccountsSignUpCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *AccountsSignUpCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *AccountsSignUpCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudidentitytoolkitv1signuprequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/accounts:signUp")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.accounts.signUp" call.
// Exactly one of *GoogleCloudIdentitytoolkitV1SignUpResponse or error
// will be non-nil. Any non-2xx status code is an error. Response
// headers are in either
// *GoogleCloudIdentitytoolkitV1SignUpResponse.ServerResponse.Header or
// (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *AccountsSignUpCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1SignUpResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1SignUpResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Signs up a new email and password user or anonymous user, or upgrades an anonymous user to email and password. For an admin request with a Google OAuth 2.0 credential with the proper [permissions](https://cloud.google.com/identity-platform/docs/access-control), creates a new anonymous, email and password, or phone number user. An [API key](https://cloud.google.com/docs/authentication/api-keys) is required in the request in order to identify the Google Cloud project.",
	//   "flatPath": "v1/accounts:signUp",
	//   "httpMethod": "POST",
	//   "id": "identitytoolkit.accounts.signUp",
	//   "parameterOrder": [],
	//   "parameters": {},
	//   "path": "v1/accounts:signUp",
	//   "request": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1SignUpRequest"
	//   },
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1SignUpResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}

// method id "identitytoolkit.accounts.update":

type AccountsUpdateCall struct {
	s                                                 *Service
	googlecloudidentitytoolkitv1setaccountinforequest *GoogleCloudIdentitytoolkitV1SetAccountInfoRequest
	urlParams_                                        gensupport.URLParams
	ctx_                                              context.Context
	header_                                           http.Header
}

// Update: Updates account-related information for the specified user by
// setting specific fields or applying action codes. Requests from
// administrators and end users are supported.
func (r *AccountsService) Update(googlecloudidentitytoolkitv1setaccountinforequest *GoogleCloudIdentitytoolkitV1SetAccountInfoRequest) *AccountsUpdateCall {
	c := &AccountsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.googlecloudidentitytoolkitv1setaccountinforequest = googlecloudidentitytoolkitv1setaccountinforequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *AccountsUpdateCall) Fields(s ...googleapi.Field) *AccountsUpdateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *AccountsUpdateCall) Context(ctx context.Context) *AccountsUpdateCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *AccountsUpdateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *AccountsUpdateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudidentitytoolkitv1setaccountinforequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/accounts:update")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.accounts.update" call.
// Exactly one of *GoogleCloudIdentitytoolkitV1SetAccountInfoResponse or
// error will be non-nil. Any non-2xx status code is an error. Response
// headers are in either
// *GoogleCloudIdentitytoolkitV1SetAccountInfoResponse.ServerResponse.Hea
// der or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *AccountsUpdateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1SetAccountInfoResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1SetAccountInfoResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Updates account-related information for the specified user by setting specific fields or applying action codes. Requests from administrators and end users are supported.",
	//   "flatPath": "v1/accounts:update",
	//   "httpMethod": "POST",
	//   "id": "identitytoolkit.accounts.update",
	//   "parameterOrder": [],
	//   "parameters": {},
	//   "path": "v1/accounts:update",
	//   "request": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1SetAccountInfoRequest"
	//   },
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1SetAccountInfoResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}

// method id "identitytoolkit.accounts.verifyIosClient":

type AccountsVerifyIosClientCall struct {
	s                                                  *Service
	googlecloudidentitytoolkitv1verifyiosclientrequest *GoogleCloudIdentitytoolkitV1VerifyIosClientRequest
	urlParams_                                         gensupport.URLParams
	ctx_                                               context.Context
	header_                                            http.Header
}

// VerifyIosClient: Verifies an iOS client is a real iOS device. If the
// request is valid, a receipt will be sent in the response and a secret
// will be sent via Apple Push Notification Service. The client should
// send both of them back to certain Identity Platform APIs in a later
// call (for example, /accounts:sendVerificationCode), in order to
// verify the client. The bundle ID is required in the request header as
// `x-ios-bundle-identifier`. An API key
// (https://cloud.google.com/docs/authentication/api-keys) is required
// in the request in order to identify the Google Cloud project.
func (r *AccountsService) VerifyIosClient(googlecloudidentitytoolkitv1verifyiosclientrequest *GoogleCloudIdentitytoolkitV1VerifyIosClientRequest) *AccountsVerifyIosClientCall {
	c := &AccountsVerifyIosClientCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.googlecloudidentitytoolkitv1verifyiosclientrequest = googlecloudidentitytoolkitv1verifyiosclientrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *AccountsVerifyIosClientCall) Fields(s ...googleapi.Field) *AccountsVerifyIosClientCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *AccountsVerifyIosClientCall) Context(ctx context.Context) *AccountsVerifyIosClientCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *AccountsVerifyIosClientCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *AccountsVerifyIosClientCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudidentitytoolkitv1verifyiosclientrequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/accounts:verifyIosClient")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.accounts.verifyIosClient" call.
// Exactly one of *GoogleCloudIdentitytoolkitV1VerifyIosClientResponse
// or error will be non-nil. Any non-2xx status code is an error.
// Response headers are in either
// *GoogleCloudIdentitytoolkitV1VerifyIosClientResponse.ServerResponse.He
// ader or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *AccountsVerifyIosClientCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1VerifyIosClientResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1VerifyIosClientResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Verifies an iOS client is a real iOS device. If the request is valid, a receipt will be sent in the response and a secret will be sent via Apple Push Notification Service. The client should send both of them back to certain Identity Platform APIs in a later call (for example, /accounts:sendVerificationCode), in order to verify the client. The bundle ID is required in the request header as `x-ios-bundle-identifier`. An [API key](https://cloud.google.com/docs/authentication/api-keys) is required in the request in order to identify the Google Cloud project.",
	//   "flatPath": "v1/accounts:verifyIosClient",
	//   "httpMethod": "POST",
	//   "id": "identitytoolkit.accounts.verifyIosClient",
	//   "parameterOrder": [],
	//   "parameters": {},
	//   "path": "v1/accounts:verifyIosClient",
	//   "request": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1VerifyIosClientRequest"
	//   },
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1VerifyIosClientResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}

// method id "identitytoolkit.projects.accounts":

type ProjectsAccountsCall struct {
	s                                         *Service
	targetProjectId                           string
	googlecloudidentitytoolkitv1signuprequest *GoogleCloudIdentitytoolkitV1SignUpRequest
	urlParams_                                gensupport.URLParams
	ctx_                                      context.Context
	header_                                   http.Header
}

// Accounts: Signs up a new email and password user or anonymous user,
// or upgrades an anonymous user to email and password. For an admin
// request with a Google OAuth 2.0 credential with the proper
// permissions
// (https://cloud.google.com/identity-platform/docs/access-control),
// creates a new anonymous, email and password, or phone number user. An
// API key (https://cloud.google.com/docs/authentication/api-keys) is
// required in the request in order to identify the Google Cloud
// project.
//
//   - targetProjectId: The project ID of the project which the user
//     should belong to. Specifying this field requires a Google OAuth 2.0
//     credential with the proper permissions
//     (https://cloud.google.com/identity-platform/docs/access-control).
//     If this is not set, the target project is inferred from the scope
//     associated to the Bearer access token.
func (r *ProjectsService) Accounts(targetProjectId string, googlecloudidentitytoolkitv1signuprequest *GoogleCloudIdentitytoolkitV1SignUpRequest) *ProjectsAccountsCall {
	c := &ProjectsAccountsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.targetProjectId = targetProjectId
	c.googlecloudidentitytoolkitv1signuprequest = googlecloudidentitytoolkitv1signuprequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *ProjectsAccountsCall) Fields(s ...googleapi.Field) *ProjectsAccountsCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *ProjectsAccountsCall) Context(ctx context.Context) *ProjectsAccountsCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *ProjectsAccountsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsAccountsCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudidentitytoolkitv1signuprequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{+targetProjectId}/accounts")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"targetProjectId": c.targetProjectId,
	})
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.projects.accounts" call.
// Exactly one of *GoogleCloudIdentitytoolkitV1SignUpResponse or error
// will be non-nil. Any non-2xx status code is an error. Response
// headers are in either
// *GoogleCloudIdentitytoolkitV1SignUpResponse.ServerResponse.Header or
// (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsAccountsCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1SignUpResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1SignUpResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Signs up a new email and password user or anonymous user, or upgrades an anonymous user to email and password. For an admin request with a Google OAuth 2.0 credential with the proper [permissions](https://cloud.google.com/identity-platform/docs/access-control), creates a new anonymous, email and password, or phone number user. An [API key](https://cloud.google.com/docs/authentication/api-keys) is required in the request in order to identify the Google Cloud project.",
	//   "flatPath": "v1/projects/{projectsId}/accounts",
	//   "httpMethod": "POST",
	//   "id": "identitytoolkit.projects.accounts",
	//   "parameterOrder": [
	//     "targetProjectId"
	//   ],
	//   "parameters": {
	//     "targetProjectId": {
	//       "description": "The project ID of the project which the user should belong to. Specifying this field requires a Google OAuth 2.0 credential with the proper [permissions](https://cloud.google.com/identity-platform/docs/access-control). If this is not set, the target project is inferred from the scope associated to the Bearer access token.",
	//       "location": "path",
	//       "pattern": "^[^/]+$",
	//       "required": true,
	//       "type": "string"
	//     }
	//   },
	//   "path": "v1/projects/{+targetProjectId}/accounts",
	//   "request": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1SignUpRequest"
	//   },
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1SignUpResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}

// method id "identitytoolkit.projects.createSessionCookie":

type ProjectsCreateSessionCookieCall struct {
	s                                                      *Service
	targetProjectId                                        string
	googlecloudidentitytoolkitv1createsessioncookierequest *GoogleCloudIdentitytoolkitV1CreateSessionCookieRequest
	urlParams_                                             gensupport.URLParams
	ctx_                                                   context.Context
	header_                                                http.Header
}

// CreateSessionCookie: Creates a session cookie for the given Identity
// Platform ID token. The session cookie is used by the client to
// preserve the user's login state.
//
// - targetProjectId: The ID of the project that the account belongs to.
func (r *ProjectsService) CreateSessionCookie(targetProjectId string, googlecloudidentitytoolkitv1createsessioncookierequest *GoogleCloudIdentitytoolkitV1CreateSessionCookieRequest) *ProjectsCreateSessionCookieCall {
	c := &ProjectsCreateSessionCookieCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.targetProjectId = targetProjectId
	c.googlecloudidentitytoolkitv1createsessioncookierequest = googlecloudidentitytoolkitv1createsessioncookierequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *ProjectsCreateSessionCookieCall) Fields(s ...googleapi.Field) *ProjectsCreateSessionCookieCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *ProjectsCreateSessionCookieCall) Context(ctx context.Context) *ProjectsCreateSessionCookieCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *ProjectsCreateSessionCookieCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsCreateSessionCookieCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudidentitytoolkitv1createsessioncookierequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{+targetProjectId}:createSessionCookie")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"targetProjectId": c.targetProjectId,
	})
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.projects.createSessionCookie" call.
// Exactly one of
// *GoogleCloudIdentitytoolkitV1CreateSessionCookieResponse or error
// will be non-nil. Any non-2xx status code is an error. Response
// headers are in either
// *GoogleCloudIdentitytoolkitV1CreateSessionCookieResponse.ServerRespons
// e.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsCreateSessionCookieCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1CreateSessionCookieResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1CreateSessionCookieResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Creates a session cookie for the given Identity Platform ID token. The session cookie is used by the client to preserve the user's login state.",
	//   "flatPath": "v1/projects/{projectsId}:createSessionCookie",
	//   "httpMethod": "POST",
	//   "id": "identitytoolkit.projects.createSessionCookie",
	//   "parameterOrder": [
	//     "targetProjectId"
	//   ],
	//   "parameters": {
	//     "targetProjectId": {
	//       "description": "The ID of the project that the account belongs to.",
	//       "location": "path",
	//       "pattern": "^[^/]+$",
	//       "required": true,
	//       "type": "string"
	//     }
	//   },
	//   "path": "v1/projects/{+targetProjectId}:createSessionCookie",
	//   "request": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1CreateSessionCookieRequest"
	//   },
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1CreateSessionCookieResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}

// method id "identitytoolkit.projects.queryAccounts":

type ProjectsQueryAccountsCall struct {
	s                                                *Service
	targetProjectId                                  string
	googlecloudidentitytoolkitv1queryuserinforequest *GoogleCloudIdentitytoolkitV1QueryUserInfoRequest
	urlParams_                                       gensupport.URLParams
	ctx_                                             context.Context
	header_                                          http.Header
}

// QueryAccounts: Looks up user accounts within a project or a tenant
// based on conditions in the request.
//
//   - targetProjectId: The ID of the project to which the result is
//     scoped.
func (r *ProjectsService) QueryAccounts(targetProjectId string, googlecloudidentitytoolkitv1queryuserinforequest *GoogleCloudIdentitytoolkitV1QueryUserInfoRequest) *ProjectsQueryAccountsCall {
	c := &ProjectsQueryAccountsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.targetProjectId = targetProjectId
	c.googlecloudidentitytoolkitv1queryuserinforequest = googlecloudidentitytoolkitv1queryuserinforequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *ProjectsQueryAccountsCall) Fields(s ...googleapi.Field) *ProjectsQueryAccountsCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *ProjectsQueryAccountsCall) Context(ctx context.Context) *ProjectsQueryAccountsCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *ProjectsQueryAccountsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsQueryAccountsCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudidentitytoolkitv1queryuserinforequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{+targetProjectId}:queryAccounts")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"targetProjectId": c.targetProjectId,
	})
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.projects.queryAccounts" call.
// Exactly one of *GoogleCloudIdentitytoolkitV1QueryUserInfoResponse or
// error will be non-nil. Any non-2xx status code is an error. Response
// headers are in either
// *GoogleCloudIdentitytoolkitV1QueryUserInfoResponse.ServerResponse.Head
// er or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsQueryAccountsCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1QueryUserInfoResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1QueryUserInfoResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Looks up user accounts within a project or a tenant based on conditions in the request.",
	//   "flatPath": "v1/projects/{projectsId}:queryAccounts",
	//   "httpMethod": "POST",
	//   "id": "identitytoolkit.projects.queryAccounts",
	//   "parameterOrder": [
	//     "targetProjectId"
	//   ],
	//   "parameters": {
	//     "targetProjectId": {
	//       "description": "The ID of the project to which the result is scoped.",
	//       "location": "path",
	//       "pattern": "^[^/]+$",
	//       "required": true,
	//       "type": "string"
	//     }
	//   },
	//   "path": "v1/projects/{+targetProjectId}:queryAccounts",
	//   "request": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1QueryUserInfoRequest"
	//   },
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1QueryUserInfoResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform",
	//     "https://www.googleapis.com/auth/firebase"
	//   ]
	// }

}

// method id "identitytoolkit.projects.accounts.batchCreate":

type ProjectsAccountsBatchCreateCall struct {
	s                                                *Service
	targetProjectId                                  string
	googlecloudidentitytoolkitv1uploadaccountrequest *GoogleCloudIdentitytoolkitV1UploadAccountRequest
	urlParams_                                       gensupport.URLParams
	ctx_                                             context.Context
	header_                                          http.Header
}

// BatchCreate: Uploads multiple accounts into the Google Cloud project.
// If there is a problem uploading one or more of the accounts, the rest
// will be uploaded, and a list of the errors will be returned. To use
// this method requires a Google OAuth 2.0 credential with proper
// permissions
// (https://cloud.google.com/identity-platform/docs/access-control).
//
//   - targetProjectId: The Project ID of the Identity Platform project
//     which the account belongs to.
func (r *ProjectsAccountsService) BatchCreate(targetProjectId string, googlecloudidentitytoolkitv1uploadaccountrequest *GoogleCloudIdentitytoolkitV1UploadAccountRequest) *ProjectsAccountsBatchCreateCall {
	c := &ProjectsAccountsBatchCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.targetProjectId = targetProjectId
	c.googlecloudidentitytoolkitv1uploadaccountrequest = googlecloudidentitytoolkitv1uploadaccountrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *ProjectsAccountsBatchCreateCall) Fields(s ...googleapi.Field) *ProjectsAccountsBatchCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *ProjectsAccountsBatchCreateCall) Context(ctx context.Context) *ProjectsAccountsBatchCreateCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *ProjectsAccountsBatchCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsAccountsBatchCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudidentitytoolkitv1uploadaccountrequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{+targetProjectId}/accounts:batchCreate")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"targetProjectId": c.targetProjectId,
	})
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.projects.accounts.batchCreate" call.
// Exactly one of *GoogleCloudIdentitytoolkitV1UploadAccountResponse or
// error will be non-nil. Any non-2xx status code is an error. Response
// headers are in either
// *GoogleCloudIdentitytoolkitV1UploadAccountResponse.ServerResponse.Head
// er or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsAccountsBatchCreateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1UploadAccountResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1UploadAccountResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Uploads multiple accounts into the Google Cloud project. If there is a problem uploading one or more of the accounts, the rest will be uploaded, and a list of the errors will be returned. To use this method requires a Google OAuth 2.0 credential with proper [permissions](https://cloud.google.com/identity-platform/docs/access-control).",
	//   "flatPath": "v1/projects/{projectsId}/accounts:batchCreate",
	//   "httpMethod": "POST",
	//   "id": "identitytoolkit.projects.accounts.batchCreate",
	//   "parameterOrder": [
	//     "targetProjectId"
	//   ],
	//   "parameters": {
	//     "targetProjectId": {
	//       "description": "The Project ID of the Identity Platform project which the account belongs to.",
	//       "location": "path",
	//       "pattern": "^[^/]+$",
	//       "required": true,
	//       "type": "string"
	//     }
	//   },
	//   "path": "v1/projects/{+targetProjectId}/accounts:batchCreate",
	//   "request": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1UploadAccountRequest"
	//   },
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1UploadAccountResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform",
	//     "https://www.googleapis.com/auth/firebase"
	//   ]
	// }

}

// method id "identitytoolkit.projects.accounts.batchDelete":

type ProjectsAccountsBatchDeleteCall struct {
	s                                                      *Service
	targetProjectId                                        string
	googlecloudidentitytoolkitv1batchdeleteaccountsrequest *GoogleCloudIdentitytoolkitV1BatchDeleteAccountsRequest
	urlParams_                                             gensupport.URLParams
	ctx_                                                   context.Context
	header_                                                http.Header
}

// BatchDelete: Batch deletes multiple accounts. For accounts that fail
// to be deleted, error info is contained in the response. The method
// ignores accounts that do not exist or are duplicated in the request.
// This method requires a Google OAuth 2.0 credential with proper
// [permissions]
// (https://cloud.google.com/identity-platform/docs/access-control).
//
//   - targetProjectId: If `tenant_id` is specified, the ID of the Google
//     Cloud project that the Identity Platform tenant belongs to.
//     Otherwise, the ID of the Google Cloud project that accounts belong
//     to.
func (r *ProjectsAccountsService) BatchDelete(targetProjectId string, googlecloudidentitytoolkitv1batchdeleteaccountsrequest *GoogleCloudIdentitytoolkitV1BatchDeleteAccountsRequest) *ProjectsAccountsBatchDeleteCall {
	c := &ProjectsAccountsBatchDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.targetProjectId = targetProjectId
	c.googlecloudidentitytoolkitv1batchdeleteaccountsrequest = googlecloudidentitytoolkitv1batchdeleteaccountsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *ProjectsAccountsBatchDeleteCall) Fields(s ...googleapi.Field) *ProjectsAccountsBatchDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *ProjectsAccountsBatchDeleteCall) Context(ctx context.Context) *ProjectsAccountsBatchDeleteCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *ProjectsAccountsBatchDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsAccountsBatchDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudidentitytoolkitv1batchdeleteaccountsrequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{+targetProjectId}/accounts:batchDelete")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"targetProjectId": c.targetProjectId,
	})
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.projects.accounts.batchDelete" call.
// Exactly one of
// *GoogleCloudIdentitytoolkitV1BatchDeleteAccountsResponse or error
// will be non-nil. Any non-2xx status code is an error. Response
// headers are in either
// *GoogleCloudIdentitytoolkitV1BatchDeleteAccountsResponse.ServerRespons
// e.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsAccountsBatchDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1BatchDeleteAccountsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1BatchDeleteAccountsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Batch deletes multiple accounts. For accounts that fail to be deleted, error info is contained in the response. The method ignores accounts that do not exist or are duplicated in the request. This method requires a Google OAuth 2.0 credential with proper [permissions] (https://cloud.google.com/identity-platform/docs/access-control).",
	//   "flatPath": "v1/projects/{projectsId}/accounts:batchDelete",
	//   "httpMethod": "POST",
	//   "id": "identitytoolkit.projects.accounts.batchDelete",
	//   "parameterOrder": [
	//     "targetProjectId"
	//   ],
	//   "parameters": {
	//     "targetProjectId": {
	//       "description": "If `tenant_id` is specified, the ID of the Google Cloud project that the Identity Platform tenant belongs to. Otherwise, the ID of the Google Cloud project that accounts belong to.",
	//       "location": "path",
	//       "pattern": "^[^/]+$",
	//       "required": true,
	//       "type": "string"
	//     }
	//   },
	//   "path": "v1/projects/{+targetProjectId}/accounts:batchDelete",
	//   "request": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1BatchDeleteAccountsRequest"
	//   },
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1BatchDeleteAccountsResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform",
	//     "https://www.googleapis.com/auth/firebase"
	//   ]
	// }

}

// method id "identitytoolkit.projects.accounts.batchGet":

type ProjectsAccountsBatchGetCall struct {
	s               *Service
	targetProjectId string
	urlParams_      gensupport.URLParams
	ifNoneMatch_    string
	ctx_            context.Context
	header_         http.Header
}

// BatchGet: Download account information for all accounts on the
// project in a paginated manner. To use this method requires a Google
// OAuth 2.0 credential with proper permissions
// (https://cloud.google.com/identity-platform/docs/access-control)..
// Furthermore, additional permissions are needed to get password hash,
// password salt, and password version from accounts; otherwise these
// fields are redacted.
//
//   - targetProjectId: If `tenant_id` is specified, the ID of the Google
//     Cloud project that the Identity Platform tenant belongs to.
//     Otherwise, the ID of the Google Cloud project that the accounts
//     belong to.
func (r *ProjectsAccountsService) BatchGet(targetProjectId string) *ProjectsAccountsBatchGetCall {
	c := &ProjectsAccountsBatchGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.targetProjectId = targetProjectId
	return c
}

// DelegatedProjectNumber sets the optional parameter
// "delegatedProjectNumber":
func (c *ProjectsAccountsBatchGetCall) DelegatedProjectNumber(delegatedProjectNumber int64) *ProjectsAccountsBatchGetCall {
	c.urlParams_.Set("delegatedProjectNumber", fmt.Sprint(delegatedProjectNumber))
	return c
}

// MaxResults sets the optional parameter "maxResults": The maximum
// number of results to return. Must be at least 1 and no greater than
// 1000. By default, it is 20.
func (c *ProjectsAccountsBatchGetCall) MaxResults(maxResults int64) *ProjectsAccountsBatchGetCall {
	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
	return c
}

// NextPageToken sets the optional parameter "nextPageToken": The
// pagination token from the response of a previous request.
func (c *ProjectsAccountsBatchGetCall) NextPageToken(nextPageToken string) *ProjectsAccountsBatchGetCall {
	c.urlParams_.Set("nextPageToken", nextPageToken)
	return c
}

// TenantId sets the optional parameter "tenantId": The ID of the
// Identity Platform tenant the accounts belongs to. If not specified,
// accounts on the Identity Platform project are returned.
func (c *ProjectsAccountsBatchGetCall) TenantId(tenantId string) *ProjectsAccountsBatchGetCall {
	c.urlParams_.Set("tenantId", tenantId)
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *ProjectsAccountsBatchGetCall) Fields(s ...googleapi.Field) *ProjectsAccountsBatchGetCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// IfNoneMatch sets the optional parameter which makes the operation
// fail if the object's ETag matches the given value. This is useful for
// getting updates only after the object has changed since the last
// request. Use googleapi.IsNotModified to check whether the response
// error from Do is the result of In-None-Match.
func (c *ProjectsAccountsBatchGetCall) IfNoneMatch(entityTag string) *ProjectsAccountsBatchGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *ProjectsAccountsBatchGetCall) Context(ctx context.Context) *ProjectsAccountsBatchGetCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *ProjectsAccountsBatchGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsAccountsBatchGetCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	if c.ifNoneMatch_ != "" {
		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
	}
	var body io.Reader = nil
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{+targetProjectId}/accounts:batchGet")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("GET", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"targetProjectId": c.targetProjectId,
	})
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.projects.accounts.batchGet" call.
// Exactly one of *GoogleCloudIdentitytoolkitV1DownloadAccountResponse
// or error will be non-nil. Any non-2xx status code is an error.
// Response headers are in either
// *GoogleCloudIdentitytoolkitV1DownloadAccountResponse.ServerResponse.He
// ader or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsAccountsBatchGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1DownloadAccountResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1DownloadAccountResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Download account information for all accounts on the project in a paginated manner. To use this method requires a Google OAuth 2.0 credential with proper [permissions](https://cloud.google.com/identity-platform/docs/access-control).. Furthermore, additional permissions are needed to get password hash, password salt, and password version from accounts; otherwise these fields are redacted.",
	//   "flatPath": "v1/projects/{projectsId}/accounts:batchGet",
	//   "httpMethod": "GET",
	//   "id": "identitytoolkit.projects.accounts.batchGet",
	//   "parameterOrder": [
	//     "targetProjectId"
	//   ],
	//   "parameters": {
	//     "delegatedProjectNumber": {
	//       "deprecated": true,
	//       "format": "int64",
	//       "location": "query",
	//       "type": "string"
	//     },
	//     "maxResults": {
	//       "description": "The maximum number of results to return. Must be at least 1 and no greater than 1000. By default, it is 20.",
	//       "format": "int32",
	//       "location": "query",
	//       "type": "integer"
	//     },
	//     "nextPageToken": {
	//       "description": "The pagination token from the response of a previous request.",
	//       "location": "query",
	//       "type": "string"
	//     },
	//     "targetProjectId": {
	//       "description": "If `tenant_id` is specified, the ID of the Google Cloud project that the Identity Platform tenant belongs to. Otherwise, the ID of the Google Cloud project that the accounts belong to.",
	//       "location": "path",
	//       "pattern": "^[^/]+$",
	//       "required": true,
	//       "type": "string"
	//     },
	//     "tenantId": {
	//       "description": "The ID of the Identity Platform tenant the accounts belongs to. If not specified, accounts on the Identity Platform project are returned.",
	//       "location": "query",
	//       "type": "string"
	//     }
	//   },
	//   "path": "v1/projects/{+targetProjectId}/accounts:batchGet",
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1DownloadAccountResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform",
	//     "https://www.googleapis.com/auth/firebase"
	//   ]
	// }

}

// Pages invokes f for each page of results.
// A non-nil error returned from f will halt the iteration.
// The provided context supersedes any context provided to the Context method.
func (c *ProjectsAccountsBatchGetCall) Pages(ctx context.Context, f func(*GoogleCloudIdentitytoolkitV1DownloadAccountResponse) error) error {
	c.ctx_ = ctx
	defer c.NextPageToken(c.urlParams_.Get("nextPageToken")) // reset paging to original point
	for {
		x, err := c.Do()
		if err != nil {
			return err
		}
		if err := f(x); err != nil {
			return err
		}
		if x.NextPageToken == "" {
			return nil
		}
		c.NextPageToken(x.NextPageToken)
	}
}

// method id "identitytoolkit.projects.accounts.delete":

type ProjectsAccountsDeleteCall struct {
	s                                                *Service
	targetProjectId                                  string
	googlecloudidentitytoolkitv1deleteaccountrequest *GoogleCloudIdentitytoolkitV1DeleteAccountRequest
	urlParams_                                       gensupport.URLParams
	ctx_                                             context.Context
	header_                                          http.Header
}

// Delete: Deletes a user's account.
//
//   - targetProjectId: The ID of the project which the account belongs
//     to. Should only be specified in authenticated requests that specify
//     local_id of an account.
func (r *ProjectsAccountsService) Delete(targetProjectId string, googlecloudidentitytoolkitv1deleteaccountrequest *GoogleCloudIdentitytoolkitV1DeleteAccountRequest) *ProjectsAccountsDeleteCall {
	c := &ProjectsAccountsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.targetProjectId = targetProjectId
	c.googlecloudidentitytoolkitv1deleteaccountrequest = googlecloudidentitytoolkitv1deleteaccountrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *ProjectsAccountsDeleteCall) Fields(s ...googleapi.Field) *ProjectsAccountsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *ProjectsAccountsDeleteCall) Context(ctx context.Context) *ProjectsAccountsDeleteCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *ProjectsAccountsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsAccountsDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudidentitytoolkitv1deleteaccountrequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{+targetProjectId}/accounts:delete")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"targetProjectId": c.targetProjectId,
	})
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.projects.accounts.delete" call.
// Exactly one of *GoogleCloudIdentitytoolkitV1DeleteAccountResponse or
// error will be non-nil. Any non-2xx status code is an error. Response
// headers are in either
// *GoogleCloudIdentitytoolkitV1DeleteAccountResponse.ServerResponse.Head
// er or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsAccountsDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1DeleteAccountResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1DeleteAccountResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Deletes a user's account.",
	//   "flatPath": "v1/projects/{projectsId}/accounts:delete",
	//   "httpMethod": "POST",
	//   "id": "identitytoolkit.projects.accounts.delete",
	//   "parameterOrder": [
	//     "targetProjectId"
	//   ],
	//   "parameters": {
	//     "targetProjectId": {
	//       "description": "The ID of the project which the account belongs to. Should only be specified in authenticated requests that specify local_id of an account.",
	//       "location": "path",
	//       "pattern": "^[^/]+$",
	//       "required": true,
	//       "type": "string"
	//     }
	//   },
	//   "path": "v1/projects/{+targetProjectId}/accounts:delete",
	//   "request": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1DeleteAccountRequest"
	//   },
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1DeleteAccountResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}

// method id "identitytoolkit.projects.accounts.lookup":

type ProjectsAccountsLookupCall struct {
	s                                                 *Service
	targetProjectId                                   string
	googlecloudidentitytoolkitv1getaccountinforequest *GoogleCloudIdentitytoolkitV1GetAccountInfoRequest
	urlParams_                                        gensupport.URLParams
	ctx_                                              context.Context
	header_                                           http.Header
}

// Lookup: Gets account information for all matched accounts. For an end
// user request, retrieves the account of the end user. For an admin
// request with Google OAuth 2.0 credential, retrieves one or multiple
// account(s) with matching criteria.
//
//   - targetProjectId: The ID of the Google Cloud project that the
//     account or the Identity Platform tenant specified by `tenant_id`
//     belongs to. Should only be specified by authenticated requests
//     bearing a Google OAuth 2.0 credential with proper permissions
//     (https://cloud.google.com/identity-platform/docs/access-control).
func (r *ProjectsAccountsService) Lookup(targetProjectId string, googlecloudidentitytoolkitv1getaccountinforequest *GoogleCloudIdentitytoolkitV1GetAccountInfoRequest) *ProjectsAccountsLookupCall {
	c := &ProjectsAccountsLookupCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.targetProjectId = targetProjectId
	c.googlecloudidentitytoolkitv1getaccountinforequest = googlecloudidentitytoolkitv1getaccountinforequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *ProjectsAccountsLookupCall) Fields(s ...googleapi.Field) *ProjectsAccountsLookupCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *ProjectsAccountsLookupCall) Context(ctx context.Context) *ProjectsAccountsLookupCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *ProjectsAccountsLookupCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsAccountsLookupCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudidentitytoolkitv1getaccountinforequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{+targetProjectId}/accounts:lookup")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"targetProjectId": c.targetProjectId,
	})
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.projects.accounts.lookup" call.
// Exactly one of *GoogleCloudIdentitytoolkitV1GetAccountInfoResponse or
// error will be non-nil. Any non-2xx status code is an error. Response
// headers are in either
// *GoogleCloudIdentitytoolkitV1GetAccountInfoResponse.ServerResponse.Hea
// der or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsAccountsLookupCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1GetAccountInfoResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1GetAccountInfoResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Gets account information for all matched accounts. For an end user request, retrieves the account of the end user. For an admin request with Google OAuth 2.0 credential, retrieves one or multiple account(s) with matching criteria.",
	//   "flatPath": "v1/projects/{projectsId}/accounts:lookup",
	//   "httpMethod": "POST",
	//   "id": "identitytoolkit.projects.accounts.lookup",
	//   "parameterOrder": [
	//     "targetProjectId"
	//   ],
	//   "parameters": {
	//     "targetProjectId": {
	//       "description": "The ID of the Google Cloud project that the account or the Identity Platform tenant specified by `tenant_id` belongs to. Should only be specified by authenticated requests bearing a Google OAuth 2.0 credential with proper [permissions](https://cloud.google.com/identity-platform/docs/access-control).",
	//       "location": "path",
	//       "pattern": "^[^/]+$",
	//       "required": true,
	//       "type": "string"
	//     }
	//   },
	//   "path": "v1/projects/{+targetProjectId}/accounts:lookup",
	//   "request": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1GetAccountInfoRequest"
	//   },
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1GetAccountInfoResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}

// method id "identitytoolkit.projects.accounts.query":

type ProjectsAccountsQueryCall struct {
	s                                                *Service
	targetProjectId                                  string
	googlecloudidentitytoolkitv1queryuserinforequest *GoogleCloudIdentitytoolkitV1QueryUserInfoRequest
	urlParams_                                       gensupport.URLParams
	ctx_                                             context.Context
	header_                                          http.Header
}

// Query: Looks up user accounts within a project or a tenant based on
// conditions in the request.
//
//   - targetProjectId: The ID of the project to which the result is
//     scoped.
func (r *ProjectsAccountsService) Query(targetProjectId string, googlecloudidentitytoolkitv1queryuserinforequest *GoogleCloudIdentitytoolkitV1QueryUserInfoRequest) *ProjectsAccountsQueryCall {
	c := &ProjectsAccountsQueryCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.targetProjectId = targetProjectId
	c.googlecloudidentitytoolkitv1queryuserinforequest = googlecloudidentitytoolkitv1queryuserinforequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *ProjectsAccountsQueryCall) Fields(s ...googleapi.Field) *ProjectsAccountsQueryCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *ProjectsAccountsQueryCall) Context(ctx context.Context) *ProjectsAccountsQueryCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *ProjectsAccountsQueryCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsAccountsQueryCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudidentitytoolkitv1queryuserinforequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{+targetProjectId}/accounts:query")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"targetProjectId": c.targetProjectId,
	})
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.projects.accounts.query" call.
// Exactly one of *GoogleCloudIdentitytoolkitV1QueryUserInfoResponse or
// error will be non-nil. Any non-2xx status code is an error. Response
// headers are in either
// *GoogleCloudIdentitytoolkitV1QueryUserInfoResponse.ServerResponse.Head
// er or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsAccountsQueryCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1QueryUserInfoResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1QueryUserInfoResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Looks up user accounts within a project or a tenant based on conditions in the request.",
	//   "flatPath": "v1/projects/{projectsId}/accounts:query",
	//   "httpMethod": "POST",
	//   "id": "identitytoolkit.projects.accounts.query",
	//   "parameterOrder": [
	//     "targetProjectId"
	//   ],
	//   "parameters": {
	//     "targetProjectId": {
	//       "description": "The ID of the project to which the result is scoped.",
	//       "location": "path",
	//       "pattern": "^[^/]+$",
	//       "required": true,
	//       "type": "string"
	//     }
	//   },
	//   "path": "v1/projects/{+targetProjectId}/accounts:query",
	//   "request": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1QueryUserInfoRequest"
	//   },
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1QueryUserInfoResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform",
	//     "https://www.googleapis.com/auth/firebase"
	//   ]
	// }

}

// method id "identitytoolkit.projects.accounts.sendOobCode":

type ProjectsAccountsSendOobCodeCall struct {
	s                                             *Service
	targetProjectId                               string
	googlecloudidentitytoolkitv1getoobcoderequest *GoogleCloudIdentitytoolkitV1GetOobCodeRequest
	urlParams_                                    gensupport.URLParams
	ctx_                                          context.Context
	header_                                       http.Header
}

// SendOobCode: Sends an out-of-band confirmation code for an account.
// Requests from a authenticated request can optionally return a link
// including the OOB code instead of sending it.
//
//   - targetProjectId: The Project ID of the Identity Platform project
//     which the account belongs to. To specify this field, it requires a
//     Google OAuth 2.0 credential with proper permissions
//     (https://cloud.google.com/identity-platform/docs/access-control).
func (r *ProjectsAccountsService) SendOobCode(targetProjectId string, googlecloudidentitytoolkitv1getoobcoderequest *GoogleCloudIdentitytoolkitV1GetOobCodeRequest) *ProjectsAccountsSendOobCodeCall {
	c := &ProjectsAccountsSendOobCodeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.targetProjectId = targetProjectId
	c.googlecloudidentitytoolkitv1getoobcoderequest = googlecloudidentitytoolkitv1getoobcoderequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *ProjectsAccountsSendOobCodeCall) Fields(s ...googleapi.Field) *ProjectsAccountsSendOobCodeCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *ProjectsAccountsSendOobCodeCall) Context(ctx context.Context) *ProjectsAccountsSendOobCodeCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *ProjectsAccountsSendOobCodeCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsAccountsSendOobCodeCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudidentitytoolkitv1getoobcoderequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{+targetProjectId}/accounts:sendOobCode")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"targetProjectId": c.targetProjectId,
	})
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.projects.accounts.sendOobCode" call.
// Exactly one of *GoogleCloudIdentitytoolkitV1GetOobCodeResponse or
// error will be non-nil. Any non-2xx status code is an error. Response
// headers are in either
// *GoogleCloudIdentitytoolkitV1GetOobCodeResponse.ServerResponse.Header
// or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsAccountsSendOobCodeCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1GetOobCodeResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1GetOobCodeResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Sends an out-of-band confirmation code for an account. Requests from a authenticated request can optionally return a link including the OOB code instead of sending it.",
	//   "flatPath": "v1/projects/{projectsId}/accounts:sendOobCode",
	//   "httpMethod": "POST",
	//   "id": "identitytoolkit.projects.accounts.sendOobCode",
	//   "parameterOrder": [
	//     "targetProjectId"
	//   ],
	//   "parameters": {
	//     "targetProjectId": {
	//       "description": "The Project ID of the Identity Platform project which the account belongs to. To specify this field, it requires a Google OAuth 2.0 credential with proper [permissions](https://cloud.google.com/identity-platform/docs/access-control).",
	//       "location": "path",
	//       "pattern": "^[^/]+$",
	//       "required": true,
	//       "type": "string"
	//     }
	//   },
	//   "path": "v1/projects/{+targetProjectId}/accounts:sendOobCode",
	//   "request": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1GetOobCodeRequest"
	//   },
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1GetOobCodeResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}

// method id "identitytoolkit.projects.accounts.update":

type ProjectsAccountsUpdateCall struct {
	s                                                 *Service
	targetProjectId                                   string
	googlecloudidentitytoolkitv1setaccountinforequest *GoogleCloudIdentitytoolkitV1SetAccountInfoRequest
	urlParams_                                        gensupport.URLParams
	ctx_                                              context.Context
	header_                                           http.Header
}

// Update: Updates account-related information for the specified user by
// setting specific fields or applying action codes. Requests from
// administrators and end users are supported.
//
//   - targetProjectId: The project ID for the project that the account
//     belongs to. Specifying this field requires Google OAuth 2.0
//     credential with proper [permissions]
//     (https://cloud.google.com/identity-platform/docs/access-control).
//     Requests from end users should pass an Identity Platform ID token
//     instead.
func (r *ProjectsAccountsService) Update(targetProjectId string, googlecloudidentitytoolkitv1setaccountinforequest *GoogleCloudIdentitytoolkitV1SetAccountInfoRequest) *ProjectsAccountsUpdateCall {
	c := &ProjectsAccountsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.targetProjectId = targetProjectId
	c.googlecloudidentitytoolkitv1setaccountinforequest = googlecloudidentitytoolkitv1setaccountinforequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *ProjectsAccountsUpdateCall) Fields(s ...googleapi.Field) *ProjectsAccountsUpdateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *ProjectsAccountsUpdateCall) Context(ctx context.Context) *ProjectsAccountsUpdateCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *ProjectsAccountsUpdateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsAccountsUpdateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudidentitytoolkitv1setaccountinforequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{+targetProjectId}/accounts:update")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"targetProjectId": c.targetProjectId,
	})
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.projects.accounts.update" call.
// Exactly one of *GoogleCloudIdentitytoolkitV1SetAccountInfoResponse or
// error will be non-nil. Any non-2xx status code is an error. Response
// headers are in either
// *GoogleCloudIdentitytoolkitV1SetAccountInfoResponse.ServerResponse.Hea
// der or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsAccountsUpdateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1SetAccountInfoResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1SetAccountInfoResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Updates account-related information for the specified user by setting specific fields or applying action codes. Requests from administrators and end users are supported.",
	//   "flatPath": "v1/projects/{projectsId}/accounts:update",
	//   "httpMethod": "POST",
	//   "id": "identitytoolkit.projects.accounts.update",
	//   "parameterOrder": [
	//     "targetProjectId"
	//   ],
	//   "parameters": {
	//     "targetProjectId": {
	//       "description": "The project ID for the project that the account belongs to. Specifying this field requires Google OAuth 2.0 credential with proper [permissions] (https://cloud.google.com/identity-platform/docs/access-control). Requests from end users should pass an Identity Platform ID token instead.",
	//       "location": "path",
	//       "pattern": "^[^/]+$",
	//       "required": true,
	//       "type": "string"
	//     }
	//   },
	//   "path": "v1/projects/{+targetProjectId}/accounts:update",
	//   "request": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1SetAccountInfoRequest"
	//   },
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1SetAccountInfoResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}

// method id "identitytoolkit.projects.tenants.accounts":

type ProjectsTenantsAccountsCall struct {
	s                                         *Service
	targetProjectId                           string
	tenantId                                  string
	googlecloudidentitytoolkitv1signuprequest *GoogleCloudIdentitytoolkitV1SignUpRequest
	urlParams_                                gensupport.URLParams
	ctx_                                      context.Context
	header_                                   http.Header
}

// Accounts: Signs up a new email and password user or anonymous user,
// or upgrades an anonymous user to email and password. For an admin
// request with a Google OAuth 2.0 credential with the proper
// permissions
// (https://cloud.google.com/identity-platform/docs/access-control),
// creates a new anonymous, email and password, or phone number user. An
// API key (https://cloud.google.com/docs/authentication/api-keys) is
// required in the request in order to identify the Google Cloud
// project.
//
//   - targetProjectId: The project ID of the project which the user
//     should belong to. Specifying this field requires a Google OAuth 2.0
//     credential with the proper permissions
//     (https://cloud.google.com/identity-platform/docs/access-control).
//     If this is not set, the target project is inferred from the scope
//     associated to the Bearer access token.
//   - tenantId: The ID of the Identity Platform tenant to create a user
//     under. If not set, the user will be created under the default
//     Identity Platform project.
func (r *ProjectsTenantsService) Accounts(targetProjectId string, tenantId string, googlecloudidentitytoolkitv1signuprequest *GoogleCloudIdentitytoolkitV1SignUpRequest) *ProjectsTenantsAccountsCall {
	c := &ProjectsTenantsAccountsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.targetProjectId = targetProjectId
	c.tenantId = tenantId
	c.googlecloudidentitytoolkitv1signuprequest = googlecloudidentitytoolkitv1signuprequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *ProjectsTenantsAccountsCall) Fields(s ...googleapi.Field) *ProjectsTenantsAccountsCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *ProjectsTenantsAccountsCall) Context(ctx context.Context) *ProjectsTenantsAccountsCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *ProjectsTenantsAccountsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsTenantsAccountsCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudidentitytoolkitv1signuprequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{+targetProjectId}/tenants/{+tenantId}/accounts")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"targetProjectId": c.targetProjectId,
		"tenantId":        c.tenantId,
	})
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.projects.tenants.accounts" call.
// Exactly one of *GoogleCloudIdentitytoolkitV1SignUpResponse or error
// will be non-nil. Any non-2xx status code is an error. Response
// headers are in either
// *GoogleCloudIdentitytoolkitV1SignUpResponse.ServerResponse.Header or
// (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsTenantsAccountsCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1SignUpResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1SignUpResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Signs up a new email and password user or anonymous user, or upgrades an anonymous user to email and password. For an admin request with a Google OAuth 2.0 credential with the proper [permissions](https://cloud.google.com/identity-platform/docs/access-control), creates a new anonymous, email and password, or phone number user. An [API key](https://cloud.google.com/docs/authentication/api-keys) is required in the request in order to identify the Google Cloud project.",
	//   "flatPath": "v1/projects/{projectsId}/tenants/{tenantsId}/accounts",
	//   "httpMethod": "POST",
	//   "id": "identitytoolkit.projects.tenants.accounts",
	//   "parameterOrder": [
	//     "targetProjectId",
	//     "tenantId"
	//   ],
	//   "parameters": {
	//     "targetProjectId": {
	//       "description": "The project ID of the project which the user should belong to. Specifying this field requires a Google OAuth 2.0 credential with the proper [permissions](https://cloud.google.com/identity-platform/docs/access-control). If this is not set, the target project is inferred from the scope associated to the Bearer access token.",
	//       "location": "path",
	//       "pattern": "^[^/]+$",
	//       "required": true,
	//       "type": "string"
	//     },
	//     "tenantId": {
	//       "description": "The ID of the Identity Platform tenant to create a user under. If not set, the user will be created under the default Identity Platform project.",
	//       "location": "path",
	//       "pattern": "^[^/]+$",
	//       "required": true,
	//       "type": "string"
	//     }
	//   },
	//   "path": "v1/projects/{+targetProjectId}/tenants/{+tenantId}/accounts",
	//   "request": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1SignUpRequest"
	//   },
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1SignUpResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}

// method id "identitytoolkit.projects.tenants.createSessionCookie":

type ProjectsTenantsCreateSessionCookieCall struct {
	s                                                      *Service
	targetProjectId                                        string
	tenantId                                               string
	googlecloudidentitytoolkitv1createsessioncookierequest *GoogleCloudIdentitytoolkitV1CreateSessionCookieRequest
	urlParams_                                             gensupport.URLParams
	ctx_                                                   context.Context
	header_                                                http.Header
}

// CreateSessionCookie: Creates a session cookie for the given Identity
// Platform ID token. The session cookie is used by the client to
// preserve the user's login state.
//
//   - targetProjectId: The ID of the project that the account belongs to.
//   - tenantId: The tenant ID of the Identity Platform tenant the account
//     belongs to.
func (r *ProjectsTenantsService) CreateSessionCookie(targetProjectId string, tenantId string, googlecloudidentitytoolkitv1createsessioncookierequest *GoogleCloudIdentitytoolkitV1CreateSessionCookieRequest) *ProjectsTenantsCreateSessionCookieCall {
	c := &ProjectsTenantsCreateSessionCookieCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.targetProjectId = targetProjectId
	c.tenantId = tenantId
	c.googlecloudidentitytoolkitv1createsessioncookierequest = googlecloudidentitytoolkitv1createsessioncookierequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *ProjectsTenantsCreateSessionCookieCall) Fields(s ...googleapi.Field) *ProjectsTenantsCreateSessionCookieCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *ProjectsTenantsCreateSessionCookieCall) Context(ctx context.Context) *ProjectsTenantsCreateSessionCookieCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *ProjectsTenantsCreateSessionCookieCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsTenantsCreateSessionCookieCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudidentitytoolkitv1createsessioncookierequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{+targetProjectId}/tenants/{+tenantId}:createSessionCookie")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"targetProjectId": c.targetProjectId,
		"tenantId":        c.tenantId,
	})
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.projects.tenants.createSessionCookie" call.
// Exactly one of
// *GoogleCloudIdentitytoolkitV1CreateSessionCookieResponse or error
// will be non-nil. Any non-2xx status code is an error. Response
// headers are in either
// *GoogleCloudIdentitytoolkitV1CreateSessionCookieResponse.ServerRespons
// e.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsTenantsCreateSessionCookieCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1CreateSessionCookieResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1CreateSessionCookieResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Creates a session cookie for the given Identity Platform ID token. The session cookie is used by the client to preserve the user's login state.",
	//   "flatPath": "v1/projects/{projectsId}/tenants/{tenantsId}:createSessionCookie",
	//   "httpMethod": "POST",
	//   "id": "identitytoolkit.projects.tenants.createSessionCookie",
	//   "parameterOrder": [
	//     "targetProjectId",
	//     "tenantId"
	//   ],
	//   "parameters": {
	//     "targetProjectId": {
	//       "description": "The ID of the project that the account belongs to.",
	//       "location": "path",
	//       "pattern": "^[^/]+$",
	//       "required": true,
	//       "type": "string"
	//     },
	//     "tenantId": {
	//       "description": "The tenant ID of the Identity Platform tenant the account belongs to.",
	//       "location": "path",
	//       "pattern": "^[^/]+$",
	//       "required": true,
	//       "type": "string"
	//     }
	//   },
	//   "path": "v1/projects/{+targetProjectId}/tenants/{+tenantId}:createSessionCookie",
	//   "request": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1CreateSessionCookieRequest"
	//   },
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1CreateSessionCookieResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}

// method id "identitytoolkit.projects.tenants.accounts.batchCreate":

type ProjectsTenantsAccountsBatchCreateCall struct {
	s                                                *Service
	targetProjectId                                  string
	tenantId                                         string
	googlecloudidentitytoolkitv1uploadaccountrequest *GoogleCloudIdentitytoolkitV1UploadAccountRequest
	urlParams_                                       gensupport.URLParams
	ctx_                                             context.Context
	header_                                          http.Header
}

// BatchCreate: Uploads multiple accounts into the Google Cloud project.
// If there is a problem uploading one or more of the accounts, the rest
// will be uploaded, and a list of the errors will be returned. To use
// this method requires a Google OAuth 2.0 credential with proper
// permissions
// (https://cloud.google.com/identity-platform/docs/access-control).
//
//   - targetProjectId: The Project ID of the Identity Platform project
//     which the account belongs to.
//   - tenantId: The ID of the Identity Platform tenant the account
//     belongs to.
func (r *ProjectsTenantsAccountsService) BatchCreate(targetProjectId string, tenantId string, googlecloudidentitytoolkitv1uploadaccountrequest *GoogleCloudIdentitytoolkitV1UploadAccountRequest) *ProjectsTenantsAccountsBatchCreateCall {
	c := &ProjectsTenantsAccountsBatchCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.targetProjectId = targetProjectId
	c.tenantId = tenantId
	c.googlecloudidentitytoolkitv1uploadaccountrequest = googlecloudidentitytoolkitv1uploadaccountrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *ProjectsTenantsAccountsBatchCreateCall) Fields(s ...googleapi.Field) *ProjectsTenantsAccountsBatchCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *ProjectsTenantsAccountsBatchCreateCall) Context(ctx context.Context) *ProjectsTenantsAccountsBatchCreateCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *ProjectsTenantsAccountsBatchCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsTenantsAccountsBatchCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudidentitytoolkitv1uploadaccountrequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{+targetProjectId}/tenants/{+tenantId}/accounts:batchCreate")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"targetProjectId": c.targetProjectId,
		"tenantId":        c.tenantId,
	})
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.projects.tenants.accounts.batchCreate" call.
// Exactly one of *GoogleCloudIdentitytoolkitV1UploadAccountResponse or
// error will be non-nil. Any non-2xx status code is an error. Response
// headers are in either
// *GoogleCloudIdentitytoolkitV1UploadAccountResponse.ServerResponse.Head
// er or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsTenantsAccountsBatchCreateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1UploadAccountResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1UploadAccountResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Uploads multiple accounts into the Google Cloud project. If there is a problem uploading one or more of the accounts, the rest will be uploaded, and a list of the errors will be returned. To use this method requires a Google OAuth 2.0 credential with proper [permissions](https://cloud.google.com/identity-platform/docs/access-control).",
	//   "flatPath": "v1/projects/{projectsId}/tenants/{tenantsId}/accounts:batchCreate",
	//   "httpMethod": "POST",
	//   "id": "identitytoolkit.projects.tenants.accounts.batchCreate",
	//   "parameterOrder": [
	//     "targetProjectId",
	//     "tenantId"
	//   ],
	//   "parameters": {
	//     "targetProjectId": {
	//       "description": "The Project ID of the Identity Platform project which the account belongs to.",
	//       "location": "path",
	//       "pattern": "^[^/]+$",
	//       "required": true,
	//       "type": "string"
	//     },
	//     "tenantId": {
	//       "description": "The ID of the Identity Platform tenant the account belongs to.",
	//       "location": "path",
	//       "pattern": "^[^/]+$",
	//       "required": true,
	//       "type": "string"
	//     }
	//   },
	//   "path": "v1/projects/{+targetProjectId}/tenants/{+tenantId}/accounts:batchCreate",
	//   "request": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1UploadAccountRequest"
	//   },
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1UploadAccountResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform",
	//     "https://www.googleapis.com/auth/firebase"
	//   ]
	// }

}

// method id "identitytoolkit.projects.tenants.accounts.batchDelete":

type ProjectsTenantsAccountsBatchDeleteCall struct {
	s                                                      *Service
	targetProjectId                                        string
	tenantId                                               string
	googlecloudidentitytoolkitv1batchdeleteaccountsrequest *GoogleCloudIdentitytoolkitV1BatchDeleteAccountsRequest
	urlParams_                                             gensupport.URLParams
	ctx_                                                   context.Context
	header_                                                http.Header
}

// BatchDelete: Batch deletes multiple accounts. For accounts that fail
// to be deleted, error info is contained in the response. The method
// ignores accounts that do not exist or are duplicated in the request.
// This method requires a Google OAuth 2.0 credential with proper
// [permissions]
// (https://cloud.google.com/identity-platform/docs/access-control).
//
//   - targetProjectId: If `tenant_id` is specified, the ID of the Google
//     Cloud project that the Identity Platform tenant belongs to.
//     Otherwise, the ID of the Google Cloud project that accounts belong
//     to.
//   - tenantId: If the accounts belong to an Identity Platform tenant,
//     the ID of the tenant. If the accounts belong to a default Identity
//     Platform project, the field is not needed.
func (r *ProjectsTenantsAccountsService) BatchDelete(targetProjectId string, tenantId string, googlecloudidentitytoolkitv1batchdeleteaccountsrequest *GoogleCloudIdentitytoolkitV1BatchDeleteAccountsRequest) *ProjectsTenantsAccountsBatchDeleteCall {
	c := &ProjectsTenantsAccountsBatchDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.targetProjectId = targetProjectId
	c.tenantId = tenantId
	c.googlecloudidentitytoolkitv1batchdeleteaccountsrequest = googlecloudidentitytoolkitv1batchdeleteaccountsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *ProjectsTenantsAccountsBatchDeleteCall) Fields(s ...googleapi.Field) *ProjectsTenantsAccountsBatchDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *ProjectsTenantsAccountsBatchDeleteCall) Context(ctx context.Context) *ProjectsTenantsAccountsBatchDeleteCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *ProjectsTenantsAccountsBatchDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsTenantsAccountsBatchDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudidentitytoolkitv1batchdeleteaccountsrequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{+targetProjectId}/tenants/{+tenantId}/accounts:batchDelete")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"targetProjectId": c.targetProjectId,
		"tenantId":        c.tenantId,
	})
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.projects.tenants.accounts.batchDelete" call.
// Exactly one of
// *GoogleCloudIdentitytoolkitV1BatchDeleteAccountsResponse or error
// will be non-nil. Any non-2xx status code is an error. Response
// headers are in either
// *GoogleCloudIdentitytoolkitV1BatchDeleteAccountsResponse.ServerRespons
// e.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsTenantsAccountsBatchDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1BatchDeleteAccountsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1BatchDeleteAccountsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Batch deletes multiple accounts. For accounts that fail to be deleted, error info is contained in the response. The method ignores accounts that do not exist or are duplicated in the request. This method requires a Google OAuth 2.0 credential with proper [permissions] (https://cloud.google.com/identity-platform/docs/access-control).",
	//   "flatPath": "v1/projects/{projectsId}/tenants/{tenantsId}/accounts:batchDelete",
	//   "httpMethod": "POST",
	//   "id": "identitytoolkit.projects.tenants.accounts.batchDelete",
	//   "parameterOrder": [
	//     "targetProjectId",
	//     "tenantId"
	//   ],
	//   "parameters": {
	//     "targetProjectId": {
	//       "description": "If `tenant_id` is specified, the ID of the Google Cloud project that the Identity Platform tenant belongs to. Otherwise, the ID of the Google Cloud project that accounts belong to.",
	//       "location": "path",
	//       "pattern": "^[^/]+$",
	//       "required": true,
	//       "type": "string"
	//     },
	//     "tenantId": {
	//       "description": "If the accounts belong to an Identity Platform tenant, the ID of the tenant. If the accounts belong to a default Identity Platform project, the field is not needed.",
	//       "location": "path",
	//       "pattern": "^[^/]+$",
	//       "required": true,
	//       "type": "string"
	//     }
	//   },
	//   "path": "v1/projects/{+targetProjectId}/tenants/{+tenantId}/accounts:batchDelete",
	//   "request": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1BatchDeleteAccountsRequest"
	//   },
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1BatchDeleteAccountsResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform",
	//     "https://www.googleapis.com/auth/firebase"
	//   ]
	// }

}

// method id "identitytoolkit.projects.tenants.accounts.batchGet":

type ProjectsTenantsAccountsBatchGetCall struct {
	s               *Service
	targetProjectId string
	tenantId        string
	urlParams_      gensupport.URLParams
	ifNoneMatch_    string
	ctx_            context.Context
	header_         http.Header
}

// BatchGet: Download account information for all accounts on the
// project in a paginated manner. To use this method requires a Google
// OAuth 2.0 credential with proper permissions
// (https://cloud.google.com/identity-platform/docs/access-control)..
// Furthermore, additional permissions are needed to get password hash,
// password salt, and password version from accounts; otherwise these
// fields are redacted.
//
//   - targetProjectId: If `tenant_id` is specified, the ID of the Google
//     Cloud project that the Identity Platform tenant belongs to.
//     Otherwise, the ID of the Google Cloud project that the accounts
//     belong to.
//   - tenantId: The ID of the Identity Platform tenant the accounts
//     belongs to. If not specified, accounts on the Identity Platform
//     project are returned.
func (r *ProjectsTenantsAccountsService) BatchGet(targetProjectId string, tenantId string) *ProjectsTenantsAccountsBatchGetCall {
	c := &ProjectsTenantsAccountsBatchGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.targetProjectId = targetProjectId
	c.tenantId = tenantId
	return c
}

// DelegatedProjectNumber sets the optional parameter
// "delegatedProjectNumber":
func (c *ProjectsTenantsAccountsBatchGetCall) DelegatedProjectNumber(delegatedProjectNumber int64) *ProjectsTenantsAccountsBatchGetCall {
	c.urlParams_.Set("delegatedProjectNumber", fmt.Sprint(delegatedProjectNumber))
	return c
}

// MaxResults sets the optional parameter "maxResults": The maximum
// number of results to return. Must be at least 1 and no greater than
// 1000. By default, it is 20.
func (c *ProjectsTenantsAccountsBatchGetCall) MaxResults(maxResults int64) *ProjectsTenantsAccountsBatchGetCall {
	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
	return c
}

// NextPageToken sets the optional parameter "nextPageToken": The
// pagination token from the response of a previous request.
func (c *ProjectsTenantsAccountsBatchGetCall) NextPageToken(nextPageToken string) *ProjectsTenantsAccountsBatchGetCall {
	c.urlParams_.Set("nextPageToken", nextPageToken)
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *ProjectsTenantsAccountsBatchGetCall) Fields(s ...googleapi.Field) *ProjectsTenantsAccountsBatchGetCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// IfNoneMatch sets the optional parameter which makes the operation
// fail if the object's ETag matches the given value. This is useful for
// getting updates only after the object has changed since the last
// request. Use googleapi.IsNotModified to check whether the response
// error from Do is the result of In-None-Match.
func (c *ProjectsTenantsAccountsBatchGetCall) IfNoneMatch(entityTag string) *ProjectsTenantsAccountsBatchGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *ProjectsTenantsAccountsBatchGetCall) Context(ctx context.Context) *ProjectsTenantsAccountsBatchGetCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *ProjectsTenantsAccountsBatchGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsTenantsAccountsBatchGetCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	if c.ifNoneMatch_ != "" {
		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
	}
	var body io.Reader = nil
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{+targetProjectId}/tenants/{+tenantId}/accounts:batchGet")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("GET", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"targetProjectId": c.targetProjectId,
		"tenantId":        c.tenantId,
	})
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.projects.tenants.accounts.batchGet" call.
// Exactly one of *GoogleCloudIdentitytoolkitV1DownloadAccountResponse
// or error will be non-nil. Any non-2xx status code is an error.
// Response headers are in either
// *GoogleCloudIdentitytoolkitV1DownloadAccountResponse.ServerResponse.He
// ader or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsTenantsAccountsBatchGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1DownloadAccountResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1DownloadAccountResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Download account information for all accounts on the project in a paginated manner. To use this method requires a Google OAuth 2.0 credential with proper [permissions](https://cloud.google.com/identity-platform/docs/access-control).. Furthermore, additional permissions are needed to get password hash, password salt, and password version from accounts; otherwise these fields are redacted.",
	//   "flatPath": "v1/projects/{projectsId}/tenants/{tenantsId}/accounts:batchGet",
	//   "httpMethod": "GET",
	//   "id": "identitytoolkit.projects.tenants.accounts.batchGet",
	//   "parameterOrder": [
	//     "targetProjectId",
	//     "tenantId"
	//   ],
	//   "parameters": {
	//     "delegatedProjectNumber": {
	//       "deprecated": true,
	//       "format": "int64",
	//       "location": "query",
	//       "type": "string"
	//     },
	//     "maxResults": {
	//       "description": "The maximum number of results to return. Must be at least 1 and no greater than 1000. By default, it is 20.",
	//       "format": "int32",
	//       "location": "query",
	//       "type": "integer"
	//     },
	//     "nextPageToken": {
	//       "description": "The pagination token from the response of a previous request.",
	//       "location": "query",
	//       "type": "string"
	//     },
	//     "targetProjectId": {
	//       "description": "If `tenant_id` is specified, the ID of the Google Cloud project that the Identity Platform tenant belongs to. Otherwise, the ID of the Google Cloud project that the accounts belong to.",
	//       "location": "path",
	//       "pattern": "^[^/]+$",
	//       "required": true,
	//       "type": "string"
	//     },
	//     "tenantId": {
	//       "description": "The ID of the Identity Platform tenant the accounts belongs to. If not specified, accounts on the Identity Platform project are returned.",
	//       "location": "path",
	//       "pattern": "^[^/]+$",
	//       "required": true,
	//       "type": "string"
	//     }
	//   },
	//   "path": "v1/projects/{+targetProjectId}/tenants/{+tenantId}/accounts:batchGet",
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1DownloadAccountResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform",
	//     "https://www.googleapis.com/auth/firebase"
	//   ]
	// }

}

// Pages invokes f for each page of results.
// A non-nil error returned from f will halt the iteration.
// The provided context supersedes any context provided to the Context method.
func (c *ProjectsTenantsAccountsBatchGetCall) Pages(ctx context.Context, f func(*GoogleCloudIdentitytoolkitV1DownloadAccountResponse) error) error {
	c.ctx_ = ctx
	defer c.NextPageToken(c.urlParams_.Get("nextPageToken")) // reset paging to original point
	for {
		x, err := c.Do()
		if err != nil {
			return err
		}
		if err := f(x); err != nil {
			return err
		}
		if x.NextPageToken == "" {
			return nil
		}
		c.NextPageToken(x.NextPageToken)
	}
}

// method id "identitytoolkit.projects.tenants.accounts.delete":

type ProjectsTenantsAccountsDeleteCall struct {
	s                                                *Service
	targetProjectId                                  string
	tenantId                                         string
	googlecloudidentitytoolkitv1deleteaccountrequest *GoogleCloudIdentitytoolkitV1DeleteAccountRequest
	urlParams_                                       gensupport.URLParams
	ctx_                                             context.Context
	header_                                          http.Header
}

// Delete: Deletes a user's account.
//
//   - targetProjectId: The ID of the project which the account belongs
//     to. Should only be specified in authenticated requests that specify
//     local_id of an account.
//   - tenantId: The ID of the tenant that the account belongs to, if
//     applicable. Only require to be specified for authenticated requests
//     bearing a Google OAuth 2.0 credential that specify local_id of an
//     account that belongs to an Identity Platform tenant.
func (r *ProjectsTenantsAccountsService) Delete(targetProjectId string, tenantId string, googlecloudidentitytoolkitv1deleteaccountrequest *GoogleCloudIdentitytoolkitV1DeleteAccountRequest) *ProjectsTenantsAccountsDeleteCall {
	c := &ProjectsTenantsAccountsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.targetProjectId = targetProjectId
	c.tenantId = tenantId
	c.googlecloudidentitytoolkitv1deleteaccountrequest = googlecloudidentitytoolkitv1deleteaccountrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *ProjectsTenantsAccountsDeleteCall) Fields(s ...googleapi.Field) *ProjectsTenantsAccountsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *ProjectsTenantsAccountsDeleteCall) Context(ctx context.Context) *ProjectsTenantsAccountsDeleteCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *ProjectsTenantsAccountsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsTenantsAccountsDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudidentitytoolkitv1deleteaccountrequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{+targetProjectId}/tenants/{+tenantId}/accounts:delete")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"targetProjectId": c.targetProjectId,
		"tenantId":        c.tenantId,
	})
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.projects.tenants.accounts.delete" call.
// Exactly one of *GoogleCloudIdentitytoolkitV1DeleteAccountResponse or
// error will be non-nil. Any non-2xx status code is an error. Response
// headers are in either
// *GoogleCloudIdentitytoolkitV1DeleteAccountResponse.ServerResponse.Head
// er or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsTenantsAccountsDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1DeleteAccountResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1DeleteAccountResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Deletes a user's account.",
	//   "flatPath": "v1/projects/{projectsId}/tenants/{tenantsId}/accounts:delete",
	//   "httpMethod": "POST",
	//   "id": "identitytoolkit.projects.tenants.accounts.delete",
	//   "parameterOrder": [
	//     "targetProjectId",
	//     "tenantId"
	//   ],
	//   "parameters": {
	//     "targetProjectId": {
	//       "description": "The ID of the project which the account belongs to. Should only be specified in authenticated requests that specify local_id of an account.",
	//       "location": "path",
	//       "pattern": "^[^/]+$",
	//       "required": true,
	//       "type": "string"
	//     },
	//     "tenantId": {
	//       "description": "The ID of the tenant that the account belongs to, if applicable. Only require to be specified for authenticated requests bearing a Google OAuth 2.0 credential that specify local_id of an account that belongs to an Identity Platform tenant.",
	//       "location": "path",
	//       "pattern": "^[^/]+$",
	//       "required": true,
	//       "type": "string"
	//     }
	//   },
	//   "path": "v1/projects/{+targetProjectId}/tenants/{+tenantId}/accounts:delete",
	//   "request": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1DeleteAccountRequest"
	//   },
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1DeleteAccountResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}

// method id "identitytoolkit.projects.tenants.accounts.lookup":

type ProjectsTenantsAccountsLookupCall struct {
	s                                                 *Service
	targetProjectId                                   string
	tenantId                                          string
	googlecloudidentitytoolkitv1getaccountinforequest *GoogleCloudIdentitytoolkitV1GetAccountInfoRequest
	urlParams_                                        gensupport.URLParams
	ctx_                                              context.Context
	header_                                           http.Header
}

// Lookup: Gets account information for all matched accounts. For an end
// user request, retrieves the account of the end user. For an admin
// request with Google OAuth 2.0 credential, retrieves one or multiple
// account(s) with matching criteria.
//
//   - targetProjectId: The ID of the Google Cloud project that the
//     account or the Identity Platform tenant specified by `tenant_id`
//     belongs to. Should only be specified by authenticated requests
//     bearing a Google OAuth 2.0 credential with proper permissions
//     (https://cloud.google.com/identity-platform/docs/access-control).
//   - tenantId: The ID of the tenant that the account belongs to. Should
//     only be specified by authenticated requests from a developer.
func (r *ProjectsTenantsAccountsService) Lookup(targetProjectId string, tenantId string, googlecloudidentitytoolkitv1getaccountinforequest *GoogleCloudIdentitytoolkitV1GetAccountInfoRequest) *ProjectsTenantsAccountsLookupCall {
	c := &ProjectsTenantsAccountsLookupCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.targetProjectId = targetProjectId
	c.tenantId = tenantId
	c.googlecloudidentitytoolkitv1getaccountinforequest = googlecloudidentitytoolkitv1getaccountinforequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *ProjectsTenantsAccountsLookupCall) Fields(s ...googleapi.Field) *ProjectsTenantsAccountsLookupCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *ProjectsTenantsAccountsLookupCall) Context(ctx context.Context) *ProjectsTenantsAccountsLookupCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *ProjectsTenantsAccountsLookupCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsTenantsAccountsLookupCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudidentitytoolkitv1getaccountinforequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{+targetProjectId}/tenants/{+tenantId}/accounts:lookup")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"targetProjectId": c.targetProjectId,
		"tenantId":        c.tenantId,
	})
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.projects.tenants.accounts.lookup" call.
// Exactly one of *GoogleCloudIdentitytoolkitV1GetAccountInfoResponse or
// error will be non-nil. Any non-2xx status code is an error. Response
// headers are in either
// *GoogleCloudIdentitytoolkitV1GetAccountInfoResponse.ServerResponse.Hea
// der or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsTenantsAccountsLookupCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1GetAccountInfoResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1GetAccountInfoResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Gets account information for all matched accounts. For an end user request, retrieves the account of the end user. For an admin request with Google OAuth 2.0 credential, retrieves one or multiple account(s) with matching criteria.",
	//   "flatPath": "v1/projects/{projectsId}/tenants/{tenantsId}/accounts:lookup",
	//   "httpMethod": "POST",
	//   "id": "identitytoolkit.projects.tenants.accounts.lookup",
	//   "parameterOrder": [
	//     "targetProjectId",
	//     "tenantId"
	//   ],
	//   "parameters": {
	//     "targetProjectId": {
	//       "description": "The ID of the Google Cloud project that the account or the Identity Platform tenant specified by `tenant_id` belongs to. Should only be specified by authenticated requests bearing a Google OAuth 2.0 credential with proper [permissions](https://cloud.google.com/identity-platform/docs/access-control).",
	//       "location": "path",
	//       "pattern": "^[^/]+$",
	//       "required": true,
	//       "type": "string"
	//     },
	//     "tenantId": {
	//       "description": "The ID of the tenant that the account belongs to. Should only be specified by authenticated requests from a developer.",
	//       "location": "path",
	//       "pattern": "^[^/]+$",
	//       "required": true,
	//       "type": "string"
	//     }
	//   },
	//   "path": "v1/projects/{+targetProjectId}/tenants/{+tenantId}/accounts:lookup",
	//   "request": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1GetAccountInfoRequest"
	//   },
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1GetAccountInfoResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}

// method id "identitytoolkit.projects.tenants.accounts.query":

type ProjectsTenantsAccountsQueryCall struct {
	s                                                *Service
	targetProjectId                                  string
	tenantId                                         string
	googlecloudidentitytoolkitv1queryuserinforequest *GoogleCloudIdentitytoolkitV1QueryUserInfoRequest
	urlParams_                                       gensupport.URLParams
	ctx_                                             context.Context
	header_                                          http.Header
}

// Query: Looks up user accounts within a project or a tenant based on
// conditions in the request.
//
//   - targetProjectId: The ID of the project to which the result is
//     scoped.
//   - tenantId: The ID of the tenant to which the result is scoped.
func (r *ProjectsTenantsAccountsService) Query(targetProjectId string, tenantId string, googlecloudidentitytoolkitv1queryuserinforequest *GoogleCloudIdentitytoolkitV1QueryUserInfoRequest) *ProjectsTenantsAccountsQueryCall {
	c := &ProjectsTenantsAccountsQueryCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.targetProjectId = targetProjectId
	c.tenantId = tenantId
	c.googlecloudidentitytoolkitv1queryuserinforequest = googlecloudidentitytoolkitv1queryuserinforequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *ProjectsTenantsAccountsQueryCall) Fields(s ...googleapi.Field) *ProjectsTenantsAccountsQueryCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *ProjectsTenantsAccountsQueryCall) Context(ctx context.Context) *ProjectsTenantsAccountsQueryCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *ProjectsTenantsAccountsQueryCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsTenantsAccountsQueryCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudidentitytoolkitv1queryuserinforequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{+targetProjectId}/tenants/{+tenantId}/accounts:query")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"targetProjectId": c.targetProjectId,
		"tenantId":        c.tenantId,
	})
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.projects.tenants.accounts.query" call.
// Exactly one of *GoogleCloudIdentitytoolkitV1QueryUserInfoResponse or
// error will be non-nil. Any non-2xx status code is an error. Response
// headers are in either
// *GoogleCloudIdentitytoolkitV1QueryUserInfoResponse.ServerResponse.Head
// er or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsTenantsAccountsQueryCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1QueryUserInfoResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1QueryUserInfoResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Looks up user accounts within a project or a tenant based on conditions in the request.",
	//   "flatPath": "v1/projects/{projectsId}/tenants/{tenantsId}/accounts:query",
	//   "httpMethod": "POST",
	//   "id": "identitytoolkit.projects.tenants.accounts.query",
	//   "parameterOrder": [
	//     "targetProjectId",
	//     "tenantId"
	//   ],
	//   "parameters": {
	//     "targetProjectId": {
	//       "description": "The ID of the project to which the result is scoped.",
	//       "location": "path",
	//       "pattern": "^[^/]+$",
	//       "required": true,
	//       "type": "string"
	//     },
	//     "tenantId": {
	//       "description": "The ID of the tenant to which the result is scoped.",
	//       "location": "path",
	//       "pattern": "^[^/]+$",
	//       "required": true,
	//       "type": "string"
	//     }
	//   },
	//   "path": "v1/projects/{+targetProjectId}/tenants/{+tenantId}/accounts:query",
	//   "request": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1QueryUserInfoRequest"
	//   },
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1QueryUserInfoResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform",
	//     "https://www.googleapis.com/auth/firebase"
	//   ]
	// }

}

// method id "identitytoolkit.projects.tenants.accounts.sendOobCode":

type ProjectsTenantsAccountsSendOobCodeCall struct {
	s                                             *Service
	targetProjectId                               string
	tenantId                                      string
	googlecloudidentitytoolkitv1getoobcoderequest *GoogleCloudIdentitytoolkitV1GetOobCodeRequest
	urlParams_                                    gensupport.URLParams
	ctx_                                          context.Context
	header_                                       http.Header
}

// SendOobCode: Sends an out-of-band confirmation code for an account.
// Requests from a authenticated request can optionally return a link
// including the OOB code instead of sending it.
//
//   - targetProjectId: The Project ID of the Identity Platform project
//     which the account belongs to. To specify this field, it requires a
//     Google OAuth 2.0 credential with proper permissions
//     (https://cloud.google.com/identity-platform/docs/access-control).
//   - tenantId: The tenant ID of the Identity Platform tenant the account
//     belongs to.
func (r *ProjectsTenantsAccountsService) SendOobCode(targetProjectId string, tenantId string, googlecloudidentitytoolkitv1getoobcoderequest *GoogleCloudIdentitytoolkitV1GetOobCodeRequest) *ProjectsTenantsAccountsSendOobCodeCall {
	c := &ProjectsTenantsAccountsSendOobCodeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.targetProjectId = targetProjectId
	c.tenantId = tenantId
	c.googlecloudidentitytoolkitv1getoobcoderequest = googlecloudidentitytoolkitv1getoobcoderequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *ProjectsTenantsAccountsSendOobCodeCall) Fields(s ...googleapi.Field) *ProjectsTenantsAccountsSendOobCodeCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *ProjectsTenantsAccountsSendOobCodeCall) Context(ctx context.Context) *ProjectsTenantsAccountsSendOobCodeCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *ProjectsTenantsAccountsSendOobCodeCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsTenantsAccountsSendOobCodeCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudidentitytoolkitv1getoobcoderequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{+targetProjectId}/tenants/{+tenantId}/accounts:sendOobCode")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"targetProjectId": c.targetProjectId,
		"tenantId":        c.tenantId,
	})
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.projects.tenants.accounts.sendOobCode" call.
// Exactly one of *GoogleCloudIdentitytoolkitV1GetOobCodeResponse or
// error will be non-nil. Any non-2xx status code is an error. Response
// headers are in either
// *GoogleCloudIdentitytoolkitV1GetOobCodeResponse.ServerResponse.Header
// or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsTenantsAccountsSendOobCodeCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1GetOobCodeResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1GetOobCodeResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Sends an out-of-band confirmation code for an account. Requests from a authenticated request can optionally return a link including the OOB code instead of sending it.",
	//   "flatPath": "v1/projects/{projectsId}/tenants/{tenantsId}/accounts:sendOobCode",
	//   "httpMethod": "POST",
	//   "id": "identitytoolkit.projects.tenants.accounts.sendOobCode",
	//   "parameterOrder": [
	//     "targetProjectId",
	//     "tenantId"
	//   ],
	//   "parameters": {
	//     "targetProjectId": {
	//       "description": "The Project ID of the Identity Platform project which the account belongs to. To specify this field, it requires a Google OAuth 2.0 credential with proper [permissions](https://cloud.google.com/identity-platform/docs/access-control).",
	//       "location": "path",
	//       "pattern": "^[^/]+$",
	//       "required": true,
	//       "type": "string"
	//     },
	//     "tenantId": {
	//       "description": "The tenant ID of the Identity Platform tenant the account belongs to.",
	//       "location": "path",
	//       "pattern": "^[^/]+$",
	//       "required": true,
	//       "type": "string"
	//     }
	//   },
	//   "path": "v1/projects/{+targetProjectId}/tenants/{+tenantId}/accounts:sendOobCode",
	//   "request": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1GetOobCodeRequest"
	//   },
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1GetOobCodeResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}

// method id "identitytoolkit.projects.tenants.accounts.update":

type ProjectsTenantsAccountsUpdateCall struct {
	s                                                 *Service
	targetProjectId                                   string
	tenantId                                          string
	googlecloudidentitytoolkitv1setaccountinforequest *GoogleCloudIdentitytoolkitV1SetAccountInfoRequest
	urlParams_                                        gensupport.URLParams
	ctx_                                              context.Context
	header_                                           http.Header
}

// Update: Updates account-related information for the specified user by
// setting specific fields or applying action codes. Requests from
// administrators and end users are supported.
//
//   - targetProjectId: The project ID for the project that the account
//     belongs to. Specifying this field requires Google OAuth 2.0
//     credential with proper [permissions]
//     (https://cloud.google.com/identity-platform/docs/access-control).
//     Requests from end users should pass an Identity Platform ID token
//     instead.
//   - tenantId: The tenant ID of the Identity Platform tenant that the
//     account belongs to. Requests from end users should pass an Identity
//     Platform ID token rather than setting this field.
func (r *ProjectsTenantsAccountsService) Update(targetProjectId string, tenantId string, googlecloudidentitytoolkitv1setaccountinforequest *GoogleCloudIdentitytoolkitV1SetAccountInfoRequest) *ProjectsTenantsAccountsUpdateCall {
	c := &ProjectsTenantsAccountsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.targetProjectId = targetProjectId
	c.tenantId = tenantId
	c.googlecloudidentitytoolkitv1setaccountinforequest = googlecloudidentitytoolkitv1setaccountinforequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *ProjectsTenantsAccountsUpdateCall) Fields(s ...googleapi.Field) *ProjectsTenantsAccountsUpdateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *ProjectsTenantsAccountsUpdateCall) Context(ctx context.Context) *ProjectsTenantsAccountsUpdateCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *ProjectsTenantsAccountsUpdateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsTenantsAccountsUpdateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	var body io.Reader = nil
	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudidentitytoolkitv1setaccountinforequest)
	if err != nil {
		return nil, err
	}
	reqHeaders.Set("Content-Type", "application/json")
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{+targetProjectId}/tenants/{+tenantId}/accounts:update")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"targetProjectId": c.targetProjectId,
		"tenantId":        c.tenantId,
	})
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.projects.tenants.accounts.update" call.
// Exactly one of *GoogleCloudIdentitytoolkitV1SetAccountInfoResponse or
// error will be non-nil. Any non-2xx status code is an error. Response
// headers are in either
// *GoogleCloudIdentitytoolkitV1SetAccountInfoResponse.ServerResponse.Hea
// der or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsTenantsAccountsUpdateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1SetAccountInfoResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1SetAccountInfoResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Updates account-related information for the specified user by setting specific fields or applying action codes. Requests from administrators and end users are supported.",
	//   "flatPath": "v1/projects/{projectsId}/tenants/{tenantsId}/accounts:update",
	//   "httpMethod": "POST",
	//   "id": "identitytoolkit.projects.tenants.accounts.update",
	//   "parameterOrder": [
	//     "targetProjectId",
	//     "tenantId"
	//   ],
	//   "parameters": {
	//     "targetProjectId": {
	//       "description": "The project ID for the project that the account belongs to. Specifying this field requires Google OAuth 2.0 credential with proper [permissions] (https://cloud.google.com/identity-platform/docs/access-control). Requests from end users should pass an Identity Platform ID token instead.",
	//       "location": "path",
	//       "pattern": "^[^/]+$",
	//       "required": true,
	//       "type": "string"
	//     },
	//     "tenantId": {
	//       "description": "The tenant ID of the Identity Platform tenant that the account belongs to. Requests from end users should pass an Identity Platform ID token rather than setting this field.",
	//       "location": "path",
	//       "pattern": "^[^/]+$",
	//       "required": true,
	//       "type": "string"
	//     }
	//   },
	//   "path": "v1/projects/{+targetProjectId}/tenants/{+tenantId}/accounts:update",
	//   "request": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1SetAccountInfoRequest"
	//   },
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1SetAccountInfoResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}

// method id "identitytoolkit.getProjects":

type V1GetProjectsCall struct {
	s            *Service
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// GetProjects: Gets a project's public Identity Toolkit configuration.
// (Legacy) This method also supports authenticated calls from a
// developer to retrieve non-public configuration.
func (r *V1Service) GetProjects() *V1GetProjectsCall {
	c := &V1GetProjectsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	return c
}

// AndroidPackageName sets the optional parameter "androidPackageName":
// Android package name to check against the real android package name.
// If this field is provided, and sha1_cert_hash is not provided, the
// action will throw an error if this does not match the real android
// package name.
func (c *V1GetProjectsCall) AndroidPackageName(androidPackageName string) *V1GetProjectsCall {
	c.urlParams_.Set("androidPackageName", androidPackageName)
	return c
}

// ClientId sets the optional parameter "clientId": The RP OAuth client
// ID. If set, a check will be performed to ensure that the OAuth client
// is valid for the retrieved project and the request rejected with a
// client error if not valid.
func (c *V1GetProjectsCall) ClientId(clientId string) *V1GetProjectsCall {
	c.urlParams_.Set("clientId", clientId)
	return c
}

// DelegatedProjectNumber sets the optional parameter
// "delegatedProjectNumber": Project Number of the delegated project
// request. This field should only be used as part of the Firebase V1
// migration.
func (c *V1GetProjectsCall) DelegatedProjectNumber(delegatedProjectNumber int64) *V1GetProjectsCall {
	c.urlParams_.Set("delegatedProjectNumber", fmt.Sprint(delegatedProjectNumber))
	return c
}

// FirebaseAppId sets the optional parameter "firebaseAppId": The
// Firebase app ID, for applications that use Firebase. This can be
// found in the Firebase console for your project. If set, a check will
// be performed to ensure that the app ID is valid for the retrieved
// project. If not valid, the request will be rejected with a client
// error.
func (c *V1GetProjectsCall) FirebaseAppId(firebaseAppId string) *V1GetProjectsCall {
	c.urlParams_.Set("firebaseAppId", firebaseAppId)
	return c
}

// IosBundleId sets the optional parameter "iosBundleId": iOS bundle id
// to check against the real ios bundle id. If this field is provided,
// the action will throw an error if this does not match the real iOS
// bundle id.
func (c *V1GetProjectsCall) IosBundleId(iosBundleId string) *V1GetProjectsCall {
	c.urlParams_.Set("iosBundleId", iosBundleId)
	return c
}

// ProjectNumber sets the optional parameter "projectNumber": Project
// number of the configuration to retrieve. This field is deprecated and
// should not be used by new integrations.
func (c *V1GetProjectsCall) ProjectNumber(projectNumber int64) *V1GetProjectsCall {
	c.urlParams_.Set("projectNumber", fmt.Sprint(projectNumber))
	return c
}

// ReturnDynamicLink sets the optional parameter "returnDynamicLink":
// Whether dynamic link should be returned.
func (c *V1GetProjectsCall) ReturnDynamicLink(returnDynamicLink bool) *V1GetProjectsCall {
	c.urlParams_.Set("returnDynamicLink", fmt.Sprint(returnDynamicLink))
	return c
}

// Sha1Cert sets the optional parameter "sha1Cert": SHA-1 Android
// application cert hash. If set, a check will be performed to ensure
// that the cert hash is valid for the retrieved project and
// android_package_name.
func (c *V1GetProjectsCall) Sha1Cert(sha1Cert string) *V1GetProjectsCall {
	c.urlParams_.Set("sha1Cert", sha1Cert)
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *V1GetProjectsCall) Fields(s ...googleapi.Field) *V1GetProjectsCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// IfNoneMatch sets the optional parameter which makes the operation
// fail if the object's ETag matches the given value. This is useful for
// getting updates only after the object has changed since the last
// request. Use googleapi.IsNotModified to check whether the response
// error from Do is the result of In-None-Match.
func (c *V1GetProjectsCall) IfNoneMatch(entityTag string) *V1GetProjectsCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *V1GetProjectsCall) Context(ctx context.Context) *V1GetProjectsCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *V1GetProjectsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *V1GetProjectsCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	if c.ifNoneMatch_ != "" {
		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
	}
	var body io.Reader = nil
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("GET", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.getProjects" call.
// Exactly one of *GoogleCloudIdentitytoolkitV1GetProjectConfigResponse
// or error will be non-nil. Any non-2xx status code is an error.
// Response headers are in either
// *GoogleCloudIdentitytoolkitV1GetProjectConfigResponse.ServerResponse.H
// eader or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *V1GetProjectsCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1GetProjectConfigResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1GetProjectConfigResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Gets a project's public Identity Toolkit configuration. (Legacy) This method also supports authenticated calls from a developer to retrieve non-public configuration.",
	//   "flatPath": "v1/projects",
	//   "httpMethod": "GET",
	//   "id": "identitytoolkit.getProjects",
	//   "parameterOrder": [],
	//   "parameters": {
	//     "androidPackageName": {
	//       "description": "Android package name to check against the real android package name. If this field is provided, and sha1_cert_hash is not provided, the action will throw an error if this does not match the real android package name.",
	//       "location": "query",
	//       "type": "string"
	//     },
	//     "clientId": {
	//       "description": "The RP OAuth client ID. If set, a check will be performed to ensure that the OAuth client is valid for the retrieved project and the request rejected with a client error if not valid.",
	//       "location": "query",
	//       "type": "string"
	//     },
	//     "delegatedProjectNumber": {
	//       "description": "Project Number of the delegated project request. This field should only be used as part of the Firebase V1 migration.",
	//       "format": "int64",
	//       "location": "query",
	//       "type": "string"
	//     },
	//     "firebaseAppId": {
	//       "description": "The Firebase app ID, for applications that use Firebase. This can be found in the Firebase console for your project. If set, a check will be performed to ensure that the app ID is valid for the retrieved project. If not valid, the request will be rejected with a client error.",
	//       "location": "query",
	//       "type": "string"
	//     },
	//     "iosBundleId": {
	//       "description": "iOS bundle id to check against the real ios bundle id. If this field is provided, the action will throw an error if this does not match the real iOS bundle id.",
	//       "location": "query",
	//       "type": "string"
	//     },
	//     "projectNumber": {
	//       "description": "Project number of the configuration to retrieve. This field is deprecated and should not be used by new integrations.",
	//       "format": "int64",
	//       "location": "query",
	//       "type": "string"
	//     },
	//     "returnDynamicLink": {
	//       "description": "Whether dynamic link should be returned.",
	//       "location": "query",
	//       "type": "boolean"
	//     },
	//     "sha1Cert": {
	//       "description": "SHA-1 Android application cert hash. If set, a check will be performed to ensure that the cert hash is valid for the retrieved project and android_package_name.",
	//       "location": "query",
	//       "type": "string"
	//     }
	//   },
	//   "path": "v1/projects",
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1GetProjectConfigResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}

// method id "identitytoolkit.getPublicKeys":

type V1GetPublicKeysCall struct {
	s            *Service
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// GetPublicKeys: Retrieves public keys of the legacy Identity Toolkit
// token signer to enable third parties to verify the legacy ID token.
// For now the X509 pem cert is the only format supported.
func (r *V1Service) GetPublicKeys() *V1GetPublicKeysCall {
	c := &V1GetPublicKeysCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *V1GetPublicKeysCall) Fields(s ...googleapi.Field) *V1GetPublicKeysCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// IfNoneMatch sets the optional parameter which makes the operation
// fail if the object's ETag matches the given value. This is useful for
// getting updates only after the object has changed since the last
// request. Use googleapi.IsNotModified to check whether the response
// error from Do is the result of In-None-Match.
func (c *V1GetPublicKeysCall) IfNoneMatch(entityTag string) *V1GetPublicKeysCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *V1GetPublicKeysCall) Context(ctx context.Context) *V1GetPublicKeysCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *V1GetPublicKeysCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *V1GetPublicKeysCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	if c.ifNoneMatch_ != "" {
		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
	}
	var body io.Reader = nil
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/publicKeys")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("GET", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.getPublicKeys" call.
func (c *V1GetPublicKeysCall) Do(opts ...googleapi.CallOption) error {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if err != nil {
		return err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return gensupport.WrapError(err)
	}
	return nil
	// {
	//   "description": "Retrieves public keys of the legacy Identity Toolkit token signer to enable third parties to verify the legacy ID token. For now the X509 pem cert is the only format supported.",
	//   "flatPath": "v1/publicKeys",
	//   "httpMethod": "GET",
	//   "id": "identitytoolkit.getPublicKeys",
	//   "parameterOrder": [],
	//   "parameters": {},
	//   "path": "v1/publicKeys",
	//   "response": {
	//     "additionalProperties": {
	//       "description": "Properties of the object.",
	//       "type": "any"
	//     },
	//     "type": "object"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}

// method id "identitytoolkit.getRecaptchaParams":

type V1GetRecaptchaParamsCall struct {
	s            *Service
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// GetRecaptchaParams: Gets parameters needed for generating a reCAPTCHA
// challenge.
func (r *V1Service) GetRecaptchaParams() *V1GetRecaptchaParamsCall {
	c := &V1GetRecaptchaParamsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *V1GetRecaptchaParamsCall) Fields(s ...googleapi.Field) *V1GetRecaptchaParamsCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// IfNoneMatch sets the optional parameter which makes the operation
// fail if the object's ETag matches the given value. This is useful for
// getting updates only after the object has changed since the last
// request. Use googleapi.IsNotModified to check whether the response
// error from Do is the result of In-None-Match.
func (c *V1GetRecaptchaParamsCall) IfNoneMatch(entityTag string) *V1GetRecaptchaParamsCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *V1GetRecaptchaParamsCall) Context(ctx context.Context) *V1GetRecaptchaParamsCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *V1GetRecaptchaParamsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *V1GetRecaptchaParamsCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	if c.ifNoneMatch_ != "" {
		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
	}
	var body io.Reader = nil
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/recaptchaParams")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("GET", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.getRecaptchaParams" call.
// Exactly one of *GoogleCloudIdentitytoolkitV1GetRecaptchaParamResponse
// or error will be non-nil. Any non-2xx status code is an error.
// Response headers are in either
// *GoogleCloudIdentitytoolkitV1GetRecaptchaParamResponse.ServerResponse.
// Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *V1GetRecaptchaParamsCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1GetRecaptchaParamResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1GetRecaptchaParamResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Gets parameters needed for generating a reCAPTCHA challenge.",
	//   "flatPath": "v1/recaptchaParams",
	//   "httpMethod": "GET",
	//   "id": "identitytoolkit.getRecaptchaParams",
	//   "parameterOrder": [],
	//   "parameters": {},
	//   "path": "v1/recaptchaParams",
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1GetRecaptchaParamResponse"
	//   },
	//   "scopes": [
	//     "https://www.googleapis.com/auth/cloud-platform"
	//   ]
	// }

}

// method id "identitytoolkit.getSessionCookiePublicKeys":

type V1GetSessionCookiePublicKeysCall struct {
	s            *Service
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// GetSessionCookiePublicKeys: Retrieves the set of public keys of the
// session cookie JSON Web Token (JWT) signer that can be used to
// validate the session cookie created through createSessionCookie.
func (r *V1Service) GetSessionCookiePublicKeys() *V1GetSessionCookiePublicKeysCall {
	c := &V1GetSessionCookiePublicKeysCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *V1GetSessionCookiePublicKeysCall) Fields(s ...googleapi.Field) *V1GetSessionCookiePublicKeysCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// IfNoneMatch sets the optional parameter which makes the operation
// fail if the object's ETag matches the given value. This is useful for
// getting updates only after the object has changed since the last
// request. Use googleapi.IsNotModified to check whether the response
// error from Do is the result of In-None-Match.
func (c *V1GetSessionCookiePublicKeysCall) IfNoneMatch(entityTag string) *V1GetSessionCookiePublicKeysCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
func (c *V1GetSessionCookiePublicKeysCall) Context(ctx context.Context) *V1GetSessionCookiePublicKeysCall {
	c.ctx_ = ctx
	return c
}

// Header returns an http.Header that can be modified by the caller to
// add HTTP headers to the request.
func (c *V1GetSessionCookiePublicKeysCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *V1GetSessionCookiePublicKeysCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := make(http.Header)
	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
	for k, v := range c.header_ {
		reqHeaders[k] = v
	}
	reqHeaders.Set("User-Agent", c.s.userAgent())
	if c.ifNoneMatch_ != "" {
		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
	}
	var body io.Reader = nil
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/sessionCookiePublicKeys")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("GET", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "identitytoolkit.getSessionCookiePublicKeys" call.
// Exactly one of
// *GoogleCloudIdentitytoolkitV1GetSessionCookiePublicKeysResponse or
// error will be non-nil. Any non-2xx status code is an error. Response
// headers are in either
// *GoogleCloudIdentitytoolkitV1GetSessionCookiePublicKeysResponse.Server
// Response.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was
// returned.
func (c *V1GetSessionCookiePublicKeysCall) Do(opts ...googleapi.CallOption) (*GoogleCloudIdentitytoolkitV1GetSessionCookiePublicKeysResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleCloudIdentitytoolkitV1GetSessionCookiePublicKeysResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	if err := gensupport.DecodeResponse(target, res); err != nil {
		return nil, err
	}
	return ret, nil
	// {
	//   "description": "Retrieves the set of public keys of the session cookie JSON Web Token (JWT) signer that can be used to validate the session cookie created through createSessionCookie.",
	//   "flatPath": "v1/sessionCookiePublicKeys",
	//   "httpMethod": "GET",
	//   "id": "identitytoolkit.getSessionCookiePublicKeys",
	//   "parameterOrder": [],
	//   "parameters": {},
	//   "path": "v1/sessionCookiePublicKeys",
	//   "response": {
	//     "$ref": "GoogleCloudIdentitytoolkitV1GetSessionCookiePublicKeysResponse"
	//   }
	// }

}
