// Type definitions for non-npm package Google Firebase Remote Config API v1 1.0 // Project: https://firebase.google.com/docs/remote-config/ // Definitions by: Bolisov Alexey // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.3 // IMPORTANT // This file was generated by https://github.com/Bolisov/google-api-typings-generator. Please do not edit it manually. // In case of any problems please post issue to https://github.com/Bolisov/google-api-typings-generator // Generated from: https://firebaseremoteconfig.googleapis.com/$discovery/rest?version=v1 /// declare namespace gapi.client { /** Load Firebase Remote Config API v1 */ function load(name: "firebaseremoteconfig", version: "v1"): PromiseLike; function load(name: "firebaseremoteconfig", version: "v1", callback: () => any): void; const projects: firebaseremoteconfig.ProjectsResource; namespace firebaseremoteconfig { interface RemoteConfig { /** * The list of named conditions. The order *does* affect the semantics. * The condition_name values of these entries must be unique. * * The resolved value of a config parameter P is determined as follow: * * Let Y be the set of values from the submap of P that refer to conditions * that evaluate to true. * * If Y is non empty, the value is taken from the specific submap in Y whose * condition_name is the earliest in this condition list. * * Else, if P has a default value option (condition_name is empty) then * the value is taken from that option. * * Else, parameter P has no value and is omitted from the config result. * * Example: parameter key "p1", default value "v1", submap specified as * {"c1": v2, "c2": v3} where "c1" and "c2" are names of conditions in the * condition list (where "c1" in this example appears before "c2"). The * value of p1 would be v2 as long as c1 is true. Otherwise, if c2 is true, * p1 would evaluate to v3, and if c1 and c2 are both false, p1 would evaluate * to v1. If no default value was specified, and c1 and c2 were both false, * no value for p1 would be generated. */ conditions?: RemoteConfigCondition[]; /** * Map of parameter keys to their optional default values and optional submap * of (condition name : value). Order doesn't affect semantics, and so is * sorted by the server. The 'key' values of the params must be unique. */ parameters?: Record; } interface RemoteConfigCondition { /** Required. */ expression?: string; /** * Required. * A non empty and unique name of this condition. */ name?: string; /** * Optional. * The display (tag) color of this condition. This serves as part of a tag * (in the future, we may add tag text as well as tag color, but that is not * yet implemented in the UI). * This value has no affect on the semantics of the delivered config and it * is ignored by the backend, except for passing it through write/read * requests. * Not having this value or having the "CONDITION_DISPLAY_COLOR_UNSPECIFIED" * value (0) have the same meaning: Let the UI choose any valid color when * displaying the condition. */ tagColor?: string; } interface RemoteConfigParameter { /** * Optional - a map of (condition_name, value). The condition_name of the * highest priority (the one listed first in the conditions array) determines * the value of this parameter. */ conditionalValues?: Record; /** * Optional - value to set the parameter to, when none of the named conditions * evaluate to true. */ defaultValue?: RemoteConfigParameterValue; } interface RemoteConfigParameterValue { /** if true, omit the parameter from the map of fetched parameter values */ useInAppDefault?: boolean; /** the string to set the parameter to */ value?: string; } interface ProjectsResource { /** * Get the latest version Remote Configuration for a project. * Returns the RemoteConfig as the payload, and also the eTag as a * response header. */ getRemoteConfig(request: { /** V1 error format. */ "$.xgafv"?: string; /** OAuth access token. */ access_token?: string; /** Data format for response. */ alt?: string; /** OAuth bearer token. */ bearer_token?: string; /** JSONP */ callback?: string; /** Selector specifying which fields to include in a partial response. */ fields?: string; /** API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token. */ key?: string; /** OAuth 2.0 token for the current user. */ oauth_token?: string; /** Pretty-print response. */ pp?: boolean; /** Returns response with indentations and line breaks. */ prettyPrint?: boolean; /** * The GMP project identifier. Required. * See note at the beginning of this file regarding project ids. */ project: string; /** Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. */ quotaUser?: string; /** Legacy upload protocol for media (e.g. "media", "multipart"). */ uploadType?: string; /** Upload protocol for media (e.g. "raw", "multipart"). */ upload_protocol?: string; }): Request; /** * Update a RemoteConfig. We treat this as an always-existing * resource (when it is not found in our data store, we treat it as version * 0, a template with zero conditions and zero parameters). Hence there are * no Create or Delete operations. Returns the updated template when * successful (and the updated eTag as a response header), or an error if * things go wrong. * Possible error messages: * * VALIDATION_ERROR (HTTP status 400) with additional details if the * template being passed in can not be validated. * * AUTHENTICATION_ERROR (HTTP status 401) if the request can not be * authenticate (e.g. no access token, or invalid access token). * * AUTHORIZATION_ERROR (HTTP status 403) if the request can not be * authorized (e.g. the user has no access to the specified project id). * * VERSION_MISMATCH (HTTP status 412) when trying to update when the * expected eTag (passed in via the "If-match" header) is not specified, or * is specified but does does not match the current eTag. * * Internal error (HTTP status 500) for Database problems or other internal * errors. */ updateRemoteConfig(request: { /** V1 error format. */ "$.xgafv"?: string; /** OAuth access token. */ access_token?: string; /** Data format for response. */ alt?: string; /** OAuth bearer token. */ bearer_token?: string; /** JSONP */ callback?: string; /** Selector specifying which fields to include in a partial response. */ fields?: string; /** API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token. */ key?: string; /** OAuth 2.0 token for the current user. */ oauth_token?: string; /** Pretty-print response. */ pp?: boolean; /** Returns response with indentations and line breaks. */ prettyPrint?: boolean; /** * The GMP project identifier. Required. * See note at the beginning of this file regarding project ids. */ project: string; /** Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. */ quotaUser?: string; /** Legacy upload protocol for media (e.g. "media", "multipart"). */ uploadType?: string; /** Upload protocol for media (e.g. "raw", "multipart"). */ upload_protocol?: string; /** * Optional. Defaults to false (UpdateRemoteConfig call should * update the backend if there are no validation/interal errors). May be set * to true to indicate that, should no validation errors occur, * the call should return a "200 OK" instead of performing the update. Note * that other error messages (500 Internal Error, 412 Version Mismatch, etc) * may still result after flipping to false, even if getting a * "200 OK" when calling with true. */ validateOnly?: boolean; }): Request; } } }