// 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 fitness provides access to the Fitness API. // // For product documentation, see: https://developers.google.com/fit/rest/v1/get-started // // # 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/fitness/v1" // ... // ctx := context.Background() // fitnessService, err := fitness.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]: // // fitnessService, err := fitness.NewService(ctx, option.WithScopes(fitness.FitnessSleepWriteScope)) // // To use an API key for authentication (note: some APIs do not support API // keys), use [google.golang.org/api/option.WithAPIKey]: // // fitnessService, err := fitness.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, ...) // fitnessService, err := fitness.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token))) // // See [google.golang.org/api/option.ClientOption] for details on options. package fitness // import "google.golang.org/api/fitness/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 = "fitness:v1" const apiName = "fitness" const apiVersion = "v1" const basePath = "https://fitness.googleapis.com/fitness/v1/users/" const basePathTemplate = "https://fitness.UNIVERSE_DOMAIN/fitness/v1/users/" const mtlsBasePath = "https://fitness.mtls.googleapis.com/fitness/v1/users/" // OAuth2 scopes used by this API. const ( // Use Google Fit to see and store your physical activity data FitnessActivityReadScope = "https://www.googleapis.com/auth/fitness.activity.read" // Add to your Google Fit physical activity data FitnessActivityWriteScope = "https://www.googleapis.com/auth/fitness.activity.write" // See info about your blood glucose in Google Fit. I consent to Google sharing // my blood glucose information with this app. FitnessBloodGlucoseReadScope = "https://www.googleapis.com/auth/fitness.blood_glucose.read" // Add info about your blood glucose to Google Fit. I consent to Google using // my blood glucose information with this app. FitnessBloodGlucoseWriteScope = "https://www.googleapis.com/auth/fitness.blood_glucose.write" // See info about your blood pressure in Google Fit. I consent to Google // sharing my blood pressure information with this app. FitnessBloodPressureReadScope = "https://www.googleapis.com/auth/fitness.blood_pressure.read" // Add info about your blood pressure in Google Fit. I consent to Google using // my blood pressure information with this app. FitnessBloodPressureWriteScope = "https://www.googleapis.com/auth/fitness.blood_pressure.write" // See info about your body measurements in Google Fit FitnessBodyReadScope = "https://www.googleapis.com/auth/fitness.body.read" // Add info about your body measurements to Google Fit FitnessBodyWriteScope = "https://www.googleapis.com/auth/fitness.body.write" // See info about your body temperature in Google Fit. I consent to Google // sharing my body temperature information with this app. FitnessBodyTemperatureReadScope = "https://www.googleapis.com/auth/fitness.body_temperature.read" // Add to info about your body temperature in Google Fit. I consent to Google // using my body temperature information with this app. FitnessBodyTemperatureWriteScope = "https://www.googleapis.com/auth/fitness.body_temperature.write" // See your heart rate data in Google Fit. I consent to Google sharing my heart // rate information with this app. FitnessHeartRateReadScope = "https://www.googleapis.com/auth/fitness.heart_rate.read" // Add to your heart rate data in Google Fit. I consent to Google using my // heart rate information with this app. FitnessHeartRateWriteScope = "https://www.googleapis.com/auth/fitness.heart_rate.write" // See your Google Fit speed and distance data FitnessLocationReadScope = "https://www.googleapis.com/auth/fitness.location.read" // Add to your Google Fit location data FitnessLocationWriteScope = "https://www.googleapis.com/auth/fitness.location.write" // See info about your nutrition in Google Fit FitnessNutritionReadScope = "https://www.googleapis.com/auth/fitness.nutrition.read" // Add to info about your nutrition in Google Fit FitnessNutritionWriteScope = "https://www.googleapis.com/auth/fitness.nutrition.write" // See info about your oxygen saturation in Google Fit. I consent to Google // sharing my oxygen saturation information with this app. FitnessOxygenSaturationReadScope = "https://www.googleapis.com/auth/fitness.oxygen_saturation.read" // Add info about your oxygen saturation in Google Fit. I consent to Google // using my oxygen saturation information with this app. FitnessOxygenSaturationWriteScope = "https://www.googleapis.com/auth/fitness.oxygen_saturation.write" // See info about your reproductive health in Google Fit. I consent to Google // sharing my reproductive health information with this app. FitnessReproductiveHealthReadScope = "https://www.googleapis.com/auth/fitness.reproductive_health.read" // Add info about your reproductive health in Google Fit. I consent to Google // using my reproductive health information with this app. FitnessReproductiveHealthWriteScope = "https://www.googleapis.com/auth/fitness.reproductive_health.write" // See your sleep data in Google Fit. I consent to Google sharing my sleep // information with this app. FitnessSleepReadScope = "https://www.googleapis.com/auth/fitness.sleep.read" // Add to your sleep data in Google Fit. I consent to Google using my sleep // information with this app. FitnessSleepWriteScope = "https://www.googleapis.com/auth/fitness.sleep.write" ) // NewService creates a new Service. func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) { scopesOption := internaloption.WithDefaultScopes( "https://www.googleapis.com/auth/fitness.activity.read", "https://www.googleapis.com/auth/fitness.activity.write", "https://www.googleapis.com/auth/fitness.blood_glucose.read", "https://www.googleapis.com/auth/fitness.blood_glucose.write", "https://www.googleapis.com/auth/fitness.blood_pressure.read", "https://www.googleapis.com/auth/fitness.blood_pressure.write", "https://www.googleapis.com/auth/fitness.body.read", "https://www.googleapis.com/auth/fitness.body.write", "https://www.googleapis.com/auth/fitness.body_temperature.read", "https://www.googleapis.com/auth/fitness.body_temperature.write", "https://www.googleapis.com/auth/fitness.heart_rate.read", "https://www.googleapis.com/auth/fitness.heart_rate.write", "https://www.googleapis.com/auth/fitness.location.read", "https://www.googleapis.com/auth/fitness.location.write", "https://www.googleapis.com/auth/fitness.nutrition.read", "https://www.googleapis.com/auth/fitness.nutrition.write", "https://www.googleapis.com/auth/fitness.oxygen_saturation.read", "https://www.googleapis.com/auth/fitness.oxygen_saturation.write", "https://www.googleapis.com/auth/fitness.reproductive_health.read", "https://www.googleapis.com/auth/fitness.reproductive_health.write", "https://www.googleapis.com/auth/fitness.sleep.read", "https://www.googleapis.com/auth/fitness.sleep.write", ) // 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.EnableNewAuthLibrary()) 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.Users = NewUsersService(s) return s, nil } type Service struct { client *http.Client BasePath string // API endpoint base URL UserAgent string // optional additional User-Agent fragment Users *UsersService } func (s *Service) userAgent() string { if s.UserAgent == "" { return googleapi.UserAgent } return googleapi.UserAgent + " " + s.UserAgent } func NewUsersService(s *Service) *UsersService { rs := &UsersService{s: s} rs.DataSources = NewUsersDataSourcesService(s) rs.Dataset = NewUsersDatasetService(s) rs.Sessions = NewUsersSessionsService(s) return rs } type UsersService struct { s *Service DataSources *UsersDataSourcesService Dataset *UsersDatasetService Sessions *UsersSessionsService } func NewUsersDataSourcesService(s *Service) *UsersDataSourcesService { rs := &UsersDataSourcesService{s: s} rs.DataPointChanges = NewUsersDataSourcesDataPointChangesService(s) rs.Datasets = NewUsersDataSourcesDatasetsService(s) return rs } type UsersDataSourcesService struct { s *Service DataPointChanges *UsersDataSourcesDataPointChangesService Datasets *UsersDataSourcesDatasetsService } func NewUsersDataSourcesDataPointChangesService(s *Service) *UsersDataSourcesDataPointChangesService { rs := &UsersDataSourcesDataPointChangesService{s: s} return rs } type UsersDataSourcesDataPointChangesService struct { s *Service } func NewUsersDataSourcesDatasetsService(s *Service) *UsersDataSourcesDatasetsService { rs := &UsersDataSourcesDatasetsService{s: s} return rs } type UsersDataSourcesDatasetsService struct { s *Service } func NewUsersDatasetService(s *Service) *UsersDatasetService { rs := &UsersDatasetService{s: s} return rs } type UsersDatasetService struct { s *Service } func NewUsersSessionsService(s *Service) *UsersSessionsService { rs := &UsersSessionsService{s: s} return rs } type UsersSessionsService struct { s *Service } type AggregateBucket struct { // Activity: Available for Bucket.Type.ACTIVITY_TYPE, // Bucket.Type.ACTIVITY_SEGMENT Activity int64 `json:"activity,omitempty"` // Dataset: There will be one dataset per AggregateBy in the request. Dataset []*Dataset `json:"dataset,omitempty"` // EndTimeMillis: The end time for the aggregated data, in milliseconds since // epoch, inclusive. EndTimeMillis int64 `json:"endTimeMillis,omitempty,string"` // Session: Available for Bucket.Type.SESSION Session *Session `json:"session,omitempty"` // StartTimeMillis: The start time for the aggregated data, in milliseconds // since epoch, inclusive. StartTimeMillis int64 `json:"startTimeMillis,omitempty,string"` // Type: The type of a bucket signifies how the data aggregation is performed // in the bucket. // // Possible values: // "unknown" // "time" - Denotes that bucketing by time is requested. When this is // specified, the timeBucketDurationMillis field is used to determine how many // buckets will be returned. // "session" - Denotes that bucketing by session is requested. When this is // specified, only data that occurs within sessions that begin and end within // the dataset time frame, is included in the results. // "activityType" - Denotes that bucketing by activity type is requested. // When this is specified, there will be one bucket for each unique activity // type that a user participated in, during the dataset time frame of interest. // "activitySegment" - Denotes that bucketing by individual activity segment // is requested. This will aggregate data by the time boundaries specified by // each activity segment occurring within the dataset time frame of interest. Type string `json:"type,omitempty"` // ForceSendFields is a list of field names (e.g. "Activity") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Activity") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *AggregateBucket) MarshalJSON() ([]byte, error) { type NoMethod AggregateBucket return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // AggregateBy: The specification of which data to aggregate. type AggregateBy struct { // DataSourceId: A data source ID to aggregate. Only data from the specified // data source ID will be included in the aggregation. If specified, this data // source must exist; the OAuth scopes in the supplied credentials must grant // read access to this data type. The dataset in the response will have the // same data source ID. Note: Data can be aggregated by either the dataTypeName // or the dataSourceId, not both. DataSourceId string `json:"dataSourceId,omitempty"` // DataTypeName: The data type to aggregate. All data sources providing this // data type will contribute data to the aggregation. The response will contain // a single dataset for this data type name. The dataset will have a data // source ID of derived::com.google.android.gms:aggregated. If the user has no // data for this data type, an empty data set will be returned. Note: Data can // be aggregated by either the dataTypeName or the dataSourceId, not both. DataTypeName string `json:"dataTypeName,omitempty"` // ForceSendFields is a list of field names (e.g. "DataSourceId") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "DataSourceId") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *AggregateBy) MarshalJSON() ([]byte, error) { type NoMethod AggregateBy return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // AggregateRequest: Next id: 10 type AggregateRequest struct { // AggregateBy: The specification of data to be aggregated. At least one // aggregateBy spec must be provided. All data that is specified will be // aggregated using the same bucketing criteria. There will be one dataset in // the response for every aggregateBy spec. AggregateBy []*AggregateBy `json:"aggregateBy,omitempty"` // BucketByActivitySegment: Specifies that data be aggregated each activity // segment recorded for a user. Similar to bucketByActivitySegment, but // bucketing is done for each activity segment rather than all segments of the // same type. Mutually exclusive of other bucketing specifications. BucketByActivitySegment *BucketByActivity `json:"bucketByActivitySegment,omitempty"` // BucketByActivityType: Specifies that data be aggregated by the type of // activity being performed when the data was recorded. All data that was // recorded during a certain activity type (.for the given time range) will be // aggregated into the same bucket. Data that was recorded while the user was // not active will not be included in the response. Mutually exclusive of other // bucketing specifications. BucketByActivityType *BucketByActivity `json:"bucketByActivityType,omitempty"` // BucketBySession: Specifies that data be aggregated by user sessions. Data // that does not fall within the time range of a session will not be included // in the response. Mutually exclusive of other bucketing specifications. BucketBySession *BucketBySession `json:"bucketBySession,omitempty"` // BucketByTime: Specifies that data be aggregated by a single time interval. // Mutually exclusive of other bucketing specifications. BucketByTime *BucketByTime `json:"bucketByTime,omitempty"` // EndTimeMillis: The end of a window of time. Data that intersects with this // time window will be aggregated. The time is in milliseconds since epoch, // inclusive. The maximum allowed difference between start_time_millis // and // end_time_millis is 7776000000 (roughly 90 days). EndTimeMillis int64 `json:"endTimeMillis,omitempty,string"` // FilteredDataQualityStandard: DO NOT POPULATE THIS FIELD. It is ignored. // // Possible values: // "dataQualityUnknown" // "dataQualityBloodPressureEsh2002" // "dataQualityBloodPressureEsh2010" // "dataQualityBloodPressureAami" // "dataQualityBloodPressureBhsAA" // "dataQualityBloodPressureBhsAB" // "dataQualityBloodPressureBhsBA" // "dataQualityBloodPressureBhsBB" // "dataQualityBloodGlucoseIso151972003" // "dataQualityBloodGlucoseIso151972013" FilteredDataQualityStandard []string `json:"filteredDataQualityStandard,omitempty"` // StartTimeMillis: The start of a window of time. Data that intersects with // this time window will be aggregated. The time is in milliseconds since // epoch, inclusive. StartTimeMillis int64 `json:"startTimeMillis,omitempty,string"` // ForceSendFields is a list of field names (e.g. "AggregateBy") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "AggregateBy") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *AggregateRequest) MarshalJSON() ([]byte, error) { type NoMethod AggregateRequest return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type AggregateResponse struct { // Bucket: A list of buckets containing the aggregated data. Bucket []*AggregateBucket `json:"bucket,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Bucket") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Bucket") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *AggregateResponse) MarshalJSON() ([]byte, error) { type NoMethod AggregateResponse return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type Application struct { // DetailsUrl: An optional URI that can be used to link back to the // application. DetailsUrl string `json:"detailsUrl,omitempty"` // Name: The name of this application. This is required for REST clients, but // we do not enforce uniqueness of this name. It is provided as a matter of // convenience for other developers who would like to identify which REST // created an Application or Data Source. Name string `json:"name,omitempty"` // PackageName: Package name for this application. This is used as a unique // identifier when created by Android applications, but cannot be specified by // REST clients. REST clients will have their developer project number // reflected into the Data Source data stream IDs, instead of the packageName. PackageName string `json:"packageName,omitempty"` // Version: Version of the application. You should update this field whenever // the application changes in a way that affects the computation of the data. Version string `json:"version,omitempty"` // ForceSendFields is a list of field names (e.g. "DetailsUrl") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "DetailsUrl") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Application) MarshalJSON() ([]byte, error) { type NoMethod Application return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type BucketByActivity struct { // ActivityDataSourceId: The default activity stream will be used if a specific // activityDataSourceId is not specified. ActivityDataSourceId string `json:"activityDataSourceId,omitempty"` // MinDurationMillis: Specifies that only activity segments of duration longer // than minDurationMillis are considered and used as a container for aggregated // data. MinDurationMillis int64 `json:"minDurationMillis,omitempty,string"` // ForceSendFields is a list of field names (e.g. "ActivityDataSourceId") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ActivityDataSourceId") to include // in API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *BucketByActivity) MarshalJSON() ([]byte, error) { type NoMethod BucketByActivity return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type BucketBySession struct { // MinDurationMillis: Specifies that only sessions of duration longer than // minDurationMillis are considered and used as a container for aggregated // data. MinDurationMillis int64 `json:"minDurationMillis,omitempty,string"` // ForceSendFields is a list of field names (e.g. "MinDurationMillis") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "MinDurationMillis") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *BucketBySession) MarshalJSON() ([]byte, error) { type NoMethod BucketBySession return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type BucketByTime struct { // DurationMillis: Specifies that result buckets aggregate data by exactly // durationMillis time frames. Time frames that contain no data will be // included in the response with an empty dataset. DurationMillis int64 `json:"durationMillis,omitempty,string"` Period *BucketByTimePeriod `json:"period,omitempty"` // ForceSendFields is a list of field names (e.g. "DurationMillis") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "DurationMillis") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *BucketByTime) MarshalJSON() ([]byte, error) { type NoMethod BucketByTime return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type BucketByTimePeriod struct { // TimeZoneId: org.joda.timezone.DateTimeZone TimeZoneId string `json:"timeZoneId,omitempty"` // Possible values: // "day" // "week" // "month" Type string `json:"type,omitempty"` Value int64 `json:"value,omitempty"` // ForceSendFields is a list of field names (e.g. "TimeZoneId") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "TimeZoneId") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *BucketByTimePeriod) MarshalJSON() ([]byte, error) { type NoMethod BucketByTimePeriod return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // DataPoint: Represents a single data point, generated by a particular data // source. A data point holds a value for each field, an end timestamp and an // optional start time. The exact semantics of each of these attributes are // specified in the documentation for the particular data type. A data point // can represent an instantaneous measurement, reading or input observation, as // well as averages or aggregates over a time interval. Check the data type // documentation to determine which is the case for a particular data type. // Data points always contain one value for each field of the data type. type DataPoint struct { // ComputationTimeMillis: DO NOT USE THIS FIELD. It is ignored, and not stored. ComputationTimeMillis int64 `json:"computationTimeMillis,omitempty,string"` // DataTypeName: The data type defining the format of the values in this data // point. DataTypeName string `json:"dataTypeName,omitempty"` // EndTimeNanos: The end time of the interval represented by this data point, // in nanoseconds since epoch. EndTimeNanos int64 `json:"endTimeNanos,omitempty,string"` // ModifiedTimeMillis: Indicates the last time this data point was modified. // Useful only in contexts where we are listing the data changes, rather than // representing the current state of the data. ModifiedTimeMillis int64 `json:"modifiedTimeMillis,omitempty,string"` // OriginDataSourceId: If the data point is contained in a dataset for a // derived data source, this field will be populated with the data source // stream ID that created the data point originally. WARNING: do not rely on // this field for anything other than debugging. The value of this field, if it // is set at all, is an implementation detail and is not guaranteed to remain // consistent. OriginDataSourceId string `json:"originDataSourceId,omitempty"` // RawTimestampNanos: The raw timestamp from the original SensorEvent. RawTimestampNanos int64 `json:"rawTimestampNanos,omitempty,string"` // StartTimeNanos: The start time of the interval represented by this data // point, in nanoseconds since epoch. StartTimeNanos int64 `json:"startTimeNanos,omitempty,string"` // Value: Values of each data type field for the data point. It is expected // that each value corresponding to a data type field will occur in the same // order that the field is listed with in the data type specified in a data // source. Only one of integer and floating point fields will be populated, // depending on the format enum value within data source's type field. Value []*Value `json:"value,omitempty"` // ForceSendFields is a list of field names (e.g. "ComputationTimeMillis") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ComputationTimeMillis") to // include in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *DataPoint) MarshalJSON() ([]byte, error) { type NoMethod DataPoint return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // DataSource: Definition of a unique source of sensor data. Data sources can // expose raw data coming from hardware sensors on local or companion devices. // They can also expose derived data, created by transforming or merging other // data sources. Multiple data sources can exist for the same data type. Every // data point inserted into or read from this service has an associated data // source. The data source contains enough information to uniquely identify its // data, including the hardware device and the application that collected // and/or transformed the data. It also holds useful metadata, such as the // hardware and application versions, and the device type. Each data source // produces a unique stream of data, with a unique identifier. Not all changes // to data source affect the stream identifier, so that data collected by // updated versions of the same application/device can still be considered to // belong to the same data stream. type DataSource struct { // Application: Information about an application which feeds sensor data into // the platform. Application *Application `json:"application,omitempty"` // DataQualityStandard: DO NOT POPULATE THIS FIELD. It is never populated in // responses from the platform, and is ignored in queries. It will be removed // in a future version entirely. // // Possible values: // "dataQualityUnknown" // "dataQualityBloodPressureEsh2002" // "dataQualityBloodPressureEsh2010" // "dataQualityBloodPressureAami" // "dataQualityBloodPressureBhsAA" // "dataQualityBloodPressureBhsAB" // "dataQualityBloodPressureBhsBA" // "dataQualityBloodPressureBhsBB" // "dataQualityBloodGlucoseIso151972003" // "dataQualityBloodGlucoseIso151972013" DataQualityStandard []string `json:"dataQualityStandard,omitempty"` // DataStreamId: A unique identifier for the data stream produced by this data // source. The identifier includes: - The physical device's manufacturer, // model, and serial number (UID). - The application's package name or name. // Package name is used when the data source was created by an Android // application. The developer project number is used when the data source was // created by a REST client. - The data source's type. - The data source's // stream name. Note that not all attributes of the data source are used as // part of the stream identifier. In particular, the version of the // hardware/the application isn't used. This allows us to preserve the same // stream through version updates. This also means that two DataSource objects // may represent the same data stream even if they're not equal. The exact // format of the data stream ID created by an Android application is: // type:dataType.name:application.packageName:device.manufacturer:device.model:d // evice.uid:dataStreamName The exact format of the data stream ID created by a // REST client is: type:dataType.name:developer project // number:device.manufacturer:device.model:device.uid:dataStreamName When any // of the optional fields that make up the data stream ID are absent, they will // be omitted from the data stream ID. The minimum viable data stream ID would // be: type:dataType.name:developer project number Finally, the developer // project number and device UID are obfuscated when read by any REST or // Android client that did not create the data source. Only the data source // creator will see the developer project number in clear and normal form. This // means a client will see a different set of data_stream_ids than another // client with different credentials. DataStreamId string `json:"dataStreamId,omitempty"` // DataStreamName: The stream name uniquely identifies this particular data // source among other data sources of the same type from the same underlying // producer. Setting the stream name is optional, but should be done whenever // an application exposes two streams for the same data type, or when a device // has two equivalent sensors. DataStreamName string `json:"dataStreamName,omitempty"` // DataType: The data type defines the schema for a stream of data being // collected by, inserted into, or queried from the Fitness API. DataType *DataType `json:"dataType,omitempty"` // Device: Representation of an integrated device (such as a phone or a // wearable) that can hold sensors. Device *Device `json:"device,omitempty"` // Name: An end-user visible name for this data source. Name string `json:"name,omitempty"` // Type: A constant describing the type of this data source. Indicates whether // this data source produces raw or derived data. // // Possible values: // "raw" // "derived" Type string `json:"type,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Application") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Application") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *DataSource) MarshalJSON() ([]byte, error) { type NoMethod DataSource return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type DataType struct { // Field: A field represents one dimension of a data type. Field []*DataTypeField `json:"field,omitempty"` // Name: Each data type has a unique, namespaced, name. All data types in the // com.google namespace are shared as part of the platform. Name string `json:"name,omitempty"` // ForceSendFields is a list of field names (e.g. "Field") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Field") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *DataType) MarshalJSON() ([]byte, error) { type NoMethod DataType return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // DataTypeField: In case of multi-dimensional data (such as an accelerometer // with x, y, and z axes) each field represents one dimension. Each data type // field has a unique name which identifies it. The field also defines the // format of the data (int, float, etc.). This message is only instantiated in // code and not used for wire comms or stored in any way. type DataTypeField struct { // Format: The different supported formats for each field in a data type. // // Possible values: // "integer" // "floatPoint" // "string" // "map" // "integerList" // "floatList" // "blob" Format string `json:"format,omitempty"` // Name: Defines the name and format of data. Unlike data type names, field // names are not namespaced, and only need to be unique within the data type. Name string `json:"name,omitempty"` Optional bool `json:"optional,omitempty"` // ForceSendFields is a list of field names (e.g. "Format") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Format") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *DataTypeField) MarshalJSON() ([]byte, error) { type NoMethod DataTypeField return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // Dataset: A dataset represents a projection container for data points. They // do not carry any info of their own. Datasets represent a set of data points // from a particular data source. A data point can be found in more than one // dataset. type Dataset struct { // DataSourceId: The data stream ID of the data source that created the points // in this dataset. DataSourceId string `json:"dataSourceId,omitempty"` // MaxEndTimeNs: The largest end time of all data points in this possibly // partial representation of the dataset. Time is in nanoseconds from epoch. // This should also match the second part of the dataset identifier. MaxEndTimeNs int64 `json:"maxEndTimeNs,omitempty,string"` // MinStartTimeNs: The smallest start time of all data points in this possibly // partial representation of the dataset. Time is in nanoseconds from epoch. // This should also match the first part of the dataset identifier. MinStartTimeNs int64 `json:"minStartTimeNs,omitempty,string"` // NextPageToken: This token will be set when a dataset is received in response // to a GET request and the dataset is too large to be included in a single // response. Provide this value in a subsequent GET request to return the next // page of data points within this dataset. NextPageToken string `json:"nextPageToken,omitempty"` // Point: A partial list of data points contained in the dataset, ordered by // endTimeNanos. This list is considered complete when retrieving a small // dataset and partial when patching a dataset or retrieving a dataset that is // too large to include in a single response. Point []*DataPoint `json:"point,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "DataSourceId") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "DataSourceId") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Dataset) MarshalJSON() ([]byte, error) { type NoMethod Dataset return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // Device: Representation of an integrated device (such as a phone or a // wearable) that can hold sensors. Each sensor is exposed as a data source. // The main purpose of the device information contained in this class is to // identify the hardware of a particular data source. This can be useful in // different ways, including: - Distinguishing two similar sensors on different // devices (the step counter on two nexus 5 phones, for instance) - Display the // source of data to the user (by using the device make / model) - Treat data // differently depending on sensor type (accelerometers on a watch may give // different patterns than those on a phone) - Build different analysis models // for each device/version. type Device struct { // Manufacturer: Manufacturer of the product/hardware. Manufacturer string `json:"manufacturer,omitempty"` // Model: End-user visible model name for the device. Model string `json:"model,omitempty"` // Type: A constant representing the type of the device. // // Possible values: // "unknown" - Device type is not known. // "phone" - An Android phone. // "tablet" - An Android tablet. // "watch" - A watch or other wrist-mounted band. // "chestStrap" - A chest strap. // "scale" - A scale. // "headMounted" - Glass or other head-mounted device. // "smartDisplay" - A smart display e.g. Nest device. Type string `json:"type,omitempty"` // Uid: The serial number or other unique ID for the hardware. This field is // obfuscated when read by any REST or Android client that did not create the // data source. Only the data source creator will see the uid field in clear // and normal form. The obfuscation preserves equality; that is, given two IDs, // if id1 == id2, obfuscated(id1) == obfuscated(id2). Uid string `json:"uid,omitempty"` // Version: Version string for the device hardware/software. Version string `json:"version,omitempty"` // ForceSendFields is a list of field names (e.g. "Manufacturer") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Manufacturer") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Device) MarshalJSON() ([]byte, error) { type NoMethod Device return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type ListDataPointChangesResponse struct { // DataSourceId: The data stream ID of the data source with data point changes. DataSourceId string `json:"dataSourceId,omitempty"` // DeletedDataPoint: Deleted data points for the user. Note, for modifications // this should be parsed before handling insertions. DeletedDataPoint []*DataPoint `json:"deletedDataPoint,omitempty"` // InsertedDataPoint: Inserted data points for the user. InsertedDataPoint []*DataPoint `json:"insertedDataPoint,omitempty"` // NextPageToken: The continuation token, which is used to page through large // result sets. Provide this value in a subsequent request to return the next // page of results. NextPageToken string `json:"nextPageToken,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "DataSourceId") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "DataSourceId") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *ListDataPointChangesResponse) MarshalJSON() ([]byte, error) { type NoMethod ListDataPointChangesResponse return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type ListDataSourcesResponse struct { // DataSource: A previously created data source. DataSource []*DataSource `json:"dataSource,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "DataSource") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "DataSource") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *ListDataSourcesResponse) MarshalJSON() ([]byte, error) { type NoMethod ListDataSourcesResponse return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type ListSessionsResponse struct { // DeletedSession: If includeDeleted is set to true in the request, and // startTime and endTime are omitted, this will include sessions which were // deleted since the last sync. DeletedSession []*Session `json:"deletedSession,omitempty"` // HasMoreData: Flag to indicate server has more data to transfer. DO NOT USE // THIS FIELD. It is never populated in responses from the server. HasMoreData bool `json:"hasMoreData,omitempty"` // NextPageToken: The sync token which is used to sync further changes. This // will only be provided if both startTime and endTime are omitted from the // request. NextPageToken string `json:"nextPageToken,omitempty"` // Session: Sessions with an end time that is between startTime and endTime of // the request. Session []*Session `json:"session,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "DeletedSession") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "DeletedSession") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *ListSessionsResponse) MarshalJSON() ([]byte, error) { type NoMethod ListSessionsResponse return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // MapValue: Holder object for the value of an entry in a map field of a data // point. A map value supports a subset of the formats that the regular Value // supports. type MapValue struct { // FpVal: Floating point value. FpVal float64 `json:"fpVal,omitempty"` // ForceSendFields is a list of field names (e.g. "FpVal") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "FpVal") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *MapValue) MarshalJSON() ([]byte, error) { type NoMethod MapValue return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } func (s *MapValue) UnmarshalJSON(data []byte) error { type NoMethod MapValue var s1 struct { FpVal gensupport.JSONFloat64 `json:"fpVal"` *NoMethod } s1.NoMethod = (*NoMethod)(s) if err := json.Unmarshal(data, &s1); err != nil { return err } s.FpVal = float64(s1.FpVal) return nil } // Session: Sessions contain metadata, such as a user-friendly name and time // interval information. type Session struct { // ActiveTimeMillis: Session active time. While start_time_millis and // end_time_millis define the full session time, the active time can be shorter // and specified by active_time_millis. If the inactive time during the session // is known, it should also be inserted via a com.google.activity.segment data // point with a STILL activity value ActiveTimeMillis int64 `json:"activeTimeMillis,omitempty,string"` // ActivityType: The type of activity this session represents. ActivityType int64 `json:"activityType,omitempty"` // Application: The application that created the session. Application *Application `json:"application,omitempty"` // Description: A description for this session. Description string `json:"description,omitempty"` // EndTimeMillis: An end time, in milliseconds since epoch, inclusive. EndTimeMillis int64 `json:"endTimeMillis,omitempty,string"` // Id: A client-generated identifier that is unique across all sessions owned // by this particular user. Id string `json:"id,omitempty"` // ModifiedTimeMillis: A timestamp that indicates when the session was last // modified. ModifiedTimeMillis int64 `json:"modifiedTimeMillis,omitempty,string"` // Name: A human readable name of the session. Name string `json:"name,omitempty"` // StartTimeMillis: A start time, in milliseconds since epoch, inclusive. StartTimeMillis int64 `json:"startTimeMillis,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. "ActiveTimeMillis") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ActiveTimeMillis") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Session) MarshalJSON() ([]byte, error) { type NoMethod Session return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // Value: Holder object for the value of a single field in a data point. A // field value has a particular format and is only ever set to one of an // integer or a floating point value. type Value struct { // FpVal: Floating point value. When this is set, other values must not be set. FpVal float64 `json:"fpVal,omitempty"` // IntVal: Integer value. When this is set, other values must not be set. IntVal int64 `json:"intVal,omitempty"` // MapVal: Map value. The valid key space and units for the corresponding value // of each entry should be documented as part of the data type definition. Keys // should be kept small whenever possible. Data streams with large keys and // high data frequency may be down sampled. MapVal []*ValueMapValEntry `json:"mapVal,omitempty"` // StringVal: String value. When this is set, other values must not be set. // Strings should be kept small whenever possible. Data streams with large // string values and high data frequency may be down sampled. StringVal string `json:"stringVal,omitempty"` // ForceSendFields is a list of field names (e.g. "FpVal") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "FpVal") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Value) MarshalJSON() ([]byte, error) { type NoMethod Value return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } func (s *Value) UnmarshalJSON(data []byte) error { type NoMethod Value var s1 struct { FpVal gensupport.JSONFloat64 `json:"fpVal"` *NoMethod } s1.NoMethod = (*NoMethod)(s) if err := json.Unmarshal(data, &s1); err != nil { return err } s.FpVal = float64(s1.FpVal) return nil } type ValueMapValEntry struct { Key string `json:"key,omitempty"` Value *MapValue `json:"value,omitempty"` // ForceSendFields is a list of field names (e.g. "Key") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Key") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *ValueMapValEntry) MarshalJSON() ([]byte, error) { type NoMethod ValueMapValEntry return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type UsersDataSourcesCreateCall struct { s *Service userId string datasource *DataSource urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Create: Creates a new data source that is unique across all data sources // belonging to this user. A data source is a unique source of sensor data. // Data sources can expose raw data coming from hardware sensors on local or // companion devices. They can also expose derived data, created by // transforming or merging other data sources. Multiple data sources can exist // for the same data type. Every data point in every dataset inserted into or // read from the Fitness API has an associated data source. Each data source // produces a unique stream of dataset updates, with a unique data source // identifier. Not all changes to data source affect the data stream ID, so // that data collected by updated versions of the same application/device can // still be considered to belong to the same data source. Data sources are // identified using a string generated by the server, based on the contents of // the source being created. The dataStreamId field should not be set when // invoking this method. It will be automatically generated by the server with // the correct format. If a dataStreamId is set, it must match the format that // the server would generate. This format is a combination of some fields from // the data source, and has a specific order. If it doesn't match, the request // will fail with an error. Specifying a DataType which is not a known type // (beginning with "com.google.") will create a DataSource with a *custom data // type*. Custom data types are only readable by the application that created // them. Custom data types are *deprecated*; use standard data types instead. // In addition to the data source fields included in the data source ID, the // developer project number that is authenticated when creating the data source // is included. This developer project number is obfuscated when read by any // other developer reading public data types. // // - userId: Create the data source for the person identified. Use me to // indicate the authenticated user. Only me is supported at this time. func (r *UsersDataSourcesService) Create(userId string, datasource *DataSource) *UsersDataSourcesCreateCall { c := &UsersDataSourcesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.userId = userId c.datasource = datasource return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *UsersDataSourcesCreateCall) Fields(s ...googleapi.Field) *UsersDataSourcesCreateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. func (c *UsersDataSourcesCreateCall) Context(ctx context.Context) *UsersDataSourcesCreateCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *UsersDataSourcesCreateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *UsersDataSourcesCreateCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.datasource) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "{userId}/dataSources") 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{ "userId": c.userId, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "fitness.users.dataSources.create" call. // Any non-2xx status code is an error. Response headers are in either // *DataSource.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 *UsersDataSourcesCreateCall) Do(opts ...googleapi.CallOption) (*DataSource, 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 := &DataSource{ 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 } type UsersDataSourcesDeleteCall struct { s *Service userId string dataSourceId string urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Delete: Deletes the specified data source. The request will fail if the data // source contains any data points. // // - dataSourceId: The data stream ID of the data source to delete. // - userId: Retrieve a data source for the person identified. Use me to // indicate the authenticated user. Only me is supported at this time. func (r *UsersDataSourcesService) Delete(userId string, dataSourceId string) *UsersDataSourcesDeleteCall { c := &UsersDataSourcesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.userId = userId c.dataSourceId = dataSourceId return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *UsersDataSourcesDeleteCall) Fields(s ...googleapi.Field) *UsersDataSourcesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. func (c *UsersDataSourcesDeleteCall) Context(ctx context.Context) *UsersDataSourcesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *UsersDataSourcesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *UsersDataSourcesDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "{userId}/dataSources/{dataSourceId}") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("DELETE", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "userId": c.userId, "dataSourceId": c.dataSourceId, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "fitness.users.dataSources.delete" call. // Any non-2xx status code is an error. Response headers are in either // *DataSource.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 *UsersDataSourcesDeleteCall) Do(opts ...googleapi.CallOption) (*DataSource, 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 := &DataSource{ 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 } type UsersDataSourcesGetCall struct { s *Service userId string dataSourceId string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } // Get: Returns the specified data source. // // - dataSourceId: The data stream ID of the data source to retrieve. // - userId: Retrieve a data source for the person identified. Use me to // indicate the authenticated user. Only me is supported at this time. func (r *UsersDataSourcesService) Get(userId string, dataSourceId string) *UsersDataSourcesGetCall { c := &UsersDataSourcesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.userId = userId c.dataSourceId = dataSourceId return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *UsersDataSourcesGetCall) Fields(s ...googleapi.Field) *UsersDataSourcesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // IfNoneMatch sets an 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. func (c *UsersDataSourcesGetCall) IfNoneMatch(entityTag string) *UsersDataSourcesGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. func (c *UsersDataSourcesGetCall) Context(ctx context.Context) *UsersDataSourcesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *UsersDataSourcesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *UsersDataSourcesGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) 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, "{userId}/dataSources/{dataSourceId}") 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{ "userId": c.userId, "dataSourceId": c.dataSourceId, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "fitness.users.dataSources.get" call. // Any non-2xx status code is an error. Response headers are in either // *DataSource.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 *UsersDataSourcesGetCall) Do(opts ...googleapi.CallOption) (*DataSource, 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 := &DataSource{ 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 } type UsersDataSourcesListCall struct { s *Service userId string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } // List: Lists all data sources that are visible to the developer, using the // OAuth scopes provided. The list is not exhaustive; the user may have private // data sources that are only visible to other developers, or calls using other // scopes. // // - userId: List data sources for the person identified. Use me to indicate // the authenticated user. Only me is supported at this time. func (r *UsersDataSourcesService) List(userId string) *UsersDataSourcesListCall { c := &UsersDataSourcesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.userId = userId return c } // DataTypeName sets the optional parameter "dataTypeName": The names of data // types to include in the list. If not specified, all data sources will be // returned. func (c *UsersDataSourcesListCall) DataTypeName(dataTypeName ...string) *UsersDataSourcesListCall { c.urlParams_.SetMulti("dataTypeName", append([]string{}, dataTypeName...)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *UsersDataSourcesListCall) Fields(s ...googleapi.Field) *UsersDataSourcesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // IfNoneMatch sets an 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. func (c *UsersDataSourcesListCall) IfNoneMatch(entityTag string) *UsersDataSourcesListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. func (c *UsersDataSourcesListCall) Context(ctx context.Context) *UsersDataSourcesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *UsersDataSourcesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *UsersDataSourcesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) 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, "{userId}/dataSources") 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{ "userId": c.userId, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "fitness.users.dataSources.list" call. // Any non-2xx status code is an error. Response headers are in either // *ListDataSourcesResponse.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 *UsersDataSourcesListCall) Do(opts ...googleapi.CallOption) (*ListDataSourcesResponse, 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 := &ListDataSourcesResponse{ 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 } type UsersDataSourcesUpdateCall struct { s *Service userId string dataSourceId string datasource *DataSource urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Update: Updates the specified data source. The dataStreamId, dataType, type, // dataStreamName, and device properties with the exception of version, cannot // be modified. Data sources are identified by their dataStreamId. // // - dataSourceId: The data stream ID of the data source to update. // - userId: Update the data source for the person identified. Use me to // indicate the authenticated user. Only me is supported at this time. func (r *UsersDataSourcesService) Update(userId string, dataSourceId string, datasource *DataSource) *UsersDataSourcesUpdateCall { c := &UsersDataSourcesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.userId = userId c.dataSourceId = dataSourceId c.datasource = datasource return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *UsersDataSourcesUpdateCall) Fields(s ...googleapi.Field) *UsersDataSourcesUpdateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. func (c *UsersDataSourcesUpdateCall) Context(ctx context.Context) *UsersDataSourcesUpdateCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *UsersDataSourcesUpdateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *UsersDataSourcesUpdateCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.datasource) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "{userId}/dataSources/{dataSourceId}") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("PUT", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "userId": c.userId, "dataSourceId": c.dataSourceId, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "fitness.users.dataSources.update" call. // Any non-2xx status code is an error. Response headers are in either // *DataSource.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 *UsersDataSourcesUpdateCall) Do(opts ...googleapi.CallOption) (*DataSource, 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 := &DataSource{ 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 } type UsersDataSourcesDataPointChangesListCall struct { s *Service userId string dataSourceId string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } // List: Queries for user's data point changes for a particular data source. // // - dataSourceId: The data stream ID of the data source that created the // dataset. // - userId: List data points for the person identified. Use me to indicate the // authenticated user. Only me is supported at this time. func (r *UsersDataSourcesDataPointChangesService) List(userId string, dataSourceId string) *UsersDataSourcesDataPointChangesListCall { c := &UsersDataSourcesDataPointChangesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.userId = userId c.dataSourceId = dataSourceId return c } // Limit sets the optional parameter "limit": If specified, no more than this // many data point changes will be included in the response. func (c *UsersDataSourcesDataPointChangesListCall) Limit(limit int64) *UsersDataSourcesDataPointChangesListCall { c.urlParams_.Set("limit", fmt.Sprint(limit)) return c } // PageToken sets the optional parameter "pageToken": The continuation token, // which is used to page through large result sets. To get the next page of // results, set this parameter to the value of nextPageToken from the previous // response. func (c *UsersDataSourcesDataPointChangesListCall) PageToken(pageToken string) *UsersDataSourcesDataPointChangesListCall { c.urlParams_.Set("pageToken", pageToken) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *UsersDataSourcesDataPointChangesListCall) Fields(s ...googleapi.Field) *UsersDataSourcesDataPointChangesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // IfNoneMatch sets an 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. func (c *UsersDataSourcesDataPointChangesListCall) IfNoneMatch(entityTag string) *UsersDataSourcesDataPointChangesListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. func (c *UsersDataSourcesDataPointChangesListCall) Context(ctx context.Context) *UsersDataSourcesDataPointChangesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *UsersDataSourcesDataPointChangesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *UsersDataSourcesDataPointChangesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) 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, "{userId}/dataSources/{dataSourceId}/dataPointChanges") 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{ "userId": c.userId, "dataSourceId": c.dataSourceId, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "fitness.users.dataSources.dataPointChanges.list" call. // Any non-2xx status code is an error. Response headers are in either // *ListDataPointChangesResponse.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 *UsersDataSourcesDataPointChangesListCall) Do(opts ...googleapi.CallOption) (*ListDataPointChangesResponse, 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 := &ListDataPointChangesResponse{ 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 } // 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 *UsersDataSourcesDataPointChangesListCall) Pages(ctx context.Context, f func(*ListDataPointChangesResponse) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { x, err := c.Do() if err != nil { return err } if err := f(x); err != nil { return err } if x.NextPageToken == "" { return nil } c.PageToken(x.NextPageToken) } } type UsersDataSourcesDatasetsDeleteCall struct { s *Service userId string dataSourceId string datasetId string urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Delete: Performs an inclusive delete of all data points whose start and end // times have any overlap with the time range specified by the dataset ID. For // most data types, the entire data point will be deleted. For data types where // the time span represents a consistent value (such as // com.google.activity.segment), and a data point straddles either end point of // the dataset, only the overlapping portion of the data point will be deleted. // // - dataSourceId: The data stream ID of the data source that created the // dataset. // - datasetId: Dataset identifier that is a composite of the minimum data // point start time and maximum data point end time represented as // nanoseconds from the epoch. The ID is formatted like: "startTime-endTime" // where startTime and endTime are 64 bit integers. // - userId: Delete a dataset for the person identified. Use me to indicate the // authenticated user. Only me is supported at this time. func (r *UsersDataSourcesDatasetsService) Delete(userId string, dataSourceId string, datasetId string) *UsersDataSourcesDatasetsDeleteCall { c := &UsersDataSourcesDatasetsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.userId = userId c.dataSourceId = dataSourceId c.datasetId = datasetId return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *UsersDataSourcesDatasetsDeleteCall) Fields(s ...googleapi.Field) *UsersDataSourcesDatasetsDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. func (c *UsersDataSourcesDatasetsDeleteCall) Context(ctx context.Context) *UsersDataSourcesDatasetsDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *UsersDataSourcesDatasetsDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *UsersDataSourcesDatasetsDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "{userId}/dataSources/{dataSourceId}/datasets/{datasetId}") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("DELETE", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "userId": c.userId, "dataSourceId": c.dataSourceId, "datasetId": c.datasetId, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "fitness.users.dataSources.datasets.delete" call. func (c *UsersDataSourcesDatasetsDeleteCall) 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 } type UsersDataSourcesDatasetsGetCall struct { s *Service userId string dataSourceId string datasetId string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } // Get: Returns a dataset containing all data points whose start and end times // overlap with the specified range of the dataset minimum start time and // maximum end time. Specifically, any data point whose start time is less than // or equal to the dataset end time and whose end time is greater than or equal // to the dataset start time. // // - dataSourceId: The data stream ID of the data source that created the // dataset. // - datasetId: Dataset identifier that is a composite of the minimum data // point start time and maximum data point end time represented as // nanoseconds from the epoch. The ID is formatted like: "startTime-endTime" // where startTime and endTime are 64 bit integers. // - userId: Retrieve a dataset for the person identified. Use me to indicate // the authenticated user. Only me is supported at this time. func (r *UsersDataSourcesDatasetsService) Get(userId string, dataSourceId string, datasetId string) *UsersDataSourcesDatasetsGetCall { c := &UsersDataSourcesDatasetsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.userId = userId c.dataSourceId = dataSourceId c.datasetId = datasetId return c } // Limit sets the optional parameter "limit": If specified, no more than this // many data points will be included in the dataset. If there are more data // points in the dataset, nextPageToken will be set in the dataset response. // The limit is applied from the end of the time range. That is, if pageToken // is absent, the limit most recent data points will be returned. func (c *UsersDataSourcesDatasetsGetCall) Limit(limit int64) *UsersDataSourcesDatasetsGetCall { c.urlParams_.Set("limit", fmt.Sprint(limit)) return c } // PageToken sets the optional parameter "pageToken": The continuation token, // which is used to page through large datasets. To get the next page of a // dataset, set this parameter to the value of nextPageToken from the previous // response. Each subsequent call will yield a partial dataset with data point // end timestamps that are strictly smaller than those in the previous partial // response. func (c *UsersDataSourcesDatasetsGetCall) PageToken(pageToken string) *UsersDataSourcesDatasetsGetCall { c.urlParams_.Set("pageToken", pageToken) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *UsersDataSourcesDatasetsGetCall) Fields(s ...googleapi.Field) *UsersDataSourcesDatasetsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // IfNoneMatch sets an 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. func (c *UsersDataSourcesDatasetsGetCall) IfNoneMatch(entityTag string) *UsersDataSourcesDatasetsGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. func (c *UsersDataSourcesDatasetsGetCall) Context(ctx context.Context) *UsersDataSourcesDatasetsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *UsersDataSourcesDatasetsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *UsersDataSourcesDatasetsGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) 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, "{userId}/dataSources/{dataSourceId}/datasets/{datasetId}") 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{ "userId": c.userId, "dataSourceId": c.dataSourceId, "datasetId": c.datasetId, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "fitness.users.dataSources.datasets.get" call. // Any non-2xx status code is an error. Response headers are in either // *Dataset.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 *UsersDataSourcesDatasetsGetCall) Do(opts ...googleapi.CallOption) (*Dataset, 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 := &Dataset{ 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 } // 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 *UsersDataSourcesDatasetsGetCall) Pages(ctx context.Context, f func(*Dataset) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { x, err := c.Do() if err != nil { return err } if err := f(x); err != nil { return err } if x.NextPageToken == "" { return nil } c.PageToken(x.NextPageToken) } } type UsersDataSourcesDatasetsPatchCall struct { s *Service userId string dataSourceId string datasetId string dataset *Dataset urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Patch: Adds data points to a dataset. The dataset need not be previously // created. All points within the given dataset will be returned with subsquent // calls to retrieve this dataset. Data points can belong to more than one // dataset. This method does not use patch semantics: the data points provided // are merely inserted, with no existing data replaced. // // - dataSourceId: The data stream ID of the data source that created the // dataset. // - datasetId: This field is not used, and can be safely omitted. // - userId: Patch a dataset for the person identified. Use me to indicate the // authenticated user. Only me is supported at this time. func (r *UsersDataSourcesDatasetsService) Patch(userId string, dataSourceId string, datasetId string, dataset *Dataset) *UsersDataSourcesDatasetsPatchCall { c := &UsersDataSourcesDatasetsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.userId = userId c.dataSourceId = dataSourceId c.datasetId = datasetId c.dataset = dataset return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *UsersDataSourcesDatasetsPatchCall) Fields(s ...googleapi.Field) *UsersDataSourcesDatasetsPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. func (c *UsersDataSourcesDatasetsPatchCall) Context(ctx context.Context) *UsersDataSourcesDatasetsPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *UsersDataSourcesDatasetsPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *UsersDataSourcesDatasetsPatchCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.dataset) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "{userId}/dataSources/{dataSourceId}/datasets/{datasetId}") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "userId": c.userId, "dataSourceId": c.dataSourceId, "datasetId": c.datasetId, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "fitness.users.dataSources.datasets.patch" call. // Any non-2xx status code is an error. Response headers are in either // *Dataset.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 *UsersDataSourcesDatasetsPatchCall) Do(opts ...googleapi.CallOption) (*Dataset, 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 := &Dataset{ 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 } // 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 *UsersDataSourcesDatasetsPatchCall) Pages(ctx context.Context, f func(*Dataset) error) error { c.ctx_ = ctx defer func(pt string) { c.dataset.NextPageToken = pt }(c.dataset.NextPageToken) for { x, err := c.Do() if err != nil { return err } if err := f(x); err != nil { return err } if x.NextPageToken == "" { return nil } c.dataset.NextPageToken = x.NextPageToken } } type UsersDatasetAggregateCall struct { s *Service userId string aggregaterequest *AggregateRequest urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Aggregate: Aggregates data of a certain type or stream into buckets divided // by a given type of boundary. Multiple data sets of multiple types and from // multiple sources can be aggregated into exactly one bucket type per request. // // - userId: Aggregate data for the person identified. Use me to indicate the // authenticated user. Only me is supported at this time. func (r *UsersDatasetService) Aggregate(userId string, aggregaterequest *AggregateRequest) *UsersDatasetAggregateCall { c := &UsersDatasetAggregateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.userId = userId c.aggregaterequest = aggregaterequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *UsersDatasetAggregateCall) Fields(s ...googleapi.Field) *UsersDatasetAggregateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. func (c *UsersDatasetAggregateCall) Context(ctx context.Context) *UsersDatasetAggregateCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *UsersDatasetAggregateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *UsersDatasetAggregateCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.aggregaterequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "{userId}/dataset:aggregate") 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{ "userId": c.userId, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "fitness.users.dataset.aggregate" call. // Any non-2xx status code is an error. Response headers are in either // *AggregateResponse.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 *UsersDatasetAggregateCall) Do(opts ...googleapi.CallOption) (*AggregateResponse, 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 := &AggregateResponse{ 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 } type UsersSessionsDeleteCall struct { s *Service userId string sessionId string urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Delete: Deletes a session specified by the given session ID. // // - sessionId: The ID of the session to be deleted. // - userId: Delete a session for the person identified. Use me to indicate the // authenticated user. Only me is supported at this time. func (r *UsersSessionsService) Delete(userId string, sessionId string) *UsersSessionsDeleteCall { c := &UsersSessionsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.userId = userId c.sessionId = sessionId return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *UsersSessionsDeleteCall) Fields(s ...googleapi.Field) *UsersSessionsDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. func (c *UsersSessionsDeleteCall) Context(ctx context.Context) *UsersSessionsDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *UsersSessionsDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *UsersSessionsDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "{userId}/sessions/{sessionId}") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("DELETE", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "userId": c.userId, "sessionId": c.sessionId, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "fitness.users.sessions.delete" call. func (c *UsersSessionsDeleteCall) 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 } type UsersSessionsListCall struct { s *Service userId string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } // List: Lists sessions previously created. // // - userId: List sessions for the person identified. Use me to indicate the // authenticated user. Only me is supported at this time. func (r *UsersSessionsService) List(userId string) *UsersSessionsListCall { c := &UsersSessionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.userId = userId return c } // ActivityType sets the optional parameter "activityType": If non-empty, only // sessions with these activity types should be returned. func (c *UsersSessionsListCall) ActivityType(activityType ...int64) *UsersSessionsListCall { var activityType_ []string for _, v := range activityType { activityType_ = append(activityType_, fmt.Sprint(v)) } c.urlParams_.SetMulti("activityType", activityType_) return c } // EndTime sets the optional parameter "endTime": An RFC3339 timestamp. Only // sessions ending between the start and end times will be included in the // response. If this time is omitted but startTime is specified, all sessions // from startTime to the end of time will be returned. func (c *UsersSessionsListCall) EndTime(endTime string) *UsersSessionsListCall { c.urlParams_.Set("endTime", endTime) return c } // IncludeDeleted sets the optional parameter "includeDeleted": If true, and if // both startTime and endTime are omitted, session deletions will be returned. func (c *UsersSessionsListCall) IncludeDeleted(includeDeleted bool) *UsersSessionsListCall { c.urlParams_.Set("includeDeleted", fmt.Sprint(includeDeleted)) return c } // PageToken sets the optional parameter "pageToken": The continuation token, // which is used for incremental syncing. To get the next batch of changes, set // this parameter to the value of nextPageToken from the previous response. The // page token is ignored if either start or end time is specified. If none of // start time, end time, and the page token is specified, sessions modified in // the last 30 days are returned. func (c *UsersSessionsListCall) PageToken(pageToken string) *UsersSessionsListCall { c.urlParams_.Set("pageToken", pageToken) return c } // StartTime sets the optional parameter "startTime": An RFC3339 timestamp. // Only sessions ending between the start and end times will be included in the // response. If this time is omitted but endTime is specified, all sessions // from the start of time up to endTime will be returned. func (c *UsersSessionsListCall) StartTime(startTime string) *UsersSessionsListCall { c.urlParams_.Set("startTime", startTime) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *UsersSessionsListCall) Fields(s ...googleapi.Field) *UsersSessionsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // IfNoneMatch sets an 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. func (c *UsersSessionsListCall) IfNoneMatch(entityTag string) *UsersSessionsListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. func (c *UsersSessionsListCall) Context(ctx context.Context) *UsersSessionsListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *UsersSessionsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *UsersSessionsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) 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, "{userId}/sessions") 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{ "userId": c.userId, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "fitness.users.sessions.list" call. // Any non-2xx status code is an error. Response headers are in either // *ListSessionsResponse.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 *UsersSessionsListCall) Do(opts ...googleapi.CallOption) (*ListSessionsResponse, 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 := &ListSessionsResponse{ 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 } // 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 *UsersSessionsListCall) Pages(ctx context.Context, f func(*ListSessionsResponse) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { x, err := c.Do() if err != nil { return err } if err := f(x); err != nil { return err } if x.NextPageToken == "" { return nil } c.PageToken(x.NextPageToken) } } type UsersSessionsUpdateCall struct { s *Service userId string sessionId string session *Session urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Update: Updates or insert a given session. // // - sessionId: The ID of the session to be created. // - userId: Create sessions for the person identified. Use me to indicate the // authenticated user. Only me is supported at this time. func (r *UsersSessionsService) Update(userId string, sessionId string, session *Session) *UsersSessionsUpdateCall { c := &UsersSessionsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.userId = userId c.sessionId = sessionId c.session = session return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *UsersSessionsUpdateCall) Fields(s ...googleapi.Field) *UsersSessionsUpdateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. func (c *UsersSessionsUpdateCall) Context(ctx context.Context) *UsersSessionsUpdateCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *UsersSessionsUpdateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *UsersSessionsUpdateCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.session) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "{userId}/sessions/{sessionId}") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("PUT", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "userId": c.userId, "sessionId": c.sessionId, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "fitness.users.sessions.update" call. // Any non-2xx status code is an error. Response headers are in either // *Session.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 *UsersSessionsUpdateCall) Do(opts ...googleapi.CallOption) (*Session, 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 := &Session{ 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 }