[][src]Crate google_tagmanager2

This documentation was generated from Tag Manager crate version 1.0.12+20190516, where 20190516 is the exact revision of the tagmanager:v2 schema built by the mako code generator v1.0.12.

Everything else about the Tag Manager v2 API can be found at the official documentation site. The original source code is on github.

Features

Handle the following Resources with ease from the central hub ...

Not what you are looking for ? Find all other Google APIs in their Rust documentation index.

Structure of this Library

The API is structured into the following primary items:

  • Hub
    • a central object to maintain state and allow accessing all Activities
    • creates Method Builders which in turn allow access to individual Call Builders
  • Resources
    • primary types that you can apply Activities to
    • a collection of properties and Parts
    • Parts
      • a collection of properties
      • never directly used in Activities
  • Activities
    • operations to apply to Resources

All structures are marked with applicable traits to further categorize them and ease browsing.

Generally speaking, you can invoke Activities like this:

let r = hub.resource().activity(...).doit()

Or specifically ...

This example is not tested
let r = hub.accounts().containers_workspaces_zones_create(...).doit()
let r = hub.accounts().containers_workspaces_folders_move_entities_to_folder(...).doit()
let r = hub.accounts().containers_version_headers_latest(...).doit()
let r = hub.accounts().containers_workspaces_triggers_create(...).doit()
let r = hub.accounts().containers_workspaces_list(...).doit()
let r = hub.accounts().containers_workspaces_built_in_variables_revert(...).doit()
let r = hub.accounts().containers_workspaces_built_in_variables_delete(...).doit()
let r = hub.accounts().containers_environments_create(...).doit()
let r = hub.accounts().containers_versions_publish(...).doit()
let r = hub.accounts().containers_workspaces_templates_get(...).doit()
let r = hub.accounts().containers_workspaces_zones_revert(...).doit()
let r = hub.accounts().containers_workspaces_tags_create(...).doit()
let r = hub.accounts().containers_environments_delete(...).doit()
let r = hub.accounts().containers_workspaces_get(...).doit()
let r = hub.accounts().containers_get(...).doit()
let r = hub.accounts().user_permissions_create(...).doit()
let r = hub.accounts().containers_workspaces_folders_list(...).doit()
let r = hub.accounts().containers_environments_reauthorize(...).doit()
let r = hub.accounts().containers_workspaces_delete(...).doit()
let r = hub.accounts().containers_workspaces_create(...).doit()
let r = hub.accounts().user_permissions_list(...).doit()
let r = hub.accounts().containers_workspaces_templates_delete(...).doit()
let r = hub.accounts().containers_workspaces_quick_preview(...).doit()
let r = hub.accounts().containers_workspaces_variables_get(...).doit()
let r = hub.accounts().containers_versions_set_latest(...).doit()
let r = hub.accounts().containers_workspaces_variables_update(...).doit()
let r = hub.accounts().containers_environments_list(...).doit()
let r = hub.accounts().containers_workspaces_tags_list(...).doit()
let r = hub.accounts().containers_workspaces_templates_list(...).doit()
let r = hub.accounts().containers_workspaces_zones_update(...).doit()
let r = hub.accounts().containers_workspaces_zones_get(...).doit()
let r = hub.accounts().containers_workspaces_create_version(...).doit()
let r = hub.accounts().containers_delete(...).doit()
let r = hub.accounts().containers_workspaces_templates_create(...).doit()
let r = hub.accounts().containers_versions_delete(...).doit()
let r = hub.accounts().update(...).doit()
let r = hub.accounts().containers_version_headers_list(...).doit()
let r = hub.accounts().containers_workspaces_built_in_variables_list(...).doit()
let r = hub.accounts().containers_workspaces_triggers_list(...).doit()
let r = hub.accounts().user_permissions_update(...).doit()
let r = hub.accounts().containers_workspaces_zones_list(...).doit()
let r = hub.accounts().containers_workspaces_templates_update(...).doit()
let r = hub.accounts().get(...).doit()
let r = hub.accounts().containers_versions_live(...).doit()
let r = hub.accounts().list(...).doit()
let r = hub.accounts().containers_workspaces_variables_list(...).doit()
let r = hub.accounts().containers_versions_undelete(...).doit()
let r = hub.accounts().containers_workspaces_variables_revert(...).doit()
let r = hub.accounts().containers_workspaces_zones_delete(...).doit()
let r = hub.accounts().containers_workspaces_folders_get(...).doit()
let r = hub.accounts().containers_workspaces_folders_create(...).doit()
let r = hub.accounts().containers_workspaces_tags_delete(...).doit()
let r = hub.accounts().containers_update(...).doit()
let r = hub.accounts().containers_environments_get(...).doit()
let r = hub.accounts().containers_workspaces_folders_update(...).doit()
let r = hub.accounts().containers_workspaces_built_in_variables_create(...).doit()
let r = hub.accounts().containers_list(...).doit()
let r = hub.accounts().containers_workspaces_folders_entities(...).doit()
let r = hub.accounts().containers_workspaces_triggers_delete(...).doit()
let r = hub.accounts().containers_workspaces_folders_delete(...).doit()
let r = hub.accounts().containers_workspaces_sync(...).doit()
let r = hub.accounts().containers_workspaces_tags_revert(...).doit()
let r = hub.accounts().containers_workspaces_tags_update(...).doit()
let r = hub.accounts().containers_workspaces_templates_revert(...).doit()
let r = hub.accounts().containers_create(...).doit()
let r = hub.accounts().containers_workspaces_triggers_update(...).doit()
let r = hub.accounts().containers_workspaces_variables_create(...).doit()
let r = hub.accounts().user_permissions_get(...).doit()
let r = hub.accounts().containers_workspaces_triggers_revert(...).doit()
let r = hub.accounts().containers_workspaces_variables_delete(...).doit()
let r = hub.accounts().containers_workspaces_tags_get(...).doit()
let r = hub.accounts().containers_workspaces_resolve_conflict(...).doit()
let r = hub.accounts().containers_environments_update(...).doit()
let r = hub.accounts().containers_workspaces_triggers_get(...).doit()
let r = hub.accounts().containers_workspaces_folders_revert(...).doit()
let r = hub.accounts().containers_workspaces_get_status(...).doit()
let r = hub.accounts().containers_versions_update(...).doit()
let r = hub.accounts().containers_versions_get(...).doit()
let r = hub.accounts().containers_workspaces_update(...).doit()
let r = hub.accounts().user_permissions_delete(...).doit()

The resource() and activity(...) calls create builders. The second one dealing with Activities supports various methods to configure the impending operation (not shown here). It is made such that all required arguments have to be specified right away (i.e. (...)), whereas all optional ones can be build up as desired. The doit() method performs the actual communication with the server and returns the respective result.

Usage

Setting up your Project

To use this library, you would put the following lines into your Cargo.toml file:

[dependencies]
google-tagmanager2 = "*"
# This project intentionally uses an old version of Hyper. See
# https://github.com/Byron/google-apis-rs/issues/173 for more
# information.
hyper = "^0.10"
hyper-rustls = "^0.6"
serde = "^1.0"
serde_json = "^1.0"
yup-oauth2 = "^1.0"

A complete example

extern crate hyper;
extern crate hyper_rustls;
extern crate yup_oauth2 as oauth2;
extern crate google_tagmanager2 as tagmanager2;
use tagmanager2::Folder;
use tagmanager2::{Result, Error};
use std::default::Default;
use oauth2::{Authenticator, DefaultAuthenticatorDelegate, ApplicationSecret, MemoryStorage};
use tagmanager2::TagManager;
 
// Get an ApplicationSecret instance by some means. It contains the `client_id` and 
// `client_secret`, among other things.
let secret: ApplicationSecret = Default::default();
// Instantiate the authenticator. It will choose a suitable authentication flow for you, 
// unless you replace  `None` with the desired Flow.
// Provide your own `AuthenticatorDelegate` to adjust the way it operates and get feedback about 
// what's going on. You probably want to bring in your own `TokenStorage` to persist tokens and
// retrieve them from storage.
let auth = Authenticator::new(&secret, DefaultAuthenticatorDelegate,
                              hyper::Client::with_connector(hyper::net::HttpsConnector::new(hyper_rustls::TlsClient::new())),
                              <MemoryStorage as Default>::default(), None);
let mut hub = TagManager::new(hyper::Client::with_connector(hyper::net::HttpsConnector::new(hyper_rustls::TlsClient::new())), auth);
// As the method needs a request, you would usually fill it with the desired information
// into the respective structure. Some of the parts shown here might not be applicable !
// Values shown here are possibly random and not representative !
let mut req = Folder::default();
 
// You can configure optional parameters by calling the respective setters at will, and
// execute the final call using `doit()`.
// Values shown here are possibly random and not representative !
let result = hub.accounts().containers_workspaces_folders_move_entities_to_folder(req, "path")
             .add_variable_id("dolores")
             .add_trigger_id("kasd")
             .add_tag_id("accusam")
             .doit();
 
match result {
    Err(e) => match e {
        // The Error enum provides details about what exactly happened.
        // You can also just use its `Debug`, `Display` or `Error` traits
         Error::HttpError(_)
        |Error::MissingAPIKey
        |Error::MissingToken(_)
        |Error::Cancelled
        |Error::UploadSizeLimitExceeded(_, _)
        |Error::Failure(_)
        |Error::BadRequest(_)
        |Error::FieldClash(_)
        |Error::JsonDecodeError(_, _) => println!("{}", e),
    },
    Ok(res) => println!("Success: {:?}", res),
}

Handling Errors

All errors produced by the system are provided either as Result enumeration as return value of the doit() methods, or handed as possibly intermediate results to either the Hub Delegate, or the Authenticator Delegate.

When delegates handle errors or intermediate values, they may have a chance to instruct the system to retry. This makes the system potentially resilient to all kinds of errors.

Uploads and Downloads

If a method supports downloads, the response body, which is part of the Result, should be read by you to obtain the media. If such a method also supports a Response Result, it will return that by default. You can see it as meta-data for the actual media. To trigger a media download, you will have to set up the builder by making this call: .param("alt", "media").

Methods supporting uploads can do so using up to 2 different protocols: simple and resumable. The distinctiveness of each is represented by customized doit(...) methods, which are then named upload(...) and upload_resumable(...) respectively.

Customization and Callbacks

You may alter the way an doit() method is called by providing a delegate to the Method Builder before making the final doit() call. Respective methods will be called to provide progress information, as well as determine whether the system should retry on failure.

The delegate trait is default-implemented, allowing you to customize it with minimal effort.

Optional Parts in Server-Requests

All structures provided by this library are made to be enocodable and decodable via json. Optionals are used to indicate that partial requests are responses are valid. Most optionals are are considered Parts which are identifiable by name, which will be sent to the server to indicate either the set parts of the request or the desired parts in the response.

Builder Arguments

Using method builders, you are able to prepare an action call by repeatedly calling it's methods. These will always take a single argument, for which the following statements are true.

Arguments will always be copied or cloned into the builder, to make them independent of their original life times.

Structs

Account

Represents a Google Tag Manager Account.

AccountAccess

Defines the Google Tag Manager Account access permissions.

AccountContainerCreateCall

Creates a Container.

AccountContainerDeleteCall

Deletes a Container.

AccountContainerEnvironmentCreateCall

Creates a GTM Environment.

AccountContainerEnvironmentDeleteCall

Deletes a GTM Environment.

AccountContainerEnvironmentGetCall

Gets a GTM Environment.

AccountContainerEnvironmentListCall

Lists all GTM Environments of a GTM Container.

AccountContainerEnvironmentReauthorizeCall

Re-generates the authorization code for a GTM Environment.

AccountContainerEnvironmentUpdateCall

Updates a GTM Environment.

AccountContainerGetCall

Gets a Container.

AccountContainerListCall

Lists all Containers that belongs to a GTM Account.

AccountContainerUpdateCall

Updates a Container.

AccountContainerVersionDeleteCall

Deletes a Container Version.

AccountContainerVersionGetCall

Gets a Container Version.

AccountContainerVersionHeaderLatestCall

Gets the latest container version header

AccountContainerVersionHeaderListCall

Lists all Container Versions of a GTM Container.

AccountContainerVersionLiveCall

Gets the live (i.e. published) container version

AccountContainerVersionPublishCall

Publishes a Container Version.

AccountContainerVersionSetLatestCall

Sets the latest version used for synchronization of workspaces when detecting conflicts and errors.

AccountContainerVersionUndeleteCall

Undeletes a Container Version.

AccountContainerVersionUpdateCall

Updates a Container Version.

AccountContainerWorkspaceBuiltInVariableCreateCall

Creates one or more GTM Built-In Variables.

AccountContainerWorkspaceBuiltInVariableDeleteCall

Deletes one or more GTM Built-In Variables.

AccountContainerWorkspaceBuiltInVariableListCall

Lists all the enabled Built-In Variables of a GTM Container.

AccountContainerWorkspaceBuiltInVariableRevertCall

Reverts changes to a GTM Built-In Variables in a GTM Workspace.

AccountContainerWorkspaceCreateCall

Creates a Workspace.

AccountContainerWorkspaceCreateVersionCall

Creates a Container Version from the entities present in the workspace, deletes the workspace, and sets the base container version to the newly created version.

AccountContainerWorkspaceDeleteCall

Deletes a Workspace.

AccountContainerWorkspaceFolderCreateCall

Creates a GTM Folder.

AccountContainerWorkspaceFolderDeleteCall

Deletes a GTM Folder.

AccountContainerWorkspaceFolderEntityCall

List all entities in a GTM Folder.

AccountContainerWorkspaceFolderGetCall

Gets a GTM Folder.

AccountContainerWorkspaceFolderListCall

Lists all GTM Folders of a Container.

AccountContainerWorkspaceFolderMoveEntitiesToFolderCall

Moves entities to a GTM Folder.

AccountContainerWorkspaceFolderRevertCall

Reverts changes to a GTM Folder in a GTM Workspace.

AccountContainerWorkspaceFolderUpdateCall

Updates a GTM Folder.

AccountContainerWorkspaceGetCall

Gets a Workspace.

AccountContainerWorkspaceGetStatuCall

Finds conflicting and modified entities in the workspace.

AccountContainerWorkspaceListCall

Lists all Workspaces that belong to a GTM Container.

AccountContainerWorkspaceQuickPreviewCall

Quick previews a workspace by creating a fake container version from all entities in the provided workspace.

AccountContainerWorkspaceResolveConflictCall

Resolves a merge conflict for a workspace entity by updating it to the resolved entity passed in the request.

AccountContainerWorkspaceSyncCall

Syncs a workspace to the latest container version by updating all unmodified workspace entities and displaying conflicts for modified entities.

AccountContainerWorkspaceTagCreateCall

Creates a GTM Tag.

AccountContainerWorkspaceTagDeleteCall

Deletes a GTM Tag.

AccountContainerWorkspaceTagGetCall

Gets a GTM Tag.

AccountContainerWorkspaceTagListCall

Lists all GTM Tags of a Container.

AccountContainerWorkspaceTagRevertCall

Reverts changes to a GTM Tag in a GTM Workspace.

AccountContainerWorkspaceTagUpdateCall

Updates a GTM Tag.

AccountContainerWorkspaceTemplateCreateCall

Creates a GTM Custom Template.

AccountContainerWorkspaceTemplateDeleteCall

Deletes a GTM Template.

AccountContainerWorkspaceTemplateGetCall

Gets a GTM Template.

AccountContainerWorkspaceTemplateListCall

Lists all GTM Templates of a GTM container workspace.

AccountContainerWorkspaceTemplateRevertCall

Reverts changes to a GTM Template in a GTM Workspace.

AccountContainerWorkspaceTemplateUpdateCall

Updates a GTM Template.

AccountContainerWorkspaceTriggerCreateCall

Creates a GTM Trigger.

AccountContainerWorkspaceTriggerDeleteCall

Deletes a GTM Trigger.

AccountContainerWorkspaceTriggerGetCall

Gets a GTM Trigger.

AccountContainerWorkspaceTriggerListCall

Lists all GTM Triggers of a Container.

AccountContainerWorkspaceTriggerRevertCall

Reverts changes to a GTM Trigger in a GTM Workspace.

AccountContainerWorkspaceTriggerUpdateCall

Updates a GTM Trigger.

AccountContainerWorkspaceUpdateCall

Updates a Workspace.

AccountContainerWorkspaceVariableCreateCall

Creates a GTM Variable.

AccountContainerWorkspaceVariableDeleteCall

Deletes a GTM Variable.

AccountContainerWorkspaceVariableGetCall

Gets a GTM Variable.

AccountContainerWorkspaceVariableListCall

Lists all GTM Variables of a Container.

AccountContainerWorkspaceVariableRevertCall

Reverts changes to a GTM Variable in a GTM Workspace.

AccountContainerWorkspaceVariableUpdateCall

Updates a GTM Variable.

AccountContainerWorkspaceZoneCreateCall

Creates a GTM Zone.

AccountContainerWorkspaceZoneDeleteCall

Deletes a GTM Zone.

AccountContainerWorkspaceZoneGetCall

Gets a GTM Zone.

AccountContainerWorkspaceZoneListCall

Lists all GTM Zones of a GTM container workspace.

AccountContainerWorkspaceZoneRevertCall

Reverts changes to a GTM Zone in a GTM Workspace.

AccountContainerWorkspaceZoneUpdateCall

Updates a GTM Zone.

AccountGetCall

Gets a GTM Account.

AccountListCall

Lists all GTM Accounts that a user has access to.

AccountMethods

A builder providing access to all methods supported on account resources. It is not used directly, but through the TagManager hub.

AccountUpdateCall

Updates a GTM Account.

AccountUserPermissionCreateCall

Creates a user's Account & Container access.

AccountUserPermissionDeleteCall

Removes a user from the account, revoking access to it and all of its containers.

AccountUserPermissionGetCall

Gets a user's Account & Container access.

AccountUserPermissionListCall

List all users that have access to the account along with Account and Container user access granted to each of them.

AccountUserPermissionUpdateCall

Updates a user's Account & Container access.

BuiltInVariable

Built-in variables are a special category of variables that are pre-created and non-customizable. They provide common functionality like accessing propeties of the gtm data layer, monitoring clicks, or accessing elements of a page URL.

Chunk
Condition

Represents a predicate.

Container

Represents a Google Tag Manager Container, which specifies the platform tags will run on, manages workspaces, and retains container versions.

ContainerAccess

Defines the Google Tag Manager Container access permissions.

ContainerVersion

Represents a Google Tag Manager Container Version.

ContainerVersionHeader

Represents a Google Tag Manager Container Version Header.

ContentRange

Implements the Content-Range header, for serialization only

CreateBuiltInVariableResponse

There is no detailed description.

CreateContainerVersionRequestVersionOptions

Options for new container versions.

CreateContainerVersionResponse

Create container versions response.

CustomTemplate

Represents a Google Tag Manager Custom Template's contents.

DefaultDelegate

A delegate with a conservative default implementation, which is used if no other delegate is set.

DummyNetworkStream
Entity

A workspace entity that may represent a tag, trigger, variable, or folder in addition to its status in the workspace.

Environment

Represents a Google Tag Manager Environment. Note that a user can create, delete and update environments of type USER, but can only update the enable_debug and url fields of environments of other types.

ErrorResponse

A utility to represent detailed errors we might see in case there are BadRequests. The latter happen if the sent parameters or request structures are unsound

Folder

Represents a Google Tag Manager Folder.

FolderEntities

Represents a Google Tag Manager Folder's contents.

GetWorkspaceStatusResponse

The changes that have occurred in the workspace since the base container version.

JsonServerError

A utility type which can decode a server response that indicates error

ListAccountsResponse

List Accounts Response.

ListContainerVersionsResponse

List container versions response.

ListContainersResponse

List Containers Response.

ListEnabledBuiltInVariablesResponse

A list of enabled built-in variables.

ListEnvironmentsResponse

List Environments Response.

ListFoldersResponse

List Folders Response.

ListTagsResponse

List Tags Response.

ListTemplatesResponse

There is no detailed description.

ListTriggersResponse

List triggers response.

ListUserPermissionsResponse

List user permissions response.

ListVariablesResponse

List Variables Response.

ListWorkspacesResponse

A list of workspaces in a container.

ListZonesResponse

There is no detailed description.

MergeConflict

Represents a merge conflict.

MethodInfo

Contains information about an API request.

MultiPartReader

Provides a Read interface that converts multiple parts into the protocol identified by RFC2387. Note: This implementation is just as rich as it needs to be to perform uploads to google APIs, and might not be a fully-featured implementation.

Parameter

Represents a Google Tag Manager Parameter.

PublishContainerVersionResponse

Publish container version response.

QuickPreviewResponse

Response to quick previewing a workspace.

RangeResponseHeader
ResumableUploadHelper

A utility type to perform a resumable upload from start to end.

RevertBuiltInVariableResponse

The result of reverting a built-in variable in a workspace.

RevertFolderResponse

The result of reverting folder changes in a workspace.

RevertTagResponse

The result of reverting a tag in a workspace.

RevertTemplateResponse

The result of reverting a template in a workspace.

RevertTriggerResponse

The result of reverting a trigger in a workspace.

RevertVariableResponse

The result of reverting a variable in a workspace.

RevertZoneResponse

The result of reverting a zone in a workspace.

ServerError
ServerMessage
SetupTag

Represents a reference to atag that fires before another tag in order to set up dependencies.

SyncStatus

The status of a workspace after synchronization.

SyncWorkspaceResponse

A response after synchronizing the workspace to the latest container version.

Tag

Represents a Google Tag Manager Tag.

TagManager

Central instance to access all TagManager related resource activities

TeardownTag

Represents a tag that fires after another tag in order to tear down dependencies.

Timestamp

A Timestamp represents a point in time independent of any time zone or local calendar, encoded as a count of seconds and fractions of seconds at nanosecond resolution. The count is relative to an epoch at UTC midnight on January 1, 1970, in the proleptic Gregorian calendar which extends the Gregorian calendar backwards to year one.

Trigger

Represents a Google Tag Manager Trigger

UserPermission

Represents a user's permissions to an account and its container.

Variable

Represents a Google Tag Manager Variable.

VariableFormatValue

There is no detailed description.

Workspace

Represents a Google Tag Manager Container Workspace.

XUploadContentType

The X-Upload-Content-Type header.

Zone

Represents a Google Tag Manager Zone's contents.

ZoneBoundary

Represents a Zone's boundaries.

ZoneChildContainer

Represents a child container of a Zone.

ZoneTypeRestriction

Represents a Zone's type restrictions.

Enums

Error
Scope

Identifies the an OAuth2 authorization scope. A scope is needed when requesting an authorization token.

Traits

CallBuilder

Identifies types which represent builders for a particular resource method

Delegate

A trait specifying functionality to help controlling any request performed by the API. The trait has a conservative default implementation.

Hub

Identifies the Hub. There is only one per library, this trait is supposed to make intended use more explicit. The hub allows to access all resource methods more easily.

MethodsBuilder

Identifies types for building methods of a particular resource type

NestedType

Identifies types which are only used by other types internally. They have no special meaning, this trait just marks them for completeness.

Part

Identifies types which are only used as part of other types, which usually are carrying the Resource trait.

ReadSeek

A utility to specify reader types which provide seeking capabilities too

RequestValue

Identifies types which are used in API requests.

Resource

Identifies types which can be inserted and deleted. Types with this trait are most commonly used by clients of this API.

ResponseResult

Identifies types which are used in API responses.

ToParts

A trait for all types that can convert themselves into a parts string

UnusedType

Identifies types which are not actually used by the API This might be a bug within the google API schema.

Functions

remove_json_null_values

Type Definitions

Result

A universal result type used as return for all calls.